nixvimConfigs/trovebelt/setups/treesitter: init

This commit is contained in:
Gabriel Arazas 2024-02-04 21:29:46 +08:00
parent ab8b139eb9
commit 24839f9a0f
No known key found for this signature in database
GPG Key ID: ADE0C41DAB221FCC
3 changed files with 47 additions and 0 deletions

View File

@ -6,6 +6,7 @@
config = {
nixvimConfigs.trovebelt.setups = {
lsp.enable = true;
treesitter.enable = true;
ui.enable = true;
};

View File

@ -1,6 +1,7 @@
{
imports = [
./setups/lsp.nix
./setups/treesitter.nix
./setups/ui.nix
];
}

View File

@ -0,0 +1,45 @@
{ config, lib, ... }:
let
nixvimCfg = config.nixvimConfigs.trovebelt;
cfg = nixvimCfg.setups.treesitter;
in
{
options.nixvimConfigs.trovebelt.setups.treesitter.enable =
lib.mkEnableOption "tree-sitter setup with all parsers installed";
config = lib.mkIf cfg.enable {
plugins.treesitter = {
enable = true;
# Install all of the grammars with Nix. We can easily replace it if we
# want to.
nixGrammars = true;
ensureInstalled = lib.mkDefault "all";
nixvimInjections = true;
# Enable all of its useful features.
folding = true;
indent = true;
incrementalSelection.enable = true;
};
# Enable some more context for me.
plugins.treesitter-context = {
enable = true;
lineNumbers = true;
maxLines = 7;
mode = "cursor";
separator = "*";
};
# Some niceties for refactoring.
plugins.treesitter-refactor = {
enable = true;
highlightCurrentScope.enable = true;
highlightDefinitions.enable = true;
navigation.enable = true;
smartRename.enable = true;
};
};
}