54 lines
1.2 KiB
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
|
|
'';
|
|
}
|
|
];
|
|
}
|