From 1df3f5ec6aca24cbe7b78ead5c37ad06a65c84e8 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Thu, 23 Feb 2023 17:05:20 +0000 Subject: feat(treesitter): upstream foldexpr from nvim-treesitter --- runtime/queries/lua/folds.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 runtime/queries/lua/folds.scm (limited to 'runtime/queries/lua') diff --git a/runtime/queries/lua/folds.scm b/runtime/queries/lua/folds.scm new file mode 100644 index 0000000000..d8f0b42df3 --- /dev/null +++ b/runtime/queries/lua/folds.scm @@ -0,0 +1,10 @@ +[ + (do_statement) + (while_statement) + (repeat_statement) + (if_statement) + (for_statement) + (function_declaration) + (function_definition) + (table_constructor) +] @fold -- cgit From 98e051783c26239a47c5cd643e9aea7146b097bd Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 3 Mar 2023 14:27:30 +0100 Subject: feat(treesitter): bundle query parser and queries (#22483) skip injections for now --- runtime/queries/lua/injections.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'runtime/queries/lua') diff --git a/runtime/queries/lua/injections.scm b/runtime/queries/lua/injections.scm index 0e67329139..69acbbbe9f 100644 --- a/runtime/queries/lua/injections.scm +++ b/runtime/queries/lua/injections.scm @@ -11,10 +11,10 @@ arguments: (arguments (string content: _ @vim))) (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_exec" "vim.api.nvim_cmd")) -; ((function_call -; name: (_) @_vimcmd_identifier -; arguments: (arguments (string content: _ @query) .)) -; (#eq? @_vimcmd_identifier "vim.treesitter.query.set_query")) +((function_call + name: (_) @_vimcmd_identifier + arguments: (arguments (string content: _ @query) .)) + (#eq? @_vimcmd_identifier "vim.treesitter.query.set_query")) ; ;; highlight string as query if starts with `;; query` ; ((string ("string_content") @query) (#lua-match? @query "^%s*;+%s?query")) -- cgit From ddd257f75301a50c177fc24a693d39a45b47a689 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Wed, 8 Mar 2023 11:03:11 +0000 Subject: feat(treesitter): use upstream format for injection queries --- runtime/queries/lua/injections.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'runtime/queries/lua') diff --git a/runtime/queries/lua/injections.scm b/runtime/queries/lua/injections.scm index 69acbbbe9f..10eb4c4054 100644 --- a/runtime/queries/lua/injections.scm +++ b/runtime/queries/lua/injections.scm @@ -3,20 +3,26 @@ (identifier) @_cdef_identifier (_ _ (identifier) @_cdef_identifier) ] - arguments: (arguments (string content: _ @c))) + arguments: (arguments (string content: _ @injection.content))) + (#set! injection.language "c") (#eq? @_cdef_identifier "cdef")) ((function_call name: (_) @_vimcmd_identifier - arguments: (arguments (string content: _ @vim))) + arguments: (arguments (string content: _ @injection.content))) + (#set! injection.language "vim") (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_exec" "vim.api.nvim_cmd")) ((function_call name: (_) @_vimcmd_identifier - arguments: (arguments (string content: _ @query) .)) + arguments: (arguments (string content: _ @injection.content) .)) + (#set! injection.language "query") (#eq? @_vimcmd_identifier "vim.treesitter.query.set_query")) ; ;; highlight string as query if starts with `;; query` -; ((string ("string_content") @query) (#lua-match? @query "^%s*;+%s?query")) +; ((string ("string_content") @injection.content) +; (#set! injection.language "query") +; (#lua-match? @injection.content "^%s*;+%s?query")) -; (comment) @comment +; ((comment) @injection.content +; (#set! injection.language "comment")) -- cgit From 2a298f2e48eb081f2e3b58068af589b82fe76a18 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 31 Mar 2023 16:11:17 +0200 Subject: fix(treesitter): update queries from nvim-treesitter remove self-injection for C preprocessor macros (can be very slow) --- runtime/queries/lua/highlights.scm | 43 +++++++++++++++++++++++++------------- runtime/queries/lua/injections.scm | 12 +++++------ 2 files changed, 35 insertions(+), 20 deletions(-) (limited to 'runtime/queries/lua') diff --git a/runtime/queries/lua/highlights.scm b/runtime/queries/lua/highlights.scm index 2c0dc5447a..5fbf8a1833 100644 --- a/runtime/queries/lua/highlights.scm +++ b/runtime/queries/lua/highlights.scm @@ -8,8 +8,6 @@ "local" ] @keyword -(label_statement) @label - (break_statement) @keyword (do_statement @@ -109,6 +107,7 @@ [ ";" ":" + "::" "," "." ] @punctuation.delimiter @@ -129,12 +128,21 @@ (identifier) @variable ((identifier) @variable.builtin - (#eq? @variable.builtin "self")) + (#any-of? @variable.builtin "_G" "_VERSION" "debug" "io" "jit" "math" "os" "package" "self" "string" "table" "utf8")) + +((identifier) @keyword.coroutine + (#eq? @keyword.coroutine "coroutine")) (variable_list - attribute: (attribute - (["<" ">"] @punctuation.bracket - (identifier) @attribute))) + attribute: (attribute + (["<" ">"] @punctuation.bracket + (identifier) @attribute))) + +;; Labels + +(label_statement (identifier) @label) + +(goto_statement (identifier) @label) ;; Constants @@ -172,7 +180,7 @@ (function_call name: (dot_index_expression field: (identifier) @function.call)) (function_declaration name: (dot_index_expression field: (identifier) @function)) -(method_index_expression method: (identifier) @method) +(method_index_expression method: (identifier) @method.call) (function_call (identifier) @function.builtin @@ -180,20 +188,27 @@ ;; built-in functions in Lua 5.1 "assert" "collectgarbage" "dofile" "error" "getfenv" "getmetatable" "ipairs" "load" "loadfile" "loadstring" "module" "next" "pairs" "pcall" "print" - "rawequal" "rawget" "rawset" "require" "select" "setfenv" "setmetatable" - "tonumber" "tostring" "type" "unpack" "xpcall")) + "rawequal" "rawget" "rawlen" "rawset" "require" "select" "setfenv" "setmetatable" + "tonumber" "tostring" "type" "unpack" "xpcall" + "__add" "__band" "__bnot" "__bor" "__bxor" "__call" "__concat" "__div" "__eq" "__gc" + "__idiv" "__index" "__le" "__len" "__lt" "__metatable" "__mod" "__mul" "__name" "__newindex" + "__pairs" "__pow" "__shl" "__shr" "__sub" "__tostring" "__unm")) ;; Others -(comment) @comment -(comment) @spell +(comment) @comment @spell + +((comment) @comment.documentation + (#lua-match? @comment.documentation "^[-][-][-]")) + +((comment) @comment.documentation + (#lua-match? @comment.documentation "^[-][-](%s?)@")) -(hash_bang_line) @comment +(hash_bang_line) @preproc (number) @number -(string) @string -(string) @spell +(string) @string @spell ;; Error (ERROR) @error diff --git a/runtime/queries/lua/injections.scm b/runtime/queries/lua/injections.scm index 10eb4c4054..1c7bdaf951 100644 --- a/runtime/queries/lua/injections.scm +++ b/runtime/queries/lua/injections.scm @@ -11,18 +11,18 @@ name: (_) @_vimcmd_identifier arguments: (arguments (string content: _ @injection.content))) (#set! injection.language "vim") - (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_exec" "vim.api.nvim_cmd")) + (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_exec2" "vim.api.nvim_cmd")) ((function_call name: (_) @_vimcmd_identifier arguments: (arguments (string content: _ @injection.content) .)) (#set! injection.language "query") - (#eq? @_vimcmd_identifier "vim.treesitter.query.set_query")) + (#any-of? @_vimcmd_identifier "vim.treesitter.query.set" "vim.treesitter.query.parse")) -; ;; highlight string as query if starts with `;; query` -; ((string ("string_content") @injection.content) -; (#set! injection.language "query") -; (#lua-match? @injection.content "^%s*;+%s?query")) +;; highlight string as query if starts with `;; query` +((string ("string_content") @injection.content) + (#set! injection.language "query") + (#lua-match? @injection.content "^%s*;+%s?query")) ; ((comment) @injection.content ; (#set! injection.language "comment")) -- cgit From 0dbed7132b559b3e8419c0e59ca553e5921d6a90 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 13 May 2023 12:37:22 +0200 Subject: build(deps): update lua parser and queries --- runtime/queries/lua/highlights.scm | 10 +++++++++- runtime/queries/lua/injections.scm | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'runtime/queries/lua') diff --git a/runtime/queries/lua/highlights.scm b/runtime/queries/lua/highlights.scm index 5fbf8a1833..537a171441 100644 --- a/runtime/queries/lua/highlights.scm +++ b/runtime/queries/lua/highlights.scm @@ -127,8 +127,14 @@ (identifier) @variable +((identifier) @constant.builtin + (#eq? @constant.builtin "_VERSION")) + ((identifier) @variable.builtin - (#any-of? @variable.builtin "_G" "_VERSION" "debug" "io" "jit" "math" "os" "package" "self" "string" "table" "utf8")) + (#eq? @variable.builtin "self")) + +((identifier) @namespace.builtin + (#any-of? @namespace.builtin "_G" "debug" "io" "jit" "math" "os" "package" "string" "table" "utf8")) ((identifier) @keyword.coroutine (#eq? @keyword.coroutine "coroutine")) @@ -210,5 +216,7 @@ (string) @string @spell +(escape_sequence) @string.escape + ;; Error (ERROR) @error diff --git a/runtime/queries/lua/injections.scm b/runtime/queries/lua/injections.scm index 1c7bdaf951..3fcebe83f3 100644 --- a/runtime/queries/lua/injections.scm +++ b/runtime/queries/lua/injections.scm @@ -13,6 +13,14 @@ (#set! injection.language "vim") (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_exec2" "vim.api.nvim_cmd")) +; vim.rcprequest(123, "nvim_exec_lua", "return vim.api.nvim_buf_get_lines(0, 0, -1, false)", false) +((function_call + name: (_) @_vimcmd_identifier + arguments: (arguments . (_) . (string content: _ @_method) . (string content: _ @injection.content))) + (#set! injection.language "lua") + (#any-of? @_vimcmd_identifier "vim.rpcrequest" "vim.rpcnotify") + (#eq? @_method "nvim_exec_lua")) + ((function_call name: (_) @_vimcmd_identifier arguments: (arguments (string content: _ @injection.content) .)) @@ -20,7 +28,7 @@ (#any-of? @_vimcmd_identifier "vim.treesitter.query.set" "vim.treesitter.query.parse")) ;; highlight string as query if starts with `;; query` -((string ("string_content") @injection.content) +(string content: _ @injection.content (#set! injection.language "query") (#lua-match? @injection.content "^%s*;+%s?query")) -- cgit From b697c0cd4fb2ebe3f021599cb77122374db7fd59 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Mon, 26 Jun 2023 09:25:46 +0200 Subject: fix(treesitter): update lua parser and queries (#24148) --- runtime/queries/lua/highlights.scm | 37 ++++++++++++++++++++++++++++++++----- runtime/queries/lua/injections.scm | 27 +++++++++++++-------------- 2 files changed, 45 insertions(+), 19 deletions(-) (limited to 'runtime/queries/lua') diff --git a/runtime/queries/lua/highlights.scm b/runtime/queries/lua/highlights.scm index 537a171441..96ffeae793 100644 --- a/runtime/queries/lua/highlights.scm +++ b/runtime/queries/lua/highlights.scm @@ -180,13 +180,40 @@ (parameters (identifier) @parameter) -(function_call name: (identifier) @function.call) -(function_declaration name: (identifier) @function) +(function_declaration + name: [ + (identifier) @function + (dot_index_expression + field: (identifier) @function) + ]) -(function_call name: (dot_index_expression field: (identifier) @function.call)) -(function_declaration name: (dot_index_expression field: (identifier) @function)) +(function_declaration + name: (method_index_expression + method: (identifier) @method)) + +(assignment_statement + (variable_list . + name: [ + (identifier) @function + (dot_index_expression + field: (identifier) @function) + ]) + (expression_list . + value: (function_definition))) -(method_index_expression method: (identifier) @method.call) +(table_constructor + (field + name: (identifier) @function + value: (function_definition))) + +(function_call + name: [ + (identifier) @function.call + (dot_index_expression + field: (identifier) @function.call) + (method_index_expression + method: (identifier) @method.call) + ]) (function_call (identifier) @function.builtin diff --git a/runtime/queries/lua/injections.scm b/runtime/queries/lua/injections.scm index 3fcebe83f3..dbfe75ae31 100644 --- a/runtime/queries/lua/injections.scm +++ b/runtime/queries/lua/injections.scm @@ -3,7 +3,9 @@ (identifier) @_cdef_identifier (_ _ (identifier) @_cdef_identifier) ] - arguments: (arguments (string content: _ @injection.content))) + arguments: + (arguments + (string content: _ @injection.content))) (#set! injection.language "c") (#eq? @_cdef_identifier "cdef")) @@ -11,15 +13,7 @@ name: (_) @_vimcmd_identifier arguments: (arguments (string content: _ @injection.content))) (#set! injection.language "vim") - (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_exec2" "vim.api.nvim_cmd")) - -; vim.rcprequest(123, "nvim_exec_lua", "return vim.api.nvim_buf_get_lines(0, 0, -1, false)", false) -((function_call - name: (_) @_vimcmd_identifier - arguments: (arguments . (_) . (string content: _ @_method) . (string content: _ @injection.content))) - (#set! injection.language "lua") - (#any-of? @_vimcmd_identifier "vim.rpcrequest" "vim.rpcnotify") - (#eq? @_method "nvim_exec_lua")) + (#any-of? @_vimcmd_identifier "vim.cmd" "vim.api.nvim_command" "vim.api.nvim_command" "vim.api.nvim_exec2")) ((function_call name: (_) @_vimcmd_identifier @@ -27,10 +21,15 @@ (#set! injection.language "query") (#any-of? @_vimcmd_identifier "vim.treesitter.query.set" "vim.treesitter.query.parse")) +((function_call + name: (_) @_vimcmd_identifier + arguments: (arguments . (_) . (string content: _ @_method) . (string content: _ @injection.content))) + (#any-of? @_vimcmd_identifier "vim.rpcrequest" "vim.rpcnotify") + (#eq? @_method "nvim_exec_lua") + (#set! injection.language "lua")) + ;; highlight string as query if starts with `;; query` (string content: _ @injection.content - (#set! injection.language "query") - (#lua-match? @injection.content "^%s*;+%s?query")) + (#lua-match? @injection.content "^%s*;+%s?query") + (#set! injection.language "query")) -; ((comment) @injection.content -; (#set! injection.language "comment")) -- cgit