{ programs.nvf = { enable = true; settings = { vim = { viAlias = false; vimAlias = true; lsp = { enable = true; formatOnSave = true; lspkind.enable = false; lightbulb.enable = true; lspsaga.enable = false; trouble.enable = true; lspSignature.enable = true; lsplines.enable = true; }; theme = { name = "tokyonight"; style = "storm"; }; debugger = { nvim-dap = { enable = true; ui.enable = true; }; }; languages = { enableLSP = true; enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; nix.enable = true; markdown.enable = true; }; visuals = { nvim-scrollbar.enable = true; nvim-web-devicons.enable = true; nvim-cursorline.enable = true; cinnamon-nvim.enable = true; fidget-nvim.enable = true; highlight-undo.enable = true; indent-blankline.enable = true; # Fun cellular-automaton.enable = false; }; statusline = { lualine = { enable = true; theme = "onedark"; }; }; autopairs.nvim-autopairs.enable = true; autocomplete.nvim-cmp.enable = true; snippets.luasnip.enable = true; filetree = { nvimTree = { enable = true; mappings.toggle = "e"; }; }; tabline = { nvimBufferline.enable = true; }; treesitter.context.enable = true; binds = { whichKey.enable = true; cheatsheet.enable = true; }; telescope.enable = true; git = { enable = true; gitsigns.enable = true; gitsigns.codeActions.enable = false; }; notify = { nvim-notify.enable = true; }; terminal = { toggleterm = { enable = true; mappings.open = ""; }; }; ui = { borders.enable = true; noice.enable = true; colorizer.enable = true; modes-nvim.enable = false; # the theme looks terrible with catppuccin illuminate.enable = true; smartcolumn = { enable = true; setupOpts.custom_colorcolumn = { # this is a freeform module, it's `buftype = int;` for configuring column position nix = "110"; ruby = "120"; java = "130"; go = ["90" "130"]; }; }; fastaction.enable = true; }; assistant = { copilot = { enable = true; cmp.enable = true; mappings.panel = { accept = ""; jumpNext = ""; jumpPrev = ""; }; }; }; comments = { comment-nvim = { enable = true; mappings = { toggleCurrentLine = "/"; toggleSelectedBlock = "/"; }; }; }; }; }; }; }