feat(neovim): add tree-sitter-pest support and refactor configurations

This commit is contained in:
uttarayan21
2025-11-03 00:56:43 +05:30
parent 0f77e228b0
commit fb3af7f9fa
10 changed files with 115 additions and 74 deletions

17
flake.lock generated
View File

@@ -3110,6 +3110,7 @@
"tree-sitter-d2": "tree-sitter-d2", "tree-sitter-d2": "tree-sitter-d2",
"tree-sitter-just": "tree-sitter-just", "tree-sitter-just": "tree-sitter-just",
"tree-sitter-nu": "tree-sitter-nu", "tree-sitter-nu": "tree-sitter-nu",
"tree-sitter-pest": "tree-sitter-pest",
"tree-sitter-slint": "tree-sitter-slint", "tree-sitter-slint": "tree-sitter-slint",
"typr": "typr", "typr": "typr",
"volt": "volt", "volt": "volt",
@@ -3935,6 +3936,22 @@
"type": "github" "type": "github"
} }
}, },
"tree-sitter-pest": {
"flake": false,
"locked": {
"lastModified": 1759743491,
"narHash": "sha256-S5qg/LLPlMmNtRTTi7vW8y/c+zcId7ADmMqIt0gqJBo=",
"owner": "pest-parser",
"repo": "tree-sitter-pest",
"rev": "c19629a0c50e6ca2485c3b154b1dde841a08d169",
"type": "github"
},
"original": {
"owner": "pest-parser",
"repo": "tree-sitter-pest",
"type": "github"
}
},
"tree-sitter-slint": { "tree-sitter-slint": {
"flake": false, "flake": false,
"locked": { "locked": {

View File

@@ -119,6 +119,10 @@
url = "github:nushell/tree-sitter-nu"; url = "github:nushell/tree-sitter-nu";
flake = false; flake = false;
}; };
tree-sitter-pest = {
url = "github:pest-parser/tree-sitter-pest";
flake = false;
};
navigator = { navigator = {
url = "github:ray-x/navigator.lua"; url = "github:ray-x/navigator.lua";
flake = false; flake = false;
@@ -401,7 +405,7 @@
in { in {
packages = rec { packages = rec {
default = neovim; default = neovim;
neovim = pkgs.nixvim.makeNixvim (import ./neovim); neovim = pkgs.nixvim.makeNixvim (pkgs.callPackage ./neovim);
}; };
devShells = { devShells = {
default = pkgs.mkShell { default = pkgs.mkShell {

View File

@@ -14,6 +14,7 @@
stablePkgs = inputs.nixpkgs-stable.legacyPackages.${device.system}; stablePkgs = inputs.nixpkgs-stable.legacyPackages.${device.system};
}; };
users.${device.user}.imports = [ users.${device.user}.imports = [
inputs.nixvim.homeModules.nixvim
./. ./.
]; ];
}; };

View File

@@ -41,6 +41,7 @@
./yazi.nix ./yazi.nix
./yt-dlp.nix ./yt-dlp.nix
./zoxide.nix ./zoxide.nix
./neovim.nix
# ./goread.nix # ./goread.nix
# ./helix.nix # ./helix.nix
@@ -74,7 +75,6 @@
just just
macchina macchina
nb nb
(nixvim.makeNixvim (import ../../neovim))
p7zip p7zip
pandoc pandoc
pfetch-rs pfetch-rs

7
home/programs/neovim.nix Normal file
View File

@@ -0,0 +1,7 @@
{pkgs, ...}: {
programs.nixvim =
{
enable = true;
}
// (import ./../../neovim {inherit pkgs;});
}

View File

@@ -1,8 +1,4 @@
{ {pkgs, ...}: let
pkgs,
# config,
...
}: let
mkMappings = mappings: mkMappings = mappings:
[] []
++ (pkgs.lib.optionals (builtins.hasAttr "normal" mappings) (mkMode mappings.normal "n")) ++ (pkgs.lib.optionals (builtins.hasAttr "normal" mappings) (mkMode mappings.normal "n"))
@@ -17,16 +13,16 @@
mode = mode; mode = mode;
}) })
mappings; mappings;
border = [ # border = [
"" # "╭"
"" # "─"
"" # "╮"
"" # "│"
"" # "╯"
"" # "─"
"" # "╰"
"" # "│"
]; # ];
rawLua = lua: { rawLua = lua: {
"__raw" = '' "__raw" = ''
${lua} ${lua}
@@ -349,9 +345,11 @@ in {
tree-sitter-norg-meta tree-sitter-norg-meta
tree-sitter-just tree-sitter-just
tree-sitter-nu tree-sitter-nu
# pkgs.tree-sitter-grammars.tree-sitter-d2 tree-sitter-pest
tree-sitter-slint
]) ])
++ pkgs.vimPlugins.nvim-treesitter.allGrammars; ++ pkgs.vimPlugins.nvim-treesitter.allGrammars;
nixGrammars = true;
}; };
telescope = { telescope = {
@@ -770,6 +768,12 @@ in {
}, },
}) })
vim.filetype.add({
extension = {
pest = "pest",
},
})
vim.filetype.add({ vim.filetype.add({
filename = { filename = {
['nurfile'] = "nu", ['nurfile'] = "nu",

View File

@@ -29,6 +29,16 @@
version = "1"; version = "1";
src = inputs.tree-sitter-nu; src = inputs.tree-sitter-nu;
}; };
tree-sitter-pest = final.pkgs.tree-sitter.buildGrammar {
language = "pest";
version = "1";
src = inputs.tree-sitter-pest;
};
tree-sitter-slint = final.pkgs.tree-sitter.buildGrammar {
language = "slint";
version = "1";
src = inputs.tree-sitter-slint;
};
}; };
}; };
in [ in [
@@ -37,3 +47,36 @@ in [
vimPlugins vimPlugins
tree-sitter-grammars tree-sitter-grammars
] ]
# tree-sitter-grammars = final: prev: {
# tree-sitter-grammars =
# prev.tree-sitter-grammars
# // {
# # tree-sitter-just = final.pkgs.tree-sitter.buildGrammar {
# # language = "just";
# # version = "1";
# # src = inputs.tree-sitter-just;
# # };
# # tree-sitter-nu = final.pkgs.tree-sitter.buildGrammar {
# # language = "nu";
# # version = "1";
# # src = inputs.tree-sitter-nu;
# # };
# tree-sitter-d2 = final.pkgs.tree-sitter.buildGrammar {
# language = "d2";
# version = "1";
# src = inputs.tree-sitter-d2;
# };
# };
# };
# vimPlugins = final: prev: {
# vimPlugins =
# prev.vimPlugins
# // {
# d2 = final.pkgs.vimUtils.buildVimPlugin {
# name = "d2";
# version = "1";
# src = inputs.d2;
# };
# };
# };

View File

@@ -274,7 +274,7 @@
gparted gparted
nvtopPackages.nvidia nvtopPackages.nvidia
quickemu quickemu
(nixvim.makeNixvim (import ../../neovim)) # (nixvim.makeNixvim (import ../../neovim))
qpwgraph qpwgraph
hyprland hyprland
xorg.xhost xorg.xhost

View File

@@ -6,7 +6,7 @@
}: { }: {
services = { services = {
llama-cpp = { llama-cpp = {
enable = true; enable = false;
port = 11345; port = 11345;
model = "/nix/store/ch6z9di3l0k54ad29pzv8k3zv47q30d1-Qwen3-Coder-30B-A3B-Instruct-Q4_K_M.gguf"; model = "/nix/store/ch6z9di3l0k54ad29pzv8k3zv47q30d1-Qwen3-Coder-30B-A3B-Instruct-Q4_K_M.gguf";
# model = pkgs.fetchurl { # model = pkgs.fetchurl {

View File

@@ -168,6 +168,7 @@
}; };
nix-auth = inputs.nix-auth.packages.${prev.system}.nix-auth; nix-auth = inputs.nix-auth.packages.${prev.system}.nix-auth;
}; };
anyrun-overlay = final: prev: { anyrun-overlay = final: prev: {
anyrun = anyrun =
inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs
@@ -262,57 +263,21 @@
''; '';
}); });
}; };
vimPlugins = final: prev: { in
vimPlugins = [
prev.vimPlugins anyrun-overlay
// { catppuccinThemes
d2 = final.pkgs.vimUtils.buildVimPlugin { csshacks
name = "d2"; inputs.lfca.overlays.default
version = "1"; inputs.nix-minecraft.overlay
src = inputs.d2; inputs.nur.overlays.default
}; inputs.rust-overlay.overlays.default
}; jellyfin
}; libfprint
tree-sitter-grammars = final: prev: { misc-applications
tree-sitter-grammars = nix-index-db
prev.tree-sitter-grammars shell-scipts
// { tmuxPlugins
# tree-sitter-just = final.pkgs.tree-sitter.buildGrammar { zellij
# language = "just"; ]
# version = "1"; ++ (import ./neovim/overlays.nix {inherit inputs;})
# src = inputs.tree-sitter-just;
# };
# tree-sitter-nu = final.pkgs.tree-sitter.buildGrammar {
# language = "nu";
# version = "1";
# src = inputs.tree-sitter-nu;
# };
tree-sitter-d2 = final.pkgs.tree-sitter.buildGrammar {
language = "d2";
version = "1";
src = inputs.tree-sitter-d2;
};
};
};
in [
anyrun-overlay
catppuccinThemes
csshacks
inputs.nixvim.overlays.default
inputs.nno.overlays.default
inputs.nur.overlays.default
inputs.rust-overlay.overlays.default
inputs.nix-minecraft.overlay
inputs.lfca.overlays.default
jellyfin
libfprint
misc-applications
nix-index-db
shell-scipts
tmuxPlugins
zellij
# inputs.llama-cpp.overlays.default
# inputs.ik_llama.overlays.default
# tree-sitter-grammars
# vimPlugins
]