nixos/pkgsets/nvim/treesitter.nix

54 lines
1.2 KiB
Nix

{
lib,
config,
pkgs,
...
}:
lib.mkIf (lib.elem "nvim::treesitter" config.machine.pkgs) {
programs.nvim-lazy.lazyPlugins =
let
treesitter = pkgs.vimPlugins.nvim-treesitter.withAllGrammars;
grammars = pkgs.symlinkJoin {
name = "treesitter-parsers";
paths = treesitter.dependencies;
};
in
[
{
lazy = false;
dir = _: treesitter;
event = [
"BufReadPost"
"BufWritePost"
"BufNewFile"
"VeryLazy"
];
opts = {
auto_install = false;
highlight = {
enable = true;
};
incremental_selection = {
enable = true;
keymaps = {
init_selection = "gnn"; # set to `false` to disable one of the mappings
node_incremental = "grn";
scope_incremental = "grc";
node_decremental = "grm";
};
};
indent = {
enable = true;
};
};
config = # lua
''
function(_, opts)
vim.opt.rtp:prepend("${grammars}")
require("nvim-treesitter.configs").setup(opts)
end
'';
}
];
}