_: { config.vim = { viAlias = true; vimAlias = true; debugMode = { enable = false; level = 16; logFile = "/tmp/nvim.log"; }; spellcheck = { enable = true; }; lsp = { formatOnSave = true; lspkind.enable = false; lightbulb.enable = true; lspsaga.enable = false; trouble.enable = true; lspSignature.enable = true; otter-nvim.enable = true; nvim-docs-view.enable = true; }; debugger = { nvim-dap = { enable = true; ui.enable = true; }; }; # This section does not include a comprehensive list of available language modules. # To list all available language module options, please visit the nvf manual. languages = { enableLSP = true; enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; # Languages that will be supported in default and maximal configurations. nix.enable = true; markdown.enable = true; # Languages that are enabled in the maximal configuration. bash.enable = true; clang.enable = true; css.enable = true; html.enable = true; sql.enable = true; java.enable = true; kotlin.enable = true; ts.enable = true; go.enable = true; lua.enable = true; zig.enable = true; python.enable = true; typst.enable = true; rust = { enable = true; crates.enable = true; }; # Language modules that are not as common. assembly.enable = false; astro.enable = false; nu.enable = false; csharp.enable = true; julia.enable = false; vala.enable = false; scala.enable = false; r.enable = false; gleam.enable = false; dart.enable = false; ocaml.enable = false; elixir.enable = false; haskell.enable = false; ruby.enable = false; tailwind.enable = false; svelte.enable = false; # Nim LSP is broken on Darwin and therefore # should be disabled by default. Users may still enable # `vim.languages.vim` to enable it, this does not restrict # that. # See: nim.enable = false; }; 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 = { enable = true; name = "base16"; style = "dark"; base16-colors = { base00 = "0d0f0f"; # darkest – background forest base01 = "181b1d"; # tree shadows base02 = "232728"; # tent shading base03 = "383d3f"; # log and clothing shadows base04 = "555c5e"; # tent outer edge base05 = "cacbc9"; # face light base06 = "f5e9d3"; # bright highlights base07 = "ffffff"; # lightest (fire + extreme highlights) base08 = "d36f4a"; # red – fire ember base09 = "e89f6f"; # orange – flame edge base0A = "f8c78f"; # yellow – flame core base0B = "89a068"; # green – sprite tent box base0C = "678d88"; # teal – tent shadows base0D = "44596e"; # blue – beanie base0E = "85718b"; # violet – shirt reflections base0F = "6c3d26"; # brown – log and dirt }; transparent = false; }; autopairs.nvim-autopairs.enable = true; autocomplete.nvim-cmp.enable = true; snippets.luasnip.enable = true; filetree = { neo-tree = { enable = true; }; }; 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; # throws an annoying debug message }; minimap = { minimap-vim.enable = false; codewindow.enable = true; # lighter, faster, and uses lua for configuration }; dashboard = { dashboard-nvim.enable = false; alpha.enable = true; }; notify = { nvim-notify.enable = true; }; projects = { project-nvim.enable = true; }; utility = { ccc.enable = false; vim-wakatime.enable = false; icon-picker.enable = true; surround.enable = true; diffview-nvim.enable = true; motion = { hop.enable = true; leap.enable = true; precognition.enable = true; }; images = { image-nvim.enable = false; }; }; notes = { obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled neorg.enable = false; orgmode.enable = false; mind-nvim.enable = true; todo-comments.enable = true; }; terminal = { toggleterm = { enable = true; lazygit.enable = true; }; }; ui = { borders.enable = true; noice.enable = true; colorizer.enable = true; modes-nvim.enable = false; # the theme looks terrible with catppuccin illuminate.enable = true; breadcrumbs = { enable = true; navbuddy.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 = { chatgpt.enable = false; copilot = { enable = false; cmp.enable = true; }; }; session = { nvim-session-manager.enable = false; }; gestures = { gesture-nvim.enable = false; }; comments = { comment-nvim.enable = true; }; presence = { neocord.enable = false; }; }; }