diff --git a/plugins/languages/treesitter/treesitter.nix b/plugins/languages/treesitter/treesitter.nix index 9774124d..4e7faeea 100644 --- a/plugins/languages/treesitter/treesitter.nix +++ b/plugins/languages/treesitter/treesitter.nix @@ -82,7 +82,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { The queries for the grammar should be added to one of the runtime directories under `queries/{language}` but sometimes plugins do not conform to this structure. - In such cases, you can override the source derivation (or the grammar derivation) to move the queries to the appropriate folder: + In such cases, you can override the source derivation (or the grammar derivation) to move the queries to the appropriate folder: ```nix ( @@ -324,6 +324,11 @@ helpers.neovim-plugin.mkNeovimPlugin config { description = "Grammar packages to install"; }; + iconsPackage = helpers.mkPackageOption { + name = "nvim-web-devicons"; + default = pkgs.vimPlugins.nvim-web-devicons; + }; + # TODO: Implement rawLua support to be passed into extraConfigLua. languageRegister = mkOption { type = with types; attrsOf (coercedTo str toList (listOf str)); @@ -411,10 +416,11 @@ helpers.neovim-plugin.mkNeovimPlugin config { extraFiles = mkIf cfg.nixvimInjections { "queries/nix/injections.scm".source = ./injections.scm; }; - extraPlugins = mkIf (cfg.package != null) [ - (mkIf cfg.nixGrammars (cfg.package.withPlugins (_: cfg.grammarPackages))) - (mkIf (!cfg.nixGrammars) cfg.package) - ]; + extraPlugins = + lib.optional (cfg.iconsPackage != null) cfg.iconsPackage + ++ lib.optional (cfg.package != null) ( + if cfg.nixGrammars then cfg.package.withPlugins (_: cfg.grammarPackages) else cfg.package + ); extraPackages = [ cfg.gccPackage diff --git a/tests/test-sources/plugins/languages/treesitter/treesitter.nix b/tests/test-sources/plugins/languages/treesitter/treesitter.nix index 37c2edd6..c5b3dc35 100644 --- a/tests/test-sources/plugins/languages/treesitter/treesitter.nix +++ b/tests/test-sources/plugins/languages/treesitter/treesitter.nix @@ -134,4 +134,11 @@ }; }; }; + + no-icons = { + plugins.treesitter = { + enable = true; + iconsPackage = null; + }; + }; }