2024-03-24 17:39:49 -05:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: {
|
2024-05-29 13:40:03 -05:00
|
|
|
options.user.nvim.enable-treesitter = lib.mkEnableOption "enable nvim treesitter";
|
|
|
|
|
2024-03-24 17:39:49 -05:00
|
|
|
config =
|
2024-05-29 13:40:03 -05:00
|
|
|
lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
|
2024-03-24 17:39:49 -05:00
|
|
|
{
|
2024-05-29 13:40:03 -05:00
|
|
|
user.nvim.enable-completions = true;
|
2024-03-24 17:39:49 -05:00
|
|
|
programs.nixvim = {
|
2024-07-27 19:11:57 -05:00
|
|
|
opts.foldmethod = "expr";
|
2024-03-24 17:39:49 -05:00
|
|
|
plugins.treesitter = {
|
|
|
|
enable = true;
|
|
|
|
folding = true;
|
2024-07-27 19:11:57 -05:00
|
|
|
settings.indent.enable = true;
|
2024-03-24 17:39:49 -05:00
|
|
|
nixvimInjections = true;
|
|
|
|
};
|
|
|
|
plugins.treesitter-context.enable = true;
|
|
|
|
plugins.indent-blankline.enable = true;
|
|
|
|
extraPlugins = with pkgs.vimPlugins; [
|
|
|
|
treesj
|
|
|
|
];
|
2024-04-23 11:04:37 -05:00
|
|
|
extraConfigLua = ''
|
|
|
|
require("treesj").setup({
|
|
|
|
use_default_keymaps=false,
|
|
|
|
})
|
|
|
|
'';
|
|
|
|
keymaps = [
|
2024-06-16 14:52:04 -05:00
|
|
|
{
|
|
|
|
action = ":TSContextToggle<CR>";
|
|
|
|
key = "<leader>x";
|
|
|
|
mode = "n";
|
|
|
|
options = {
|
|
|
|
silent = true;
|
|
|
|
desc = "tree context toggle";
|
|
|
|
};
|
|
|
|
}
|
2024-04-23 11:04:37 -05:00
|
|
|
{
|
|
|
|
action = ":TSJToggle<CR>";
|
|
|
|
key = "<leader>j";
|
|
|
|
mode = "n";
|
|
|
|
options = {
|
|
|
|
silent = true;
|
|
|
|
desc = "tree sitter join toggle";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
2024-03-24 17:39:49 -05:00
|
|
|
};
|
|
|
|
};
|
|
|
|
imports = [
|
|
|
|
./rainbow-delimiters.nix
|
|
|
|
./arial.nix
|
2024-03-30 08:31:36 -05:00
|
|
|
./tree-sitter-nu.nix
|
2024-03-24 17:39:49 -05:00
|
|
|
];
|
|
|
|
}
|