{ pkgs, ... }: with pkgs.vimPlugins; [ { # docs: fzf-vim (fuzzy finder): https://github.com/junegunn/fzf.vim plugin = fzf-vim; } { # treesitter syntax highlighting: https://nixos.wiki/wiki/Tree_sitters # docs: https://github.com/nvim-treesitter/nvim-treesitter # config taken from: https://github.com/i077/system/blob/master/modules/home/neovim/default.nix # this is required for tree-sitter to even highlight plugin = nvim-treesitter.withPlugins (_: nvim-treesitter.allGrammars ++ [ # XXX: this is apparently not enough to enable syntax highlighting! # nvim-treesitter ships its own queries which may be distinct from e.g. helix. # the queries aren't included when i ship the grammar in this manner pkgs.tree-sitter-nix-shell ]); type = "lua"; config = '' -- lifted mostly from readme: require'nvim-treesitter.configs'.setup { highlight = { enable = true, -- disable treesitter on Rust so that we can use SyntaxRange -- and leverage TeX rendering in rust projects disable = { "rust", "tex", "latex" }, -- disable = { "tex", "latex" }, -- true to also use builtin vim syntax highlighting when treesitter fails additional_vim_regex_highlighting = false }, incremental_selection = { enable = true, keymaps = { init_selection = "gnn", node_incremental = "grn", scope_incremental = "grc", node_decremental = "grm" } }, indent = { enable = true, disable = {} } } vim.o.foldmethod = 'expr' vim.o.foldexpr = 'nvim_treesitter#foldexpr()' ''; } { # docs: tex-conceal-vim: https://github.com/KeitaNakamura/tex-conceal.vim/ plugin = tex-conceal-vim; type = "viml"; config = '' " present prettier fractions let g:tex_conceal_frac=1 ''; } { # source: # fixes auto-indent (incl tab size) when editing .nix files plugin = vim-nix; } { # docs: surround-nvim: https://github.com/ur4ltz/surround.nvim/ # docs: vim-surround: https://github.com/tpope/vim-surround plugin = vim-surround; } { plugin = vim-SyntaxRange; type = "viml"; config = '' " enable markdown-style codeblock highlighting for tex code autocmd BufEnter * call SyntaxRange#Include('```tex', '```', 'tex', 'NonText') " autocmd Syntax tex set conceallevel=2 ''; } ]