diff options
| -rw-r--r-- | lua/nvim-treesitter/install.lua | 13 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 36 | ||||
| -rw-r--r-- | queries/cpp/locals.scm | 11 |
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) |
