Skip to content

Commit

Permalink
plugins/treesitter: add workaround for performance.combinePlugins
Browse files Browse the repository at this point in the history
  • Loading branch information
stasjok committed Jul 24, 2024
1 parent 4792e62 commit 8e8932a
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
5 changes: 5 additions & 0 deletions plugins/languages/treesitter/treesitter.nix
Original file line number Diff line number Diff line change
Expand Up @@ -328,5 +328,10 @@ helpers.neovim-plugin.mkNeovimPlugin config {
foldmethod = mkDefault "expr";
foldexpr = mkDefault "nvim_treesitter#foldexpr()";
};

# Since https://github.com/NixOS/nixpkgs/pull/321550 upstream queries are added
# to grammar plugins. Exclude nvim-treesitter itself from combining to avoid
# collisions with grammar's queries
performance.combinePlugins.standalonePlugins = [ cfg.package ];
};
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{ pkgs, ... }:
{
combine-plugins = {
performance.combinePlugins.enable = true;

plugins.treesitter = {
enable = true;

# Exclude nixvim injections for test to pass
nixvimInjections = false;
};

extraConfigLuaPost = ''
-- Ensure that queries from nvim-treesitter are first in rtp
local queries_path = "${pkgs.vimPlugins.nvim-treesitter}/queries"
for name, type in vim.fs.dir(queries_path, {depth = 10}) do
if type == "file" then
-- Resolve all symlinks and compare nvim-treesitter's path with
-- whatever we've got from runtime
local nvim_treesitter_path = assert(vim.uv.fs_realpath(vim.fs.joinpath(queries_path, name)))
local rtp_path = assert(
vim.uv.fs_realpath(vim.api.nvim_get_runtime_file("queries/" .. name, false)[1]),
name .. " not found in runtime"
)
assert(
nvim_treesitter_path == rtp_path,
string.format(
"%s from rtp (%s) is not the same as from nvim-treesitter (%s)",
name,
rtp_path, nvim_treesitter_path
)
)
end
end
'';
};
}

0 comments on commit 8e8932a

Please sign in to comment.