52 lines
1.8 KiB
Nix
52 lines
1.8 KiB
Nix
{ pkgs, ... }:
|
|
let
|
|
treesitter-blade-grammar = pkgs.tree-sitter.buildGrammar {
|
|
language = "blade";
|
|
version = "v0.11.0";
|
|
src = (pkgs.fetchFromGitHub {
|
|
owner = "EmranMR";
|
|
repo = "tree-sitter-blade";
|
|
rev = "a9997ceb8d2e0cd902fe649a33b476d37a0d6042";
|
|
hash = "sha256-PTGdsXlLoE+xlU0uWOU6LQalX4fhJ/qhpyEKmTAazLU=";
|
|
}).overrideAttrs (drv: {
|
|
fixupPhase = ''
|
|
mkdir -p $out/queries/blade
|
|
mv $out/queries/*.scm $out/queries/blade/
|
|
'';
|
|
});
|
|
meta.homepage = "https://github.com/EmranMR/tree-sitter-blade/";
|
|
};
|
|
in {
|
|
programs.nixvim = {
|
|
|
|
plugins.treesitter = {
|
|
enable = true;
|
|
nixGrammars = true;
|
|
settings = {
|
|
indent.enable = true;
|
|
highlight.enable = true;
|
|
};
|
|
grammarPackages = pkgs.vimPlugins.nvim-treesitter.passthru.allGrammars
|
|
++ [ treesitter-blade-grammar ];
|
|
luaConfig.post = ''
|
|
do
|
|
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
|
|
-- change the following as needed
|
|
parser_config.blade = {
|
|
install_info = {
|
|
url = "${treesitter-blade-grammar}", -- local path or git repo
|
|
files = {"src/parser.c"}, -- note that some parsers also require src/scanner.c or src/scanner.cc
|
|
-- optional entries:
|
|
-- branch = "main", -- default branch in case of git repo if different from master
|
|
-- generate_requires_npm = false, -- if stand-alone parser without npm dependencies
|
|
requires_generate_from_grammar = false, -- if folder contains pre-generated src/parser.c
|
|
},
|
|
filetype = "blade", -- if filetype does not match the parser name
|
|
}
|
|
end
|
|
'';
|
|
};
|
|
extraPlugins = [ treesitter-blade-grammar ];
|
|
};
|
|
}
|