{ programs.nvf.settings.vim = { visuals = { # fidget.nvim shows messages in the bottom right fidget-nvim = { enable = true; setupOpts = {}; }; # highlight-undo.nvim highlights what text was changed when performing an action that modifies the buffer while not in insert mode highlight-undo = { enable = true; setupOpts = { duration = 100; # in ms }; }; # indent-blankline.nvim adds indentation guides indent-blankline = { enable = true; setupOpts = {}; }; # nvim-cursorline provides cursor word and line highlighting nvim-cursorline = { enable = false; setupOpts = { cursorword.enable = true; cursorline.enable = false; }; }; nvim-scrollbar.enable = true; rainbow-delimiters.enable = true; nvim-web-devicons.enable = true; tiny-devicons-auto-colors.enable = true; }; statusline.lualine = { enable = true; }; tabline.nvimBufferline = { enable = false; mappings = { # default mappings: # - Close buffer:null # - Next buffer:bn # - Previous buffer:bp # - Move next buffer:bmn # - Move previous buffer:bmp # - Pick buffer:bc # - Sort buffers by directory:bsd # - Sort buffers by extension:bse # - Sort buffers by ID:bsi # closeCurrent = ""; # TODO: check these mappigns # cycleNext = ""; # cyclePrevious = ""; }; setupOpts = {}; }; # treesitter handles syntax highlighting treesitter = { enable = true; autotagHtml = true; fold = true; # provide context for current scope context = { enable = false; setupOpts = { mode = "topline"; }; }; mappings.incrementalSelection = { # - Decrement selection by node [treesitter]:grm # - Increment selection by node [treesitter]:grn # - Increment selection by scope [treesitter]:grc # - Init selection [treesitter]:gnn }; }; git = { enable = true; # gitsigns indicates added, changed, deleted lines among other things gitsigns.mappings = { # - Blame line [Gitsigns]:hb # - Diff project [Gitsigns]:hD # - Diff this [Gitsigns]:hd # - Next hunk [Gitsigns]:]c # - Preview hunk [Gitsigns]:hP # - Previous hunk [Gitsigns]:[c # - Reset buffer [Gitsigns]:hR # - Reset hunk [Gitsigns]:hr # - Stage buffer [Gitsigns]:hS # - Stage hunk [Gitsigns]:hs # - Toggle blame [Gitsigns]:tb # - Toggle deleted [Gitsigns]:td # - Undo stage hunk [Gitsigns]:hu }; # git-conflict visualises git conflicts and resolves git-conflict.mappings = { # Default mappings: # - Choose Both [Git-Conflict]:cb # - Go to the next Conflict [Git-Conflict]:[x # - Choose None [Git-Conflict]:c0 # - Choose Ours [Git-Conflict]:co # - Go to the previous Conflict [Git-Conflict]:]x # - Choose Theirs [Git-Conflict]:ct }; # vim-fugitive provides git cmds }; dashboard.alpha.enable = true; notify.nvim-notify.enable = true; ui = { borders.enable = true; # TODO: enable plugin specific breadcrumbs.enable = true; breadcrumbs.navbuddy.enable = true; # nvim-navic # nvim-colorizer highlights color codes colorizer.enable = true; # TODO: check if it works # fastaction.nvim overrides vim.ui.select with fast action # TODO: look into this fastaction.enable = true; # vim-illuminate highlights all occurrences illuminate.enable = true; # TOOD: check if neotree is covered # modes-nvim colors the whole line modes-nvim.enable = true; # noice displays the command window in a floating window and disables the cmd line # TODO: look at the options noice.enable = true; # nvim-ufo makes folds look nicer nvim-ufo.enable = true; # smartcolumn enables line length indicators smartcolumn.enable = true; }; }; }