{ pkgs, config, lib, ... }: { programs.neovim = { extraConfig = /* vim */ lib.mkAfter '' function! SetCustomKeywords() syn match Todo /TODO/ syn match Done /DONE/ syn match Start /START/ syn match End /END/ endfunction autocmd Syntax * call SetCustomKeywords() ''; plugins = with pkgs.vimPlugins; [ rust-vim dart-vim-plugin plantuml-syntax vim-markdown vim-nix vim-toml vim-syntax-shakespeare gemini-vim-syntax kotlin-vim haskell-vim mermaid-vim pgsql-vim vim-terraform vim-jsx-typescript vim-caddyfile { plugin = vimtex; config = let method = if config.programs.zathura.enable then "zathura" else "general"; in '' let g:vimtex_view_method = '${method}' ''; } # Tree sitter { plugin = nvim-treesitter.withAllGrammars; type = "lua"; config = /* lua */ '' require('nvim-treesitter.configs').setup{ highlight = { enable = true, additional_vim_regex_highlighting = false, }, } ''; } ]; }; }