From fb3af7f9faf1c858bdedd89451922d1bdd44c84c Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Mon, 3 Nov 2025 00:56:43 +0530 Subject: [PATCH] feat(neovim): add tree-sitter-pest support and refactor configurations --- flake.lock | 17 +++++++++ flake.nix | 6 ++- home/module.nix | 1 + home/programs/default.nix | 2 +- home/programs/neovim.nix | 7 ++++ neovim/default.nix | 36 ++++++++++-------- neovim/overlays.nix | 43 +++++++++++++++++++++ nixos/ryu/configuration.nix | 2 +- nixos/ryu/services/llama.nix | 2 +- overlays.nix | 73 ++++++++++-------------------------- 10 files changed, 115 insertions(+), 74 deletions(-) create mode 100644 home/programs/neovim.nix diff --git a/flake.lock b/flake.lock index db0a33da..3d9bf282 100644 --- a/flake.lock +++ b/flake.lock @@ -3110,6 +3110,7 @@ "tree-sitter-d2": "tree-sitter-d2", "tree-sitter-just": "tree-sitter-just", "tree-sitter-nu": "tree-sitter-nu", + "tree-sitter-pest": "tree-sitter-pest", "tree-sitter-slint": "tree-sitter-slint", "typr": "typr", "volt": "volt", @@ -3935,6 +3936,22 @@ "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": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 5e4d4be7..7392188c 100644 --- a/flake.nix +++ b/flake.nix @@ -119,6 +119,10 @@ url = "github:nushell/tree-sitter-nu"; flake = false; }; + tree-sitter-pest = { + url = "github:pest-parser/tree-sitter-pest"; + flake = false; + }; navigator = { url = "github:ray-x/navigator.lua"; flake = false; @@ -401,7 +405,7 @@ in { packages = rec { default = neovim; - neovim = pkgs.nixvim.makeNixvim (import ./neovim); + neovim = pkgs.nixvim.makeNixvim (pkgs.callPackage ./neovim); }; devShells = { default = pkgs.mkShell { diff --git a/home/module.nix b/home/module.nix index d4371d15..d912ec04 100644 --- a/home/module.nix +++ b/home/module.nix @@ -14,6 +14,7 @@ stablePkgs = inputs.nixpkgs-stable.legacyPackages.${device.system}; }; users.${device.user}.imports = [ + inputs.nixvim.homeModules.nixvim ./. ]; }; diff --git a/home/programs/default.nix b/home/programs/default.nix index f46db4cf..def6056e 100644 --- a/home/programs/default.nix +++ b/home/programs/default.nix @@ -41,6 +41,7 @@ ./yazi.nix ./yt-dlp.nix ./zoxide.nix + ./neovim.nix # ./goread.nix # ./helix.nix @@ -74,7 +75,6 @@ just macchina nb - (nixvim.makeNixvim (import ../../neovim)) p7zip pandoc pfetch-rs diff --git a/home/programs/neovim.nix b/home/programs/neovim.nix new file mode 100644 index 00000000..1a939cc6 --- /dev/null +++ b/home/programs/neovim.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: { + programs.nixvim = + { + enable = true; + } + // (import ./../../neovim {inherit pkgs;}); +} diff --git a/neovim/default.nix b/neovim/default.nix index 4e2b482b..4def838d 100644 --- a/neovim/default.nix +++ b/neovim/default.nix @@ -1,8 +1,4 @@ -{ - pkgs, - # config, - ... -}: let +{pkgs, ...}: let mkMappings = mappings: [] ++ (pkgs.lib.optionals (builtins.hasAttr "normal" mappings) (mkMode mappings.normal "n")) @@ -17,16 +13,16 @@ mode = mode; }) mappings; - border = [ - "╭" - "─" - "╮" - "│" - "╯" - "─" - "╰" - "│" - ]; + # border = [ + # "╭" + # "─" + # "╮" + # "│" + # "╯" + # "─" + # "╰" + # "│" + # ]; rawLua = lua: { "__raw" = '' ${lua} @@ -349,9 +345,11 @@ in { tree-sitter-norg-meta tree-sitter-just tree-sitter-nu - # pkgs.tree-sitter-grammars.tree-sitter-d2 + tree-sitter-pest + tree-sitter-slint ]) ++ pkgs.vimPlugins.nvim-treesitter.allGrammars; + nixGrammars = true; }; telescope = { @@ -770,6 +768,12 @@ in { }, }) + vim.filetype.add({ + extension = { + pest = "pest", + }, + }) + vim.filetype.add({ filename = { ['nurfile'] = "nu", diff --git a/neovim/overlays.nix b/neovim/overlays.nix index 67038e6a..efcb424a 100644 --- a/neovim/overlays.nix +++ b/neovim/overlays.nix @@ -29,6 +29,16 @@ version = "1"; 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 [ @@ -37,3 +47,36 @@ in [ vimPlugins 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; +# }; +# }; +# }; + diff --git a/nixos/ryu/configuration.nix b/nixos/ryu/configuration.nix index 7f17f21f..0949ee1b 100644 --- a/nixos/ryu/configuration.nix +++ b/nixos/ryu/configuration.nix @@ -274,7 +274,7 @@ gparted nvtopPackages.nvidia quickemu - (nixvim.makeNixvim (import ../../neovim)) + # (nixvim.makeNixvim (import ../../neovim)) qpwgraph hyprland xorg.xhost diff --git a/nixos/ryu/services/llama.nix b/nixos/ryu/services/llama.nix index 8e35d221..4581e89b 100644 --- a/nixos/ryu/services/llama.nix +++ b/nixos/ryu/services/llama.nix @@ -6,7 +6,7 @@ }: { services = { llama-cpp = { - enable = true; + enable = false; port = 11345; model = "/nix/store/ch6z9di3l0k54ad29pzv8k3zv47q30d1-Qwen3-Coder-30B-A3B-Instruct-Q4_K_M.gguf"; # model = pkgs.fetchurl { diff --git a/overlays.nix b/overlays.nix index 272906fa..5e6bd8c7 100644 --- a/overlays.nix +++ b/overlays.nix @@ -168,6 +168,7 @@ }; nix-auth = inputs.nix-auth.packages.${prev.system}.nix-auth; }; + anyrun-overlay = final: prev: { anyrun = inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs @@ -262,57 +263,21 @@ ''; }); }; - vimPlugins = final: prev: { - vimPlugins = - prev.vimPlugins - // { - d2 = final.pkgs.vimUtils.buildVimPlugin { - name = "d2"; - version = "1"; - src = inputs.d2; - }; - }; - }; - 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; - }; - }; - }; -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 -] +in + [ + anyrun-overlay + catppuccinThemes + csshacks + inputs.lfca.overlays.default + inputs.nix-minecraft.overlay + inputs.nur.overlays.default + inputs.rust-overlay.overlays.default + jellyfin + libfprint + misc-applications + nix-index-db + shell-scipts + tmuxPlugins + zellij + ] + ++ (import ./neovim/overlays.nix {inherit inputs;})