aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/nvim-treesitter/install.lua13
-rw-r--r--lua/nvim-treesitter/parsers.lua36
-rw-r--r--queries/cpp/locals.scm11
3 files changed, 43 insertions, 17 deletions
diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua
index ff43bca98..09eeb1d86 100644
--- a/lua/nvim-treesitter/install.lua
+++ b/lua/nvim-treesitter/install.lua
@@ -174,6 +174,19 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync,
vim.list_extend(command_list, shell.select_download_commands(repo, project_name, cache_folder, revision))
end
if generate_from_grammar then
+ if repo.generate_requires_npm then
+ vim.list_extend(command_list, {
+ {
+ cmd = 'npm',
+ info = 'Installing NPM dependencies of '..lang..' parser',
+ err = 'Error during `npm install` (required for parser generation of '..lang..' with npm dependencies)',
+ opts = {
+ args = {'install'},
+ cwd = compile_location
+ }
+ }
+ })
+ end
vim.list_extend(command_list, {
{
cmd = 'tree-sitter',
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index fb159804a..051678619 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -58,7 +58,8 @@ list.clojure = {
list.cpp = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-cpp",
- files = { "src/parser.c", "src/scanner.cc" }
+ files = { "src/parser.c", "src/scanner.cc" },
+ generate_requires_npm = true,
},
used_by = { "cuda" },
maintainers = {"@theHamsta"},
@@ -148,14 +149,16 @@ list.java = {
maintainers = {"@p00f"},
}
-list.kotlin = {
- install_info = {
- url = "https://github.com/QthCN/tree-sitter-kotlin",
- files = { "src/parser.c" },
- requires_generate_from_grammar = true,
- },
- maintainers = {"@tormodatt"},
-}
+---Parser generation from source does not terminate in reasonable time
+--list.kotlin = {
+ --install_info = {
+ --url = "https://github.com/QthCN/tree-sitter-kotlin",
+ --files = { "src/parser.c" },
+ --requires_generate_from_grammar = true,
+ --generate_requires_npm = true,
+ --},
+ --maintainers = {"@tormodatt"},
+--}
list.html = {
install_info = {
@@ -249,7 +252,8 @@ list.typescript = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-typescript",
files = { "src/parser.c", "src/scanner.c" },
- location = "tree-sitter-typescript/typescript"
+ location = "tree-sitter-typescript/typescript",
+ generate_requires_npm = true,
},
maintainers = {"@steelsojka"},
}
@@ -258,7 +262,8 @@ list.tsx = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-typescript",
files = { "src/parser.c", "src/scanner.c" },
- location = "tree-sitter-tsx/tsx"
+ location = "tree-sitter-tsx/tsx",
+ generate_requires_npm = true,
},
used_by = { "typescript.tsx" },
filetype = 'typescriptreact'
@@ -302,6 +307,7 @@ list.toml = {
url = "https://github.com/ikatyang/tree-sitter-toml",
files = { "src/parser.c", "src/scanner.c" },
requires_generate_from_grammar = true,
+ generate_requires_npm = true,
},
maintainers = {"@tk-shirasaka"},
}
@@ -332,6 +338,7 @@ list.jsonc = {
url = "https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git",
files = { "src/parser.c" },
requires_generate_from_grammar = true,
+ generate_requires_npm = true,
},
readme_name = "JSON with comments",
maintainers = {"@WhyNotHugo"},
@@ -404,14 +411,18 @@ list.ql = {
maintainers = {'@pwntester'},
}
+---Parser generation from source takes a looong time!
list.verilog = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-verilog",
files = { "src/parser.c" },
+ requires_generate_from_grammar = true,
+ generate_requires_npm = true,
},
used_by = { "systemverilog" },
maintainers = { "@zegervdv" },
}
+
-- Parsers for injections
list.regex = {
install_info = {
@@ -491,8 +502,9 @@ list.devicetree = {
list.svelte = {
install_info = {
url = "https://github.com/Himujjal/tree-sitter-svelte",
- files = { "src/parser.c", "src/scanner.cc" },
+ files = { "src/parser.c", "src/scanner.c" },
branch = "master",
+ requires_generate_from_grammar = true,
},
maintainers = { "@elianiva" },
}
diff --git a/queries/cpp/locals.scm b/queries/cpp/locals.scm
index a109aabdf..1e60b0e27 100644
--- a/queries/cpp/locals.scm
+++ b/queries/cpp/locals.scm
@@ -54,9 +54,10 @@
name: (scoped_identifier
name: (identifier) @definition.function)) @scope
-(function_declarator
- declarator: (scoped_identifier
- name: (type_identifier) @definition.function)) @scope
+;; TODO!!
+;(function_declarator
+ ;declarator: (scoped_identifier
+ ;name: (type_identifier) @definition.function)) @scope
(field_declaration
declarator: (function_declarator
@@ -70,5 +71,5 @@
(catch_clause) @scope
-(destructor_name
- name: (_) @constructor)
+;(destructor_name
+ ;name: (_) @constructor)