From 42ab95d5e11f247c6f0c8f5181b02e816caa4a4f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 16 Oct 2022 14:52:15 +0200 Subject: [PATCH 0001/3265] feat!: remove obsolete `TS*` highlight groups --- README.md | 2 +- doc/nvim-treesitter.txt | 301 ------------------------ lua/nvim-treesitter/highlight.lua | 234 ------------------ plugin/nvim-treesitter.lua | 10 - tests/query/highlights/cpp/test.cpp | 4 +- tests/query/highlights/lua/test.lua | 12 +- tests/query/highlights/markdown/test.md | 30 +-- tests/query/highlights_spec.lua | 4 +- 8 files changed, 25 insertions(+), 572 deletions(-) diff --git a/README.md b/README.md index 0c50d01e0..3b0bda0ea 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ For more detailed information on setting these up, see ["Advanced setup"](#advan ## Requirements -- **Neovim 0.7.0 or later** built with **tree-sitter 0.20.3+** (latest [nightly](https://github.com/neovim/neovim#install-from-source) recommended) +- **Neovim 0.8.0 or later** built with **tree-sitter 0.20.3+** (latest [nightly](https://github.com/neovim/neovim#install-from-source) recommended) - `tar` and `curl` in your path (or alternatively `git`) - A C compiler in your path and libstdc++ installed ([Windows users please read this!](https://github.com/nvim-treesitter/nvim-treesitter/wiki/Windows-support)). diff --git a/doc/nvim-treesitter.txt b/doc/nvim-treesitter.txt index 6db97dcba..4feabb739 100644 --- a/doc/nvim-treesitter.txt +++ b/doc/nvim-treesitter.txt @@ -476,307 +476,6 @@ Note: This is highly experimental, and folding can break on some types of edits. If you encounter such breakage, hiting `zx` should fix folding. In any case, feel free to open an issue with the reproducing steps. -============================================================================== -HIGHLIGHTS *nvim-treesitter-highlights* - -The following is a list of highlights groups, the syntactic elements they -apply to, and some examples. - - *hl-TSAttribute* -`TSAttribute` -Annotations that can be attached to the code to denote some kind of meta -information. e.g. C++/Dart attributes. - - *hl-TSBoolean* -`TSBoolean` -Boolean literals: `True` and `False` in Python. - - *hl-TSCharacter* -`TSCharacter` -Character literals: `'a'` in C. - - *hl-TSCharacterSpecial* -`TSCharacterSpecial` -Special characters. - - *hl-TSComment* -`TSComment` -Line comments and block comments. - - *hl-TSConditional* -`TSConditional` -Keywords related to conditionals: `if`, `when`, `cond`, etc. - - *hl-TSConstant* -`TSConstant` -Constants identifiers. These might not be semantically constant. -E.g. uppercase variables in Python. - - *hl-TSConstBuiltin* -`TSConstBuiltin` -Built-in constant values: `nil` in Lua. - - *hl-TSConstMacro* -`TSConstMacro` -Constants defined by macros: `NULL` in C. - - *hl-TSConstructor* -`TSConstructor` -Constructor calls and definitions: `{}` in Lua, and Java constructors. - - *hl-TSDebug* -`TSDebug` -Debugging statements. - - *hl-TSDefine* -`TSDefine` -Preprocessor #define statements. - - *hl-TSError* -`TSError` -Syntax/parser errors. This might highlight large sections of code while the -user is typing still incomplete code, use a sensible highlight. - - *hl-TSException* -`TSException` -Exception related keywords: `try`, `except`, `finally` in Python. - - *hl-TSField* -`TSField` -Object and struct fields. - - *hl-TSFloat* -`TSFloat` -Floating-point number literals. - - *hl-TSFunction* -`TSFunction` -Function definitions. - - *hl-TSFunctionCall* -`TSFunctionCall` -Function calls. - - *hl-TSFuncBuiltin* -`TSFuncBuiltin` -Built-in functions: `print` in Lua. - - *hl-TSFuncMacro* -`TSFuncMacro` -Macro defined functions (calls and definitions): each `macro_rules` in -Rust. - - *hl-TSInclude* -`TSInclude` -File or module inclusion keywords: `#include` in C, `use` or `extern crate` in -Rust. - - *hl-TSKeyword* -`TSKeyword` -Keywords that don't fit into other categories. - - *hl-TSKeywordFunction* -`TSKeywordFunction` -Keywords used to define a function: `function` in Lua, `def` and `lambda` in -Python. - - *hl-TSKeywordOperator* -`TSKeywordOperator` -Unary and binary operators that are English words: `and`, `or` in Python; -`sizeof` in C. - - *hl-TSKeywordReturn* -`TSKeywordReturn` -Keywords like `return` and `yield`. - - *hl-TSLabel* -`TSLabel` -GOTO labels: `label:` in C, and `::label::` in Lua. - - *hl-TSMethod* -`TSMethod` -Method definitions. - - *hl-TSMethodCall* -`TSMethodCall` -Method calls. - - *hl-TSNamespace* -`TSNamespace` -Identifiers referring to modules and namespaces. - - *hl-None* -`TSNone` -No highlighting (sets all highlight arguments to `NONE`). This group is used -to clear certain ranges, for example, string interpolations. Don't change the -values of this highlight group. - - *hl-TSNumber* -`TSNumber` -Numeric literals that don't fit into other categories. - - *hl-TSOperator* -`TSOperator` -Binary or unary operators: `+`, and also `->` and `*` in C. - - *hl-TSParameter* -`TSParameter` -Parameters of a function. - - *hl-TSParameterReference* -`TSParameterReference` -References to parameters of a function. - - *hl-TSPreProc* -`TSPreProc` -Preprocessor #if, #else, #endif, etc. - - *hl-TSProperty* -`TSProperty` -Same as `TSField`. - - *hl-TSPunctDelimiter* -`TSPunctDelimiter` -Punctuation delimiters: Periods, commas, semicolons, etc. - - *hl-TSPunctBracket* -`TSPunctBracket` -Brackets, braces, parentheses, etc. - - *hl-TSPunctSpecial* -`TSPunctSpecial` -Special punctuation that doesn't fit into the previous categories. - - *hl-TSRepeat* -`TSRepeat` -Keywords related to loops: `for`, `while`, etc. - - *hl-StorageClass* -`TSStorageClass` -Keywords that affect how a variable is stored: `static`, `comptime`, `extern`, -etc. - - *hl-TSString* -`TSString` -String literals. - - *hl-TSStringRegex* -`TSStringRegex` -Regular expression literals. - - *hl-TSStringEscape* -`TSStringEscape` -Escape characters within a string: `\n`, `\t`, etc. - - *hl-TSStringSpecial* -`TSStringSpecial` -Strings with special meaning that don't fit into the previous categories. - - *hl-TSSymbol* -`TSSymbol` -Identifiers referring to symbols or atoms. - - *hl-TSTag* -`TSTag` -Tags like HTML tag names. - - *hl-TSTagAttribute* -`TSTagAttribute` -HTML tag attributes. - - *hl-TSTagDelimiter* -`TSTagDelimiter` -Tag delimiters like `<` `>` `/`. - - *hl-TSText* -`TSText` -Non-structured text. Like text in a markup language. - - *hl-TSSTrong* -`TSStrong` -Text to be represented in bold. - - *hl-TSEmphasis* -`TSEmphasis` -Text to be represented with emphasis. - - *hl-TSUnderline* -`TSUnderline` -Text to be represented with an underline. - - *hl-TSStrike* -`TSStrike` -Strikethrough text. - - *hl-TSTitle* -`TSTitle` -Text that is part of a title. - - *hl-TSLiteral* -`TSLiteral` -Literal or verbatim text. - - *hl-TSURI* -`TSURI` -URIs like hyperlinks or email addresses. - - *hl-TSMath* -`TSMath` -Math environments like LaTeX's `$ ... $`. - - *hl-TSTextReference* -`TSTextReference` -Footnotes, text references, citations, etc. - - *hl-TSEnvironment* -`TSEnvironment` -Text environments of markup languages. - - *hl-TSEnvironmentName* -`TSEnvironmentName` -Text/string indicating the type of text environment. Like the name of a -`\begin` block in LaTeX. - - *hl-TSNote* -`TSNote` -Text representation of an informational note. - - *TSWarning* -`TSWarning` -Text representation of a warning note. - - *TSDanger* -`TSDanger` -Text representation of a danger note. - - *hl-TSTodo* -`TSTodo` -Anything that needs extra attention, such as keywords like TODO or FIXME. - - *hl-TSType* -`TSType` -Type (and class) definitions and annotations. - - *hl-TSTypeBuiltin* -`TSTypeBuiltin` -Built-in types: `i32` in Rust. - - *hl-TSTypeQualifier* -`TSTypeQualifier` -Qualifiers on types, e.g. `const` or `volatile` in C or `mut` in Rust. - - *hl-TSTypeDefinition* -`TSTypeDefinition` -Type definitions, e.g. `typedef` in C. - - *hl-TSVariable* -`TSVariable` -Variable names that don't fit into other categories. - - *hl-TSVariableBuiltin* -`TSVariableBuiltin` -Variable names defined by the language: `this` or `self` in Javascript. - ============================================================================== PERFORMANCE *nvim-treesitter-performance* diff --git a/lua/nvim-treesitter/highlight.lua b/lua/nvim-treesitter/highlight.lua index 0f4a11f71..502914fe4 100644 --- a/lua/nvim-treesitter/highlight.lua +++ b/lua/nvim-treesitter/highlight.lua @@ -6,140 +6,6 @@ local configs = require "nvim-treesitter.configs" local M = {} --- nvim-treesitter Highlight Group Mappings --- Note: Some highlight groups may not be applied upstream, some may be experimental --- TODO(clason): deprecated and will be removed for Nvim 0.8 - -M.default_map = { - ["annotation"] = "TSAnnotation", - - ["attribute"] = "TSAttribute", - - ["boolean"] = "TSBoolean", - - ["character"] = "TSCharacter", - ["character.special"] = "TSCharacterSpecial", - - ["comment"] = "TSComment", - - ["conditional"] = "TSConditional", - - ["constant"] = "TSConstant", - ["constant.builtin"] = "TSConstBuiltin", - ["constant.macro"] = "TSConstMacro", - - ["constructor"] = "TSConstructor", - - ["debug"] = "TSDebug", - ["define"] = "TSDefine", - - ["error"] = "TSError", - ["exception"] = "TSException", - - ["field"] = "TSField", - - ["float"] = "TSFloat", - - ["function"] = "TSFunction", - ["function.call"] = "TSFunctionCall", - ["function.builtin"] = "TSFuncBuiltin", - ["function.macro"] = "TSFuncMacro", - - ["include"] = "TSInclude", - - ["keyword"] = "TSKeyword", - ["keyword.function"] = "TSKeywordFunction", - ["keyword.operator"] = "TSKeywordOperator", - ["keyword.return"] = "TSKeywordReturn", - - ["label"] = "TSLabel", - - ["method"] = "TSMethod", - ["method.call"] = "TSMethodCall", - - ["namespace"] = "TSNamespace", - - ["none"] = "TSNone", - ["number"] = "TSNumber", - - ["operator"] = "TSOperator", - - ["parameter"] = "TSParameter", - ["parameter.reference"] = "TSParameterReference", - - ["preproc"] = "TSPreProc", - - ["property"] = "TSProperty", - - ["punctuation.delimiter"] = "TSPunctDelimiter", - ["punctuation.bracket"] = "TSPunctBracket", - ["punctuation.special"] = "TSPunctSpecial", - - ["repeat"] = "TSRepeat", - - ["storageclass"] = "TSStorageClass", - - ["string"] = "TSString", - ["string.regex"] = "TSStringRegex", - ["string.escape"] = "TSStringEscape", - ["string.special"] = "TSStringSpecial", - - ["symbol"] = "TSSymbol", - - ["tag"] = "TSTag", - ["tag.attribute"] = "TSTagAttribute", - ["tag.delimiter"] = "TSTagDelimiter", - - ["text"] = "TSText", - ["text.strong"] = "TSStrong", - ["text.emphasis"] = "TSEmphasis", - ["text.underline"] = "TSUnderline", - ["text.strike"] = "TSStrike", - ["text.title"] = "TSTitle", - ["text.literal"] = "TSLiteral", - ["text.uri"] = "TSURI", - ["text.math"] = "TSMath", - ["text.reference"] = "TSTextReference", - ["text.environment"] = "TSEnvironment", - ["text.environment.name"] = "TSEnvironmentName", - - ["text.note"] = "TSNote", - ["text.warning"] = "TSWarning", - ["text.danger"] = "TSDanger", - - ["todo"] = "TSTodo", - - ["type"] = "TSType", - ["type.builtin"] = "TSTypeBuiltin", - ["type.qualifier"] = "TSTypeQualifier", - ["type.definition"] = "TSTypeDefinition", - - ["variable"] = "TSVariable", - ["variable.builtin"] = "TSVariableBuiltin", -} - --- compatibility shim -local link_captures -if ts.highlighter.hl_map then - link_captures = function(capture, hlgroup) - ts.highlighter.hl_map[capture] = hlgroup - end -elseif not vim.g.skip_ts_default_groups then - link_captures = function(capture, hlgroup) - api.nvim_set_hl(0, "@" .. capture, { link = hlgroup, default = true }) - end -end - -local function link_all_captures() - if link_captures then - for capture, hlgroup in pairs(M.default_map) do - link_captures(capture, hlgroup) - end - end -end - -link_all_captures() - local function should_enable_vim_regex(config, lang) local additional_hl = config.additional_vim_regex_highlighting local is_table = type(additional_hl) == "table" @@ -175,104 +41,4 @@ function M.detach(bufnr) enable_syntax(bufnr) end --- TODO(clason): remove obsolete function after bump to 0.8 -function M.set_custom_captures(captures) - for capture, hlgroup in pairs(captures) do - link_captures(capture, hlgroup) - end -end - -function M.set_default_hlgroups() - if not ts.highlighter.hl_map and not vim.g.skip_ts_default_groups then - link_all_captures() - end - local highlights = { - TSNone = { default = true }, - TSPunctDelimiter = { link = "Delimiter", default = true }, - TSPunctBracket = { link = "Delimiter", default = true }, - TSPunctSpecial = { link = "Delimiter", default = true }, - - TSConstant = { link = "Constant", default = true }, - TSConstBuiltin = { link = "Special", default = true }, - TSConstMacro = { link = "Define", default = true }, - TSString = { link = "String", default = true }, - TSStringRegex = { link = "String", default = true }, - TSStringEscape = { link = "SpecialChar", default = true }, - TSStringSpecial = { link = "SpecialChar", default = true }, - TSCharacter = { link = "Character", default = true }, - TSCharacterSpecial = { link = "SpecialChar", default = true }, - TSNumber = { link = "Number", default = true }, - TSBoolean = { link = "Boolean", default = true }, - TSFloat = { link = "Float", default = true }, - - TSFunction = { link = "Function", default = true }, - TSFunctionCall = { link = "TSFunction", default = true }, - TSFuncBuiltin = { link = "Special", default = true }, - TSFuncMacro = { link = "Macro", default = true }, - TSParameter = { link = "Identifier", default = true }, - TSParameterReference = { link = "TSParameter", default = true }, - TSMethod = { link = "Function", default = true }, - TSMethodCall = { link = "TSMethod", default = true }, - TSField = { link = "Identifier", default = true }, - TSProperty = { link = "Identifier", default = true }, - TSConstructor = { link = "Special", default = true }, - TSAnnotation = { link = "PreProc", default = true }, - TSAttribute = { link = "PreProc", default = true }, - TSNamespace = { link = "Include", default = true }, - TSSymbol = { link = "Identifier", default = true }, - - TSConditional = { link = "Conditional", default = true }, - TSRepeat = { link = "Repeat", default = true }, - TSLabel = { link = "Label", default = true }, - TSOperator = { link = "Operator", default = true }, - TSKeyword = { link = "Keyword", default = true }, - TSKeywordFunction = { link = "Keyword", default = true }, - TSKeywordOperator = { link = "TSOperator", default = true }, - TSKeywordReturn = { link = "TSKeyword", default = true }, - TSException = { link = "Exception", default = true }, - TSDebug = { link = "Debug", default = true }, - TSDefine = { link = "Define", default = true }, - TSPreProc = { link = "PreProc", default = true }, - TSStorageClass = { link = "StorageClass", default = true }, - - TSTodo = { link = "Todo", default = true }, - - TSType = { link = "Type", default = true }, - TSTypeBuiltin = { link = "Type", default = true }, - TSTypeQualifier = { link = "Type", default = true }, - TSTypeDefinition = { link = "Typedef", default = true }, - - TSInclude = { link = "Include", default = true }, - - TSVariableBuiltin = { link = "Special", default = true }, - - TSText = { link = "TSNone", default = true }, - TSStrong = { bold = true, default = true }, - TSEmphasis = { italic = true, default = true }, - TSUnderline = { underline = true }, - TSStrike = { strikethrough = true }, - - TSMath = { link = "Special", default = true }, - TSTextReference = { link = "Constant", default = true }, - TSEnvironment = { link = "Macro", default = true }, - TSEnvironmentName = { link = "Type", default = true }, - TSTitle = { link = "Title", default = true }, - TSLiteral = { link = "String", default = true }, - TSURI = { link = "Underlined", default = true }, - - TSComment = { link = "Comment", default = true }, - TSNote = { link = "SpecialComment", default = true }, - TSWarning = { link = "Todo", default = true }, - TSDanger = { link = "WarningMsg", default = true }, - - TSTag = { link = "Label", default = true }, - TSTagDelimiter = { link = "Delimiter", default = true }, - TSTagAttribute = { link = "TSProperty", default = true }, - } - - for k, v in pairs(highlights) do - api.nvim_set_hl(0, k, v) - end -end - return M diff --git a/plugin/nvim-treesitter.lua b/plugin/nvim-treesitter.lua index 2eedd3372..4ea3925fd 100644 --- a/plugin/nvim-treesitter.lua +++ b/plugin/nvim-treesitter.lua @@ -9,7 +9,6 @@ vim.g.loaded_nvim_treesitter = true require("nvim-treesitter").setup() local api = vim.api -local highlight = require "nvim-treesitter.highlight" -- define autocommands local augroup = api.nvim_create_augroup("NvimTreesitter", {}) @@ -33,12 +32,3 @@ api.nvim_create_autocmd("Filetype", { end, desc = "Reload query", }) - -api.nvim_create_autocmd("ColorScheme", { - group = augroup, - callback = highlight.set_default_hlgroups, - desc = "Set default highlights", -}) - --- define highlights -highlight.set_default_hlgroups() diff --git a/tests/query/highlights/cpp/test.cpp b/tests/query/highlights/cpp/test.cpp index 0a13956fa..4dd138e7e 100644 --- a/tests/query/highlights/cpp/test.cpp +++ b/tests/query/highlights/cpp/test.cpp @@ -5,8 +5,8 @@ auto main( int argc, char** argv ) -> int // ^ parameter - // ^ type - // ^ TSType + // ^ type + // ^ type // ^ operator { std::cout << "Hello world!" << std::endl; diff --git a/tests/query/highlights/lua/test.lua b/tests/query/highlights/lua/test.lua index 22da22565..efb9a9994 100644 --- a/tests/query/highlights/lua/test.lua +++ b/tests/query/highlights/lua/test.lua @@ -1,13 +1,13 @@ local a = { 1, 2, 3, 4, 5 } --- ^ TSNumber ^ TSPunctBracket --- ^ TSVariable +-- ^ number ^ punctuation.bracket +-- ^ variable local _ = next(a) --- ^ TSFuncBuiltin --- ^ TSKeyword +-- ^ function.builtin +-- ^ keyword _ = next(a) --- ^ TSFuncBuiltin +-- ^ function.builtin next(a) --- ^ TSFuncBuiltin +-- ^ function.builtin diff --git a/tests/query/highlights/markdown/test.md b/tests/query/highlights/markdown/test.md index 6f3421ca2..9423d3e85 100644 --- a/tests/query/highlights/markdown/test.md +++ b/tests/query/highlights/markdown/test.md @@ -1,28 +1,28 @@ # H1 - + ## H2 - + - Item 1 - Item 2 - + 1. Item 1 2. Item 2 - + ----![image_description](https://example.com/image.jpg "awesome image title") - - - - - - + + + + + + [link_text](#local_reference "link go brr...") - - - - - + + + + + diff --git a/tests/query/highlights_spec.lua b/tests/query/highlights_spec.lua index ec3a3913f..ff022ba21 100644 --- a/tests/query/highlights_spec.lua +++ b/tests/query/highlights_spec.lua @@ -1,4 +1,3 @@ -local ts_highlight = require "nvim-treesitter.highlight" -- yes, this is necessary to set the hlmap local highlighter = require "vim.treesitter.highlighter" local ts_utils = require "nvim-treesitter.ts_utils" local parsers = require "nvim-treesitter.parsers" @@ -72,8 +71,7 @@ local function check_assertions(file) local c = query._query.captures[capture] -- name of the capture in the query if c ~= nil and c ~= "spell" and c ~= "conceal" then captures[c] = true - local general_hl = ts_highlight.default_map[c] - highlights[general_hl] = true + highlights[c] = true end end end From e8ae570a429e8c7ad4f19f64b0cd8d51fd006852 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 16 Oct 2022 13:51:30 +0000 Subject: [PATCH 0002/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 7779f102c..055c632f0 100644 --- a/lockfile.json +++ b/lockfile.json @@ -369,7 +369,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "1aab7c5567e7cbb12a46ee338350ed830ea8ab49" + "revision": "b417a1936646968ec8f0ef17919458aa9692b36f" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From 1a04759d9111da150cae7f249a32dfdbd08478bb Mon Sep 17 00:00:00 2001 From: Jongwook Choi Date: Sat, 17 Sep 2022 02:12:18 -0400 Subject: [PATCH 0003/3265] folds(yaml): Fold at the entire node, not at the body. --- queries/yaml/folds.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/queries/yaml/folds.scm b/queries/yaml/folds.scm index f82378e63..c426afb87 100644 --- a/queries/yaml/folds.scm +++ b/queries/yaml/folds.scm @@ -1,3 +1,4 @@ [ - (block_node) + (block_mapping_pair) + (block_sequence_item) ] @fold From dfcd371058bcc972f2a60d376280e4347c5a7ace Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 16 Oct 2022 23:06:45 +0000 Subject: [PATCH 0004/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 055c632f0..e5a5f7cc3 100644 --- a/lockfile.json +++ b/lockfile.json @@ -66,7 +66,7 @@ "revision": "f742f2fe327463335e8671a87c0b9b396905d1d1" }, "elixir": { - "revision": "3b8eb02597599ee38cfcc2c0fea76dc37a7472eb" + "revision": "b20eaa75565243c50be5e35e253d8beb58f45d56" }, "elm": { "revision": "cce0e5938e7779f86cf8bf445eadf7df4b88229d" @@ -384,7 +384,7 @@ "revision": "91fe2754796cd8fba5f229505a23fa08f3546c06" }, "wgsl": { - "revision": "272e89ef2aeac74178edb9db4a83c1ffef80a463" + "revision": "af16e7d9e230004888fb52d33599ad38b4cf6052" }, "yaml": { "revision": "0e36bed171768908f331ff7dff9d956bae016efb" From e218a862a1a2f7ca237bb65fb2f99b74e5855e52 Mon Sep 17 00:00:00 2001 From: beardedsakimonkey Date: Sun, 16 Oct 2022 18:02:26 -0700 Subject: [PATCH 0005/3265] locals(lua): fix directive not applying fixes #3280 --- queries/lua/locals.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/queries/lua/locals.scm b/queries/lua/locals.scm index 1fad4a1ed..ae6a6aa6e 100644 --- a/queries/lua/locals.scm +++ b/queries/lua/locals.scm @@ -21,19 +21,19 @@ (variable_list (dot_index_expression . (_) @definition.associated (identifier) @definition.var))) -(function_declaration +((function_declaration name: (identifier) @definition.function) - (#set! definition.function.scope "parent") + (#set! definition.function.scope "parent")) -(function_declaration +((function_declaration name: (dot_index_expression . (_) @definition.associated (identifier) @definition.function)) - (#set! definition.method.scope "parent") + (#set! definition.method.scope "parent")) -(function_declaration +((function_declaration name: (method_index_expression . (_) @definition.associated (identifier) @definition.method)) - (#set! definition.method.scope "parent") + (#set! definition.method.scope "parent")) (for_generic_clause (variable_list From c27597b43687d2fbca21c70f22add6f7ffaf9d7b Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 17 Oct 2022 06:22:56 +0000 Subject: [PATCH 0006/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index e5a5f7cc3..ffa0a4660 100644 --- a/lockfile.json +++ b/lockfile.json @@ -219,7 +219,7 @@ "revision": "db7953acb0d5551f207373c81fa07a57d7b085cb" }, "meson": { - "revision": "0c48b0e1b19bef8686b1dcd74f3eefadfbdb7503" + "revision": "153d22588fb5c1eee16a165a084f9ea30f29d941" }, "ninja": { "revision": "0a95cfdc0745b6ae82f60d3a339b37f19b7b9267" @@ -378,7 +378,7 @@ "revision": "4457145e795b363f072463e697dfe2f6973c9a52" }, "vim": { - "revision": "6b4caf267391e11864fd07e14c66eef9db17b89b" + "revision": "405f9cd8534ccd583081e789321109501ffeb74c" }, "vue": { "revision": "91fe2754796cd8fba5f229505a23fa08f3546c06" From de2fa5327a566c16cdf85984f3c4fff7aafecc97 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 16 Oct 2022 15:58:50 +0200 Subject: [PATCH 0007/3265] fix(readme): update highlight instructions --- README.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3b0bda0ea..28ffd55a3 100644 --- a/README.md +++ b/README.md @@ -331,17 +331,22 @@ require'nvim-treesitter.configs'.setup { } ``` -You can add custom highlight captures with: +To customize the syntax highlighting of a capture, simply define or link a highlight group of the same name: -```vim -lua < Date: Sun, 16 Oct 2022 12:31:47 +0300 Subject: [PATCH 0008/3265] docs: document all the captures in CONTRIBUTING.md --- CONTRIBUTING.md | 259 ++++++++++++++++++++++++++---------------------- 1 file changed, 142 insertions(+), 117 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 239c3852a..074722613 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -89,150 +89,175 @@ effect on highlighting. We will work on improving highlighting in the near futur #### Misc -``` -@comment -@debug -@error for error `ERROR` nodes. -@none to disable completely the highlight -@preproc -@punctuation.delimiter for `;` `.` `,` -@punctuation.bracket for `()` or `{}` -@punctuation.special for symbols with special meaning like `{}` in string interpolation. +```scheme +@comment ; line and block comments +@error ; syntax/parser errors +@none ; completely disable the highlight +@preproc ; various preprocessor directives & shebangs +@define ; preprocessor definition directives +@operator ; symbolic operators (e.g. `+` / `*`) ``` -#### Constants +#### Punctuation +```scheme +@punctuation.delimiter ; delimiters (e.g. `;` / `.` / `,`) +@punctuation.bracket ; brackets (e.g. `()` / `{}` / `[]`) +@punctuation.special ; special symbols (e.g. `{}` in string interpolation) ``` -@constant -@constant.builtin -@constant.macro -@string -@string.regex -@string.escape -@string.special -@character -@character.special -@number -@boolean -@float + +#### Literals + +```scheme +@string ; string literals +@string.regex ; regular expressions +@string.escape ; escape sequences +@string.special ; other special strings (e.g. dates) + +@character ; character literals +@character.special ; special characters (e.g. wildcards) + +@boolean ; boolean literals +@number ; numeric literals +@float ; floating-point number literals ``` #### Functions -``` -@function -@function.builtin -@function.call -@function.macro -@parameter +```scheme +@function ; function definitions +@function.builtin ; built-in functions +@function.call ; function calls +@function.macro ; preprocessor macros -@method -@method.call -@field -@property +@method ; method definitions +@method.call ; method calls -@constructor +@constructor ; constructor calls and definitions +@parameter ; parameters of a function ``` #### Keywords -``` -@conditional (e.g. `if`, `else`) -@repeat (e.g. `for`, `while`) -@label for C/Lua-like labels -@keyword -@keyword.function (keyword to define a function, e.g. `func` in Go, `def` in Python) -@keyword.operator (for operators that are English words, e.g. `and`, `or`) -@keyword.return -@operator (for symbolic operators, e.g. `+`, `*`) -@exception (e.g. `throw`, `catch`) -@include keywords for including modules (e.g. import/from in Python) -@storageclass +```scheme +@keyword ; various keywords +@keyword.function ; keywords that define a function (e.g. `func` in Go, `def` in Python) +@keyword.operator ; operators that are English words (e.g. `and` / `or`) +@keyword.return ; keywords like `return` and `yield` -@type -@type.builtin -@type.definition -@type.qualifier -@namespace for identifiers referring to namespaces -@symbol for identifiers referring to symbols -@attribute for e.g. Python decorators +@conditional ; keywords related to conditionals (e.g. `if` / `else`) +@repeat ; keywords related to loops (e.g. `for` / `while`) +@debug ; keywords related to debugging +@label ; GOTO and other labels (e.g. `label:` in C) +@include ; keywords for including modules (e.g. `import` / `from` in Python) +@exception ; keywords related to exceptions (e.g. `throw` / `catch`) ``` -@conceal followed by `(#set! conceal "")` for captures that are not used for highlights but only for concealing. +#### Types -#### Variables +```scheme +@type ; type or class definitions and annotations +@type.builtin ; built-in types +@type.definition ; type definitions (e.g. `typedef` in C) +@type.qualifier ; type qualifiers (e.g. `const`) +@storageclass ; visibility/life-time/etc. modifiers (e.g. `static`) +@attribute ; attribute annotations (e.g. Python decorators) +@field ; object and struct fields +@property ; similar to `@field` ``` -@variable -@variable.builtin -@variable.global + +#### Identifiers + +```scheme +@variable ; various variable names +@variable.builtin ; built-in variable names (e.g. `this`) + +@constant ; constant identifiers +@constant.builtin ; built-in constant values +@constant.macro ; constants defined by the preprocessor + +@namespace ; modules or namespaces +@symbol ; symbols or atoms ``` #### Text Mainly for markup languages. -``` -@text -@text.strong -@text.emphasis -@text.underline -@text.strike -@text.title -@text.literal -@text.uri -@text.math (e.g. for LaTeX math environments) -@text.environment (e.g. for text environments of markup languages) -@text.environment.name (e.g. for the name/the string indicating the type of text environment) -@text.reference (for footnotes, text references, citations) +```scheme +@text ; non-structured text +@text.strong ; bold text +@text.emphasis ; text with emphasis +@text.underline ; underlined text +@text.strike ; strikethrough text +@text.title ; text that is part of a title +@text.literal ; literal or verbatim text +@text.uri ; URIs (e.g. hyperlinks) +@text.math ; math environments (e.g. `$ ... $` in LaTeX) +@text.environment ; text environments of markup languages +@text.environment.name ; text indicating the type of an environment +@text.reference ; text references, footnotes, citations, etc. -@text.note -@text.warning -@text.danger - -@todo +@text.todo ; todo notes +@text.note ; info notes +@text.warning ; warning notes +@text.danger ; danger/error notes ``` #### Tags -Used for xml-like tags +Used for XML-like tags. -``` -@tag -@tag.attribute -@tag.delimiter +```scheme +@tag ; XML tag names +@tag.attribute ; XML tag attributes +@tag.delimiter ; XML tag delimiters ``` #### Conceal -@conceal followed by `(#set! conceal "")` for captures that are not used for highlights but only for concealing. + +```scheme +@conceal ; for captures that are only used for concealing +``` + +`@conceal` must be followed by `(#set! conceal "")`. #### Spell -@spell for defining regions to be spellchecked. +```scheme +@spell ; for defining regions to be spellchecked +``` + +#### Non-standard + +These captures are used by some languages but don't have any default highlights. +They fall back to the parent capture if they are not manually defined. + +```scheme +@variable.global +``` ### Locals -``` -@definition for various definitions -@definition.constant -@definition.function -@definition.method -@definition.var -@definition.parameter -@definition.macro -@definition.type -@definition.field -@definition.enum -@definition.namespace for modules or C++ namespaces -@definition.import for imported names +```scheme +@definition ; various definitions +@definition.constant ; constants +@definition.function ; functions +@definition.method ; methods +@definition.var ; variables +@definition.parameter ; parameters +@definition.macro ; preprocessor macros +@definition.type ; types or classes +@definition.field ; fields or properties +@definition.enum ; enumerations +@definition.namespace ; modules or namespaces +@definition.import ; imported names +@definition.associated ; the associated type of a variable -@definition.associated to determine the type of a variable -@definition.doc for documentation adjacent to a definition. E.g. - -@scope -@reference -@constructor +@scope ; scope block +@reference ; identifier reference ``` @@ -266,8 +291,8 @@ Possible scope values are: You can define folds for a given language by adding a `folds.scm` query : -``` -@fold +```scheme +@fold ; fold this node ``` If the `fold.scm` query is not present, this will fallback to the `@scope` captures in the `locals` @@ -281,25 +306,25 @@ You can directly use the name of the language that you want to inject (e.g. `@ht If you want to dynamically detect the language (e.g. for Markdown blocks) use the `@language` to capture the node describing the language and `@content` to describe the injection region. -``` -@{language} ; e.g. @html to describe a html region +```scheme +@{lang} ; e.g. @html to describe a html region -@language ; dynamic detection of the injection language (i.e. the text of the captured node describes the language). -@content ; region for the dynamically detected language. -@combined ; This will combine all matches of a pattern as one single block of content. +@language ; dynamic detection of the injection language (i.e. the text of the captured node describes the language) +@content ; region for the dynamically detected language +@combined ; combine all matches of a pattern as one single block of content ``` ### Indents -``` -@indent ; Indent children when matching this node -@indent_end ; Marks the end of indented block -@aligned_indent ; Behaves like python aligned/hanging indent -@dedent ; Dedent children when matching this node -@branch ; Dedent itself when matching this node -@ignore ; Do not indent in this node -@auto ; Behaves like 'autoindent' buffer option -@zero_indent ; Sets this node at position 0 (no indent) +```scheme +@indent ; indent children when matching this node +@indent_end ; marks the end of indented block +@aligned_indent ; behaves like python aligned/hanging indent +@dedent ; dedent children when matching this node +@branch ; dedent itself when matching this node +@ignore ; do not indent in this node +@auto ; behaves like 'autoindent' buffer option +@zero_indent ; sets this node at position 0 (no indent) ``` [Zulip]: https://nvim-treesitter.zulipchat.com From 5653fa73ee0716b59d030b996238745d4c34924b Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 17 Oct 2022 10:13:15 +0000 Subject: [PATCH 0009/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index ffa0a4660..eb1805d05 100644 --- a/lockfile.json +++ b/lockfile.json @@ -210,10 +210,10 @@ "revision": "a4b9187417d6be349ee5fd4b6e77b4172c6827dd" }, "markdown": { - "revision": "439cbe676a9b0371d661115c3caab7ca01d945b2" + "revision": "d33d2bf6823dd128dac6d363df0e46f2fb5c0635" }, "markdown_inline": { - "revision": "439cbe676a9b0371d661115c3caab7ca01d945b2" + "revision": "d33d2bf6823dd128dac6d363df0e46f2fb5c0635" }, "menhir": { "revision": "db7953acb0d5551f207373c81fa07a57d7b085cb" From 8f927a4d50716e534c5845e835625962adf878e1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 17 Oct 2022 11:59:30 +0000 Subject: [PATCH 0010/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index eb1805d05..0d100041d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -144,7 +144,7 @@ "revision": "881f1c805f51485a26ecd7865d15c9ef8d606a78" }, "help": { - "revision": "22d5dcd0198074d16c4744049c2646cfe4618fc3" + "revision": "eb90ebcaeb4e5acc08e06a356e72fd2bdf9c4724" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" From 63d7e456ea8d5f272e3b032d024f8bcfcc650ecb Mon Sep 17 00:00:00 2001 From: Munif Tanjim Date: Mon, 17 Oct 2022 17:55:26 +0600 Subject: [PATCH 0011/3265] highlights(ecma): add pair_pattern punctuation.delimiter --- queries/ecma/highlights.scm | 1 + tests/query/highlights/ecma/test.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/queries/ecma/highlights.scm b/queries/ecma/highlights.scm index e2b25aafd..aa490b33c 100644 --- a/queries/ecma/highlights.scm +++ b/queries/ecma/highlights.scm @@ -138,6 +138,7 @@ "," @punctuation.delimiter (pair ":" @punctuation.delimiter) +(pair_pattern ":" @punctuation.delimiter) [ "--" diff --git a/tests/query/highlights/ecma/test.ts b/tests/query/highlights/ecma/test.ts index 03081fb2b..d35cf8272 100644 --- a/tests/query/highlights/ecma/test.ts +++ b/tests/query/highlights/ecma/test.ts @@ -23,3 +23,10 @@ class H { // ^ method.call } } + +function doSomething(options) { + const { + enable: on, + // ^ punctuation.delimiter + } = options +} From 8fa3ec03988544232f5a2ca91fefacb4844d63ef Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 17 Oct 2022 21:38:36 +0000 Subject: [PATCH 0012/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 0d100041d..1ed39f55a 100644 --- a/lockfile.json +++ b/lockfile.json @@ -69,7 +69,7 @@ "revision": "b20eaa75565243c50be5e35e253d8beb58f45d56" }, "elm": { - "revision": "cce0e5938e7779f86cf8bf445eadf7df4b88229d" + "revision": "28bb193640d916dfaf947912c1413cebb0484841" }, "elvish": { "revision": "f32711e31e987fd5c2c002f3daba02f25c68672f" From 9279bfea5ea7d40a6671cfb415a63c2298545d71 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 18 Oct 2022 07:12:54 +0000 Subject: [PATCH 0013/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 1ed39f55a..cfc7491b4 100644 --- a/lockfile.json +++ b/lockfile.json @@ -141,7 +141,7 @@ "revision": "45ce22c16ec924e34517cf785e23c07952e45893" }, "heex": { - "revision": "881f1c805f51485a26ecd7865d15c9ef8d606a78" + "revision": "70ba8245a486e94d06234f42f26af7165cba74f7" }, "help": { "revision": "eb90ebcaeb4e5acc08e06a356e72fd2bdf9c4724" @@ -369,7 +369,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "b417a1936646968ec8f0ef17919458aa9692b36f" + "revision": "7af983f18541a26485a7016d5703eeb84e62fb25" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From e06da64459e97ccbbf08a5a9e86d21a3663592be Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 18 Oct 2022 17:00:58 +0000 Subject: [PATCH 0014/3265] Update lockfile.json --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index cfc7491b4..f9f8f774a 100644 --- a/lockfile.json +++ b/lockfile.json @@ -141,10 +141,10 @@ "revision": "45ce22c16ec924e34517cf785e23c07952e45893" }, "heex": { - "revision": "70ba8245a486e94d06234f42f26af7165cba74f7" + "revision": "52b804b1cb2d57e58d90090326d3ef9bd19cf16c" }, "help": { - "revision": "eb90ebcaeb4e5acc08e06a356e72fd2bdf9c4724" + "revision": "30cd470796a4320be8f8d5676b0181327033eb4a" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" @@ -369,7 +369,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "7af983f18541a26485a7016d5703eeb84e62fb25" + "revision": "8709feb6f7750095b13e063a6f2ed477724092bc" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From b9bcbf8d73b5a6c3e04922936b5fc500b436d4f5 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Tue, 18 Oct 2022 22:52:00 +0100 Subject: [PATCH 0015/3265] fix(modules): allow non-registered langs to use modules This change allows for languages not managed by nvim-treesitter to use Nvim-treesitter modules like folding and indent. --- lua/nvim-treesitter/configs.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 04099d32a..87bb8d1a1 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -344,7 +344,7 @@ M.commands = { -- @param lang: the language of the buffer (string) -- @param bufnr: the bufnr (number) function M.is_enabled(mod, lang, bufnr) - if not parsers.list[lang] or not parsers.has_parser(lang) then + if not parsers.has_parser(lang) then return false end From 1e4b23c26678bd36e3da638183996eaa30e7fba8 Mon Sep 17 00:00:00 2001 From: gbprod Date: Tue, 18 Oct 2022 13:15:07 +0200 Subject: [PATCH 0016/3265] feat(diff): add diff parser This commit introduce diff parser. --- CONTRIBUTING.md | 3 +++ README.md | 1 + lua/nvim-treesitter/parsers.lua | 10 ++++++++++ queries/diff/highlights.scm | 6 ++++++ 4 files changed, 20 insertions(+) create mode 100644 queries/diff/highlights.scm diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 074722613..ea3cbc408 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -203,6 +203,9 @@ Mainly for markup languages. @text.note ; info notes @text.warning ; warning notes @text.danger ; danger/error notes + +@text.diff.add ; added text (for diff files) +@text.diff.delete ; deleted text (for diff files) ``` #### Tags diff --git a/README.md b/README.md index 28ffd55a3..6d95d9333 100644 --- a/README.md +++ b/README.md @@ -191,6 +191,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [d](https://github.com/CyberShadow/tree-sitter-d) (experimental, maintained by @nawordar) - [x] [dart](https://github.com/UserNobody14/tree-sitter-dart) (maintained by @Akin909) - [x] [devicetree](https://github.com/joelspadin/tree-sitter-devicetree) (maintained by @jedrzejboczar) +- [x] [diff](https://github.com/the-mikedavis/tree-sitter-diff) (maintained by @gbprod) - [x] [dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) (maintained by @camdencheek) - [x] [dot](https://github.com/rydesun/tree-sitter-dot) (maintained by @rydesun) - [x] [eex](https://github.com/connorlay/tree-sitter-eex) (maintained by @connorlay) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 0f2bdffce..85485aa55 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1238,6 +1238,16 @@ list.twig = { filetype = "twig", } +list.diff = { + install_info = { + url = "https://github.com/the-mikedavis/tree-sitter-diff", + branch = "main", + files = { "src/parser.c" }, + }, + maintainers = { "@gbprod" }, + filetype = "gitdiff", +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/diff/highlights.scm b/queries/diff/highlights.scm new file mode 100644 index 000000000..4b9cbad60 --- /dev/null +++ b/queries/diff/highlights.scm @@ -0,0 +1,6 @@ +[(addition) (new_file)] @text.diff.add +[(deletion) (old_file)] @text.diff.delete + +(commit) @constant +(location) @attribute +(command) @function From 470b872d5747819623c7b3a98eb320dc3cab95b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Lafuente?= Date: Thu, 20 Oct 2022 01:33:31 +0200 Subject: [PATCH 0017/3265] parsers: add nickel parser (#3506) * parsers: add nickel parser * Update lua/nvim-treesitter/parsers.lua Co-authored-by: Christian Clason * Update queries/nickel/highlights.scm Co-authored-by: Christian Clason * fix queries * Cleanup (based on @theHamsta review) Co-authored-by: Christian Clason --- lua/nvim-treesitter/parsers.lua | 8 +++++ queries/nickel/highlights.scm | 61 +++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 queries/nickel/highlights.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 85485aa55..cb72b911b 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1211,6 +1211,14 @@ list.gitignore = { maintainers = { "@theHamsta" }, } +list.nickel = { + install_info = { + url = "https://github.com/nickel-lang/tree-sitter-nickel", + files = { "src/parser.c", "src/scanner.cc" }, + branch = "main", + }, +} + list.gitattributes = { install_info = { url = "https://github.com/ObserverOfTime/tree-sitter-gitattributes", diff --git a/queries/nickel/highlights.scm b/queries/nickel/highlights.scm new file mode 100644 index 000000000..53f4c134f --- /dev/null +++ b/queries/nickel/highlights.scm @@ -0,0 +1,61 @@ +(comment) @comment @spell + +[ + "forall" + "in" + "let" + "default" + "doc" + "rec" +] @keyword + +"fun" @keyword.function + +"import" @include + +[ "if" "then" "else" ] @conditional +"switch" @conditional + +(types) @type +"Array" @type.builtin + +; BUILTIN Constants +(bool) @constant.builtin +"null" @constant.builtin + +(num_literal) @number + +(infix_op) @operator + +(type_atom) @type +(enum_tag) @variable + +(chunk_literal_single) @string +(chunk_literal_multi) @string + +(str_esc_char) @string.escape + +[ + "{" "}" + "(" ")" + "[|" "|]" +] @punctuation.bracket + +(multstr_start) @punctuation.bracket +(multstr_end) @punctuation.bracket +(interpolation_start) @punctuation.bracket +(interpolation_end) @punctuation.bracket + +(record_field) @field + +(builtin) @function.builtin + +(fun_expr pats: + (pattern id: + (ident) @parameter + ) +) + +(applicative t1: + (applicative (record_operand) @function) +) From d572bbbaa33b86b9aea5e455220288d3abcb391b Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 20 Oct 2022 07:04:47 +0000 Subject: [PATCH 0018/3265] Update lockfile.json --- lockfile.json | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lockfile.json b/lockfile.json index f9f8f774a..941bfdafd 100644 --- a/lockfile.json +++ b/lockfile.json @@ -39,13 +39,13 @@ "revision": "5e113412aadb78955c27010daa4dbe1d202013cf" }, "cpp": { - "revision": "d5e90fba898f320db48d81ddedd78d52c67c1fed" + "revision": "5ead1e26c6ab71919db0f1880c46a278a93bc5ea" }, "css": { "revision": "769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" }, "cuda": { - "revision": "80662d2d21c1b890f69d9cfa09c94d86d5fee8a4" + "revision": "7f1a79e612160aa02be87f1a24469ae3655fe818" }, "d": { "revision": "c2fbf21bd3aa45495fe13247e040ad5815250032" @@ -56,6 +56,9 @@ "devicetree": { "revision": "ea30a05d0f0446a96d8b096ad11828ad4f8ad849" }, + "diff": { + "revision": "330eb648bbc257b4e91621e82a85372be7dde27a" + }, "dockerfile": { "revision": "25c71d6a24cdba8f0c74ef40d4d2d93defd7e196" }, @@ -117,7 +120,7 @@ "revision": "a743ada24fa17da9acc5665133f07d56e03530be" }, "go": { - "revision": "13418148805c8cb50abbdfae779a59bde8fec901" + "revision": "05900faa3cdb5d2d8c8bd5e77ee698487e0a8611" }, "godot_resource": { "revision": "b6ef0768711086a86b3297056f9ffb5cc1d77b4a" @@ -144,7 +147,7 @@ "revision": "52b804b1cb2d57e58d90090326d3ef9bd19cf16c" }, "help": { - "revision": "30cd470796a4320be8f8d5676b0181327033eb4a" + "revision": "6ffd5e3c84ae4b98e1d531afd3055338fa2b390d" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" @@ -221,6 +224,9 @@ "meson": { "revision": "153d22588fb5c1eee16a165a084f9ea30f29d941" }, + "nickel": { + "revision": "9d83db400b6c11260b9106f131f93ddda8131933" + }, "ninja": { "revision": "0a95cfdc0745b6ae82f60d3a339b37f19b7b9267" }, @@ -324,7 +330,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "f5ed7f1cbbdb4e4cd0ce9535c5aa3b06f9e3bee7" + "revision": "2743c7b5e710e6854d4e8c14c302548b436e2a1f" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" @@ -369,7 +375,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "8709feb6f7750095b13e063a6f2ed477724092bc" + "revision": "ffd57f15d22667f3cf5cc94c3e3efb9d57e3438d" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From d49495fe72cbcedc944eece3611005dc0fa6acda Mon Sep 17 00:00:00 2001 From: Github Actions Date: Thu, 20 Oct 2022 07:17:39 +0000 Subject: [PATCH 0019/3265] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d95d9333..15c1296c2 100644 --- a/README.md +++ b/README.md @@ -246,6 +246,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [markdown_inline](https://github.com/MDeiml/tree-sitter-markdown) (experimental, maintained by @MDeiml) - [x] [menhir](https://github.com/Kerl13/tree-sitter-menhir) (maintained by @Kerl13) - [x] [meson](https://github.com/Decodetalkers/tree-sitter-meson) (maintained by @Decodetalkers) +- [ ] [nickel](https://github.com/nickel-lang/tree-sitter-nickel) - [x] [ninja](https://github.com/alemuller/tree-sitter-ninja) (maintained by @alemuller) - [x] [nix](https://github.com/cstrahan/tree-sitter-nix) (maintained by @leo60228) - [x] [norg](https://github.com/nvim-neorg/tree-sitter-norg) (maintained by @JoeyGrajciar, @vhyrro, @mrossinek) From 57e02f7b978df0586045fe2cb543273afe67a03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Lafuente?= Date: Thu, 20 Oct 2022 20:01:08 +0200 Subject: [PATCH 0020/3265] nickel: use @boolean --- queries/nickel/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/nickel/highlights.scm b/queries/nickel/highlights.scm index 53f4c134f..2f3edf8ec 100644 --- a/queries/nickel/highlights.scm +++ b/queries/nickel/highlights.scm @@ -20,7 +20,7 @@ "Array" @type.builtin ; BUILTIN Constants -(bool) @constant.builtin +(bool) @boolean "null" @constant.builtin (num_literal) @number From d8971ae387f5f2bbff02887286b311762810994a Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 20 Oct 2022 19:20:10 +0000 Subject: [PATCH 0021/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 941bfdafd..6019f96de 100644 --- a/lockfile.json +++ b/lockfile.json @@ -84,7 +84,7 @@ "revision": "1a538da253d73f896b9f6c0c7d79cda58791ac5c" }, "erlang": { - "revision": "fab680273af1a8f5cc0c3a0c62cbf5b1bea71f39" + "revision": "3a9c769444f08bbccce03845270efac0c641c5e7" }, "fennel": { "revision": "517195970428aacca60891b050aa53eabf4ba78d" @@ -384,7 +384,7 @@ "revision": "4457145e795b363f072463e697dfe2f6973c9a52" }, "vim": { - "revision": "405f9cd8534ccd583081e789321109501ffeb74c" + "revision": "9736af8ef0a7f20b4c45f6474342c8f5b473e2cc" }, "vue": { "revision": "91fe2754796cd8fba5f229505a23fa08f3546c06" From c4c358e9badb181f4a05a4d8fd0c986a1cf5001b Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 20 Oct 2022 19:30:50 +0000 Subject: [PATCH 0022/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 6019f96de..6bbef5173 100644 --- a/lockfile.json +++ b/lockfile.json @@ -375,7 +375,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "ffd57f15d22667f3cf5cc94c3e3efb9d57e3438d" + "revision": "a20372ce06f09db208e801d3d8ac19a275efdead" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From 3eb6577a3b58e4d0e76057ad1309255678739b61 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 22 Oct 2022 06:56:41 +0000 Subject: [PATCH 0023/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 6bbef5173..7399d4a69 100644 --- a/lockfile.json +++ b/lockfile.json @@ -246,7 +246,7 @@ "revision": "ac1d5957e719d49bd6acd27439b79843e4daf8ed" }, "org": { - "revision": "eb1e080361ad885e3885d1037d9b57f81b579de8" + "revision": "081179c52b3e8175af62b9b91dc099d010c38770" }, "pascal": { "revision": "2fd40f477d3e2794af152618ccfac8d92eb72a66" From 2d7249409dd3f6e4a4642e6b435a2d93c08c8b36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=AE=E3=83=A3=E3=83=A9?= Date: Sun, 23 Oct 2022 18:57:56 +0900 Subject: [PATCH 0024/3265] fix(bash): Rename ansii_c_string to ansi_c_string. (#3702) --- lockfile.json | 2 +- queries/bash/highlights.scm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 7399d4a69..139800bfe 100644 --- a/lockfile.json +++ b/lockfile.json @@ -6,7 +6,7 @@ "revision": "947e93089e60c66e681eba22283f4037841451e7" }, "bash": { - "revision": "275effdfc0edce774acf7d481f9ea195c6c403cd" + "revision": "385a8e4d383f6c045965d1de9c514932319dea4b" }, "beancount": { "revision": "4cbd1f09cd07c1f1fabf867c2cf354f9da53cc4c" diff --git a/queries/bash/highlights.scm b/queries/bash/highlights.scm index c0a175267..d1cdb659d 100644 --- a/queries/bash/highlights.scm +++ b/queries/bash/highlights.scm @@ -43,7 +43,7 @@ [ (string) (raw_string) - (ansii_c_string) + (ansi_c_string) (heredoc_body) ] @string @spell From 682fa459173208997092adf872baa66a7f04692d Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 24 Oct 2022 06:43:56 +0000 Subject: [PATCH 0025/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 139800bfe..10cff94a9 100644 --- a/lockfile.json +++ b/lockfile.json @@ -147,7 +147,7 @@ "revision": "52b804b1cb2d57e58d90090326d3ef9bd19cf16c" }, "help": { - "revision": "6ffd5e3c84ae4b98e1d531afd3055338fa2b390d" + "revision": "df0d90ae3d0d4c59342ed7eb732f61d8ee6c6fb3" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" @@ -342,7 +342,7 @@ "revision": "52e122ae68b316d3aa960a0a422d3645ba717f42" }, "swift": { - "revision": "bd2be098a6fd617f97b84ca2bf29910a4d3e4d34" + "revision": "c88b5d73f193f5b0762b1a5f0299a275e6a728fb" }, "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" From 7a6c4d93a3baf0382b6e797d3739286946ec3991 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 24 Oct 2022 16:47:06 +0000 Subject: [PATCH 0026/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 10cff94a9..a0021558f 100644 --- a/lockfile.json +++ b/lockfile.json @@ -6,7 +6,7 @@ "revision": "947e93089e60c66e681eba22283f4037841451e7" }, "bash": { - "revision": "385a8e4d383f6c045965d1de9c514932319dea4b" + "revision": "f1a86d3cc5aeeb67e0e52442e893af7f813025b4" }, "beancount": { "revision": "4cbd1f09cd07c1f1fabf867c2cf354f9da53cc4c" From c945b341792f66e61b804a7503c90caa5451b589 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli Date: Sun, 23 Oct 2022 14:26:48 -0400 Subject: [PATCH 0027/3265] Update ecma injections to support recent additions to tree-sitter-javascript/typescript --- queries/ecma/injections.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/queries/ecma/injections.scm b/queries/ecma/injections.scm index 8fc0937d7..6bd5da862 100644 --- a/queries/ecma/injections.scm +++ b/queries/ecma/injections.scm @@ -20,6 +20,8 @@ arguments: ((template_string) @glimmer (#offset! @glimmer 0 1 0 -1))) +((glimmer_template) @glimmer) + ; styled.div`` (call_expression function: (member_expression From 2342456f5f07affcfcce62fcf49413a484ff175b Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 24 Oct 2022 21:28:27 +0000 Subject: [PATCH 0028/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index a0021558f..21200d9ac 100644 --- a/lockfile.json +++ b/lockfile.json @@ -273,7 +273,7 @@ "revision": "63e214905970e75f065688b1e8aa90823c3aacdc" }, "python": { - "revision": "de221eccf9a221f5b85474a553474a69b4b5784d" + "revision": "b14614e2144b8f9ee54deed5a24f3c6f51f9ffa8" }, "ql": { "revision": "bd087020f0d8c183080ca615d38de0ec827aeeaf" From 0eff7beaf8cf7e631a7e8edc0d363e0b0a8f6f1d Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 25 Oct 2022 07:17:04 +0000 Subject: [PATCH 0029/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 21200d9ac..e2b6b2791 100644 --- a/lockfile.json +++ b/lockfile.json @@ -375,7 +375,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "a20372ce06f09db208e801d3d8ac19a275efdead" + "revision": "52f1d3c4e4ac65da82b524952a2d732e8262beea" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From c9241287719ccd38741850765649a25b09bdb4c2 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 24 Oct 2022 23:24:02 +0200 Subject: [PATCH 0030/3265] highlights(python): add "except*" Added in https://github.com/tree-sitter/tree-sitter-python/pull/176 About the feature https://realpython.com/python311-exception-groups/#exception-groups-and-except-in-python-311 --- queries/python/highlights.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/python/highlights.scm b/queries/python/highlights.scm index 94fbe50b8..9649bf380 100644 --- a/queries/python/highlights.scm +++ b/queries/python/highlights.scm @@ -246,6 +246,7 @@ [ "try" "except" + "except*" "raise" "finally" ] @exception From 3ad2aa578a4cf6947d38dab9bcc50d7d6041b796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robin=20Bj=C3=B6rklin?= Date: Mon, 24 Oct 2022 22:30:35 -0700 Subject: [PATCH 0031/3265] fix(ocaml): change query order for Variables By moving the Variables query higher it gives the @variable capture group a lower precedence when highlighting. This makes it possible to distinguish between @function and @variable. --- queries/ocaml/highlights.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/queries/ocaml/highlights.scm b/queries/ocaml/highlights.scm index 9a956e607..e66729314 100644 --- a/queries/ocaml/highlights.scm +++ b/queries/ocaml/highlights.scm @@ -18,6 +18,13 @@ [(constructor_name) (tag)] @constructor +; Variables +;---------- + +[(value_name) (type_variable)] @variable + +(value_pattern) @parameter + ; Functions ;---------- @@ -35,13 +42,6 @@ (method_name) @method -; Variables -;---------- - -[(value_name) (type_variable)] @variable - -(value_pattern) @parameter - ; Application ;------------ From f34669b2d3547c71cb2ce114f7d25dffc2cb149c Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 25 Oct 2022 17:03:11 +0000 Subject: [PATCH 0032/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index e2b6b2791..458fd2448 100644 --- a/lockfile.json +++ b/lockfile.json @@ -306,7 +306,7 @@ "revision": "25e6328872ac3a764ba8b926aea12719741103f1" }, "ruby": { - "revision": "30f9807df1f5015be5fade0b0e54948d2c5f8310" + "revision": "252ca18be76b0918fb6b34c302292b6931876c25" }, "rust": { "revision": "47b061c1e1ba3a7e9c2f450363a50e87de3f7c61" From 4ecc6f8ce12c68c56d45c8bda5e1ed0bd46b7052 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 26 Oct 2022 06:53:27 +0000 Subject: [PATCH 0033/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 458fd2448..dbdc1ce05 100644 --- a/lockfile.json +++ b/lockfile.json @@ -195,7 +195,7 @@ "revision": "7744b56f03ac1e5643fad23c9dd90837fe97291e" }, "latex": { - "revision": "2d5f17ebd12650bee06d4fb4333a205b0699ac40" + "revision": "da49fb3cc373424d2821650007884cb8760c5ca5" }, "ledger": { "revision": "47b8971448ce5e9abac865f450c1b14fb3b6eee9" From 2f5be4585ef18ac720810c08f678b4d55e2d5658 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 26 Oct 2022 08:59:35 +0000 Subject: [PATCH 0034/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index dbdc1ce05..0b9a26868 100644 --- a/lockfile.json +++ b/lockfile.json @@ -195,7 +195,7 @@ "revision": "7744b56f03ac1e5643fad23c9dd90837fe97291e" }, "latex": { - "revision": "da49fb3cc373424d2821650007884cb8760c5ca5" + "revision": "8c75e93cd08ccb7ce1ccab22c1fbd6360e3bcea6" }, "ledger": { "revision": "47b8971448ce5e9abac865f450c1b14fb3b6eee9" @@ -375,7 +375,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "52f1d3c4e4ac65da82b524952a2d732e8262beea" + "revision": "6736a67c209acc35db5949370268849ef0e43fe7" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From c155b6bb308269ca4a376777a8621261efbd17cb Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 27 Oct 2022 06:50:01 +0000 Subject: [PATCH 0035/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 0b9a26868..d22728564 100644 --- a/lockfile.json +++ b/lockfile.json @@ -147,7 +147,7 @@ "revision": "52b804b1cb2d57e58d90090326d3ef9bd19cf16c" }, "help": { - "revision": "df0d90ae3d0d4c59342ed7eb732f61d8ee6c6fb3" + "revision": "8df3266b423d24c9ac3f3b4b9928e65eb1e5e741" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" From a52edf5dc9fecd31036f732792a0457e7571e6b4 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 28 Oct 2022 06:49:19 +0000 Subject: [PATCH 0036/3265] Update lockfile.json --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index d22728564..34dde8b90 100644 --- a/lockfile.json +++ b/lockfile.json @@ -213,10 +213,10 @@ "revision": "a4b9187417d6be349ee5fd4b6e77b4172c6827dd" }, "markdown": { - "revision": "d33d2bf6823dd128dac6d363df0e46f2fb5c0635" + "revision": "272e080bca0efd19a06a7f4252d746417224959e" }, "markdown_inline": { - "revision": "d33d2bf6823dd128dac6d363df0e46f2fb5c0635" + "revision": "272e080bca0efd19a06a7f4252d746417224959e" }, "menhir": { "revision": "db7953acb0d5551f207373c81fa07a57d7b085cb" @@ -375,7 +375,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "6736a67c209acc35db5949370268849ef0e43fe7" + "revision": "d0e7c755193c762eb1521e3b4740b22929cc91cc" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From 053f88f55622c22cfd5cf8a15ab684a3d484cd8f Mon Sep 17 00:00:00 2001 From: gbprod Date: Tue, 18 Oct 2022 10:33:57 +0200 Subject: [PATCH 0037/3265] feat(git_rebase): add git_rebase parser --- README.md | 1 + lua/nvim-treesitter/parsers.lua | 10 ++++++++++ queries/git_rebase/highlights.scm | 8 ++++++++ queries/git_rebase/injections.scm | 5 +++++ 4 files changed, 24 insertions(+) create mode 100644 queries/git_rebase/highlights.scm create mode 100644 queries/git_rebase/injections.scm diff --git a/README.md b/README.md index 15c1296c2..82acbeae9 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [Godot (gdscript)](https://github.com/PrestonKnopp/tree-sitter-gdscript) (maintained by @Shatur95) - [x] [gitattributes](https://github.com/ObserverOfTime/tree-sitter-gitattributes) (maintained by @ObserverOfTime) - [x] [gitignore](https://github.com/shunsambongi/tree-sitter-gitignore) (maintained by @theHamsta) +- [x] [git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) (maintained by @gbprod) - [x] [gleam](https://github.com/J3RN/tree-sitter-gleam) (maintained by @connorlay) - [x] [Glimmer and Ember](https://github.com/alexlafroscia/tree-sitter-glimmer) (maintained by @alexlafroscia) - [x] [glsl](https://github.com/theHamsta/tree-sitter-glsl) (maintained by @theHamsta) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index cb72b911b..ee79c09d6 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1227,6 +1227,16 @@ list.gitattributes = { maintainers = { "@ObserverOfTime" }, } +list.git_rebase = { + install_info = { + url = "https://github.com/the-mikedavis/tree-sitter-git-rebase", + files = { "src/parser.c" }, + branch = "main", + }, + filetype = "gitrebase", + maintainers = { "@gbprod" }, +} + list.blueprint = { install_info = { url = "https://gitlab.com/gabmus/tree-sitter-blueprint.git", diff --git a/queries/git_rebase/highlights.scm b/queries/git_rebase/highlights.scm new file mode 100644 index 000000000..466bd2f16 --- /dev/null +++ b/queries/git_rebase/highlights.scm @@ -0,0 +1,8 @@ +((command) @keyword + (label)? @constant + (message)? @text @spell) + +(option) @operator + +(comment) @comment + diff --git a/queries/git_rebase/injections.scm b/queries/git_rebase/injections.scm new file mode 100644 index 000000000..27388618e --- /dev/null +++ b/queries/git_rebase/injections.scm @@ -0,0 +1,5 @@ +((operation + (command) @_command + (message) @bash) +(#any-of? @_command "exec" "x")) + From 0e1b73b41507a46d414de97e18a3acbd915dab82 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 28 Oct 2022 08:37:20 +0000 Subject: [PATCH 0038/3265] Update lockfile.json --- lockfile.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 34dde8b90..d53211c2f 100644 --- a/lockfile.json +++ b/lockfile.json @@ -104,6 +104,9 @@ "gdscript": { "revision": "2a6abdaa47fcb91397e09a97c7433fd995ea46c6" }, + "git_rebase": { + "revision": "127f5b56c1ad3e8a449a7d6e0c7412ead7f7724c" + }, "gitattributes": { "revision": "cee9f8865694b29bb9e85e0b90805f92ad3fc47e" }, @@ -369,7 +372,7 @@ "revision": "085437f5cb117703b7f520dd92161140a684f092" }, "twig": { - "revision": "807b293fec3fead64f54c64fdf6fb05516c032b9" + "revision": "6a01f20e73038300d205d370212c361949be3035" }, "typescript": { "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" From 3cab7b4346840dfe62cbcfeb90c6ed398e7a2ece Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 28 Oct 2022 09:19:48 +0000 Subject: [PATCH 0039/3265] Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 82acbeae9..505caa19e 100644 --- a/README.md +++ b/README.md @@ -206,9 +206,9 @@ We are looking for maintainers to add more parsers and to write query files for - [ ] [fortran](https://github.com/stadelmanma/tree-sitter-fortran) - [x] [fusion](https://gitlab.com/jirgn/tree-sitter-fusion.git) (maintained by @jirgn) - [x] [Godot (gdscript)](https://github.com/PrestonKnopp/tree-sitter-gdscript) (maintained by @Shatur95) +- [x] [git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) (maintained by @gbprod) - [x] [gitattributes](https://github.com/ObserverOfTime/tree-sitter-gitattributes) (maintained by @ObserverOfTime) - [x] [gitignore](https://github.com/shunsambongi/tree-sitter-gitignore) (maintained by @theHamsta) -- [x] [git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) (maintained by @gbprod) - [x] [gleam](https://github.com/J3RN/tree-sitter-gleam) (maintained by @connorlay) - [x] [Glimmer and Ember](https://github.com/alexlafroscia/tree-sitter-glimmer) (maintained by @alexlafroscia) - [x] [glsl](https://github.com/theHamsta/tree-sitter-glsl) (maintained by @theHamsta) From 287ffdccc1dd7ed017d844a4fad069fd3340fa94 Mon Sep 17 00:00:00 2001 From: gbprod Date: Fri, 28 Oct 2022 14:22:16 +0200 Subject: [PATCH 0040/3265] Add regex injections for php (#3592) --- queries/php/injections.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/queries/php/injections.scm b/queries/php/injections.scm index 603aa8b01..ee29c4851 100644 --- a/queries/php/injections.scm +++ b/queries/php/injections.scm @@ -2,6 +2,13 @@ (comment) @phpdoc +;; regex + +((function_call_expression + function: (_) @_preg_func_identifier + arguments: (arguments . (argument (_ (string_value) @regex)))) + (#lua-match? @_preg_func_identifier "^preg_")) + ;; bash ((function_call_expression @@ -11,4 +18,3 @@ "escapeshellcmd" "exec" "passthru" "proc_open" "shell_exec" "system")) ((expression_statement (shell_command_expression (string_value) @bash))) - From 9ada5f70f98d51e9e3e76018e783b39fd1cd28f7 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 29 Oct 2022 13:00:07 +0200 Subject: [PATCH 0041/3265] feat: markdown table highlights and inline --- queries/markdown/highlights.scm | 8 ++++++++ queries/markdown/injections.scm | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/queries/markdown/highlights.scm b/queries/markdown/highlights.scm index 914c34a44..70c35b395 100644 --- a/queries/markdown/highlights.scm +++ b/queries/markdown/highlights.scm @@ -19,6 +19,14 @@ (fenced_code_block) ] @text.literal +(pipe_table_header (pipe_table_cell) @text.title) +[ + (pipe_table_row) + (pipe_table_delimiter_row) + (pipe_table_header) +] "|" @punctuation.special +(pipe_table_delimiter_cell) @punctuation.special + [ (fenced_code_block_delimiter) ] @punctuation.delimiter diff --git a/queries/markdown/injections.scm b/queries/markdown/injections.scm index 465cccef8..2310ee42f 100644 --- a/queries/markdown/injections.scm +++ b/queries/markdown/injections.scm @@ -9,4 +9,7 @@ ((minus_metadata) @yaml (#offset! @yaml 1 0 -1 0)) ((plus_metadata) @toml (#offset! @toml 1 0 -1 0)) -((inline) @markdown_inline (#exclude_children! @markdown_inline)) +([ + (inline) + (pipe_table_cell) + ] @markdown_inline (#exclude_children! @markdown_inline)) From bc7e84b75408fd19cc5d245b76bcd8916ac82af7 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 30 Oct 2022 06:46:58 +0000 Subject: [PATCH 0042/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index d53211c2f..ff75136f8 100644 --- a/lockfile.json +++ b/lockfile.json @@ -6,7 +6,7 @@ "revision": "947e93089e60c66e681eba22283f4037841451e7" }, "bash": { - "revision": "f1a86d3cc5aeeb67e0e52442e893af7f813025b4" + "revision": "77cf8a7cab8904baf1a721762e012644ac1d4c7b" }, "beancount": { "revision": "4cbd1f09cd07c1f1fabf867c2cf354f9da53cc4c" @@ -150,7 +150,7 @@ "revision": "52b804b1cb2d57e58d90090326d3ef9bd19cf16c" }, "help": { - "revision": "8df3266b423d24c9ac3f3b4b9928e65eb1e5e741" + "revision": "49cdef52ded4a886bf34bc474876b09f9270d48f" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" From a2ff4b42e1d446738bf260b245208005fb555d6d Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 29 Oct 2022 16:11:44 +0200 Subject: [PATCH 0043/3265] feat: conceal backslash escape --- queries/markdown/highlights.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/queries/markdown/highlights.scm b/queries/markdown/highlights.scm index 70c35b395..81cb5a5b1 100644 --- a/queries/markdown/highlights.scm +++ b/queries/markdown/highlights.scm @@ -20,11 +20,10 @@ ] @text.literal (pipe_table_header (pipe_table_cell) @text.title) -[ - (pipe_table_row) - (pipe_table_delimiter_row) - (pipe_table_header) -] "|" @punctuation.special + +(pipe_table_header "|" @punctuation.special) +(pipe_table_row "|" @punctuation.special) +(pipe_table_delimiter_row "|" @punctuation.special) (pipe_table_delimiter_cell) @punctuation.special [ From 1347182cee445bd0740f242edbded553ef432ba4 Mon Sep 17 00:00:00 2001 From: figsoda Date: Sun, 30 Oct 2022 15:35:07 -0400 Subject: [PATCH 0044/3265] fix(lockfile): remove typo entry --- lockfile.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index ff75136f8..20bf25ddd 100644 --- a/lockfile.json +++ b/lockfile.json @@ -77,9 +77,6 @@ "elvish": { "revision": "f32711e31e987fd5c2c002f3daba02f25c68672f" }, - "embdedded_template": { - "revision": "d21df11b0ecc6fd211dbe11278e92ef67bd17e97" - }, "embedded_template": { "revision": "1a538da253d73f896b9f6c0c7d79cda58791ac5c" }, From 4392211d77a11f3f4806c963ff904506cb649a1f Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 30 Oct 2022 22:37:44 +0000 Subject: [PATCH 0045/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 20bf25ddd..966fd1073 100644 --- a/lockfile.json +++ b/lockfile.json @@ -342,7 +342,7 @@ "revision": "52e122ae68b316d3aa960a0a422d3645ba717f42" }, "swift": { - "revision": "c88b5d73f193f5b0762b1a5f0299a275e6a728fb" + "revision": "d7808f030a44dc8768948042baa7566949785e2f" }, "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" From 0948bf22745f1d80572e2b46ed547c7c8674cca9 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Mon, 31 Oct 2022 10:52:52 +0000 Subject: [PATCH 0046/3265] feat(emmy): add emmylua annotations --- lua/nvim-treesitter/configs.lua | 207 ++++++++++-------- lua/nvim-treesitter/fold.lua | 2 + lua/nvim-treesitter/highlight.lua | 12 +- lua/nvim-treesitter/install.lua | 35 ++- lua/nvim-treesitter/parsers.lua | 16 ++ lua/nvim-treesitter/query.lua | 99 ++++++--- .../shell_command_selectors.lua | 1 + lua/nvim-treesitter/utils.lua | 6 + 8 files changed, 257 insertions(+), 121 deletions(-) diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 87bb8d1a1..12fbb4cd1 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -8,6 +8,16 @@ local caching = require "nvim-treesitter.caching" local M = {} +---@class TSConfig +---@field modules {[string]:TSModule} +---@field sync_install boolean +---@field ensure_installed string[] +---@field ignore_install string[] +---@field auto_install boolean +---@field update_strategy string +---@field parser_install_dir string|nil + +---@type TSConfig local config = { modules = {}, sync_install = false, @@ -21,6 +31,17 @@ local config = { local queued_modules_defs = {} -- Whether we've initialized the plugin yet. local is_initialized = false + +---@class TSModule +---@field module_path string +---@field enable boolean|string[]|function(string): boolean +---@field disable boolean|string[]|function(string): boolean +---@field is_supported function(string): boolean +---@field attach function(string) +---@field detach function(string) +---@field enabled_buffers table + +---@type {[string]: TSModule} local builtin_modules = { highlight = { module_path = "nvim-treesitter.highlight", @@ -54,7 +75,9 @@ local builtin_modules = { local attached_buffers_by_module = caching.create_buffer_cache() --- Resolves a module by requiring the `module_path` or using the module definition. +---Resolves a module by requiring the `module_path` or using the module definition. +---@param mod_name string +---@return TSModule|nil local function resolve_module(mod_name) local config_mod = M.get_module(mod_name) @@ -69,10 +92,10 @@ local function resolve_module(mod_name) end end --- Enables and attaches the module to a buffer for lang. --- @param mod path to module --- @param bufnr buffer number, defaults to current buffer --- @param lang language, defaults to current language +---Enables and attaches the module to a buffer for lang. +---@param mod string path to module +---@param bufnr integer|nil buffer number, defaults to current buffer +---@param lang string|nil language, defaults to current language local function enable_module(mod, bufnr, lang) local module = M.get_module(mod) if not module then @@ -93,9 +116,9 @@ local function enable_module(mod, bufnr, lang) M.attach_module(mod, bufnr, lang) end --- Enables autocomands for the module. --- After the module is loaded `loaded` will be set to true for the module. --- @param mod path to module +---Enables autocomands for the module. +---After the module is loaded `loaded` will be set to true for the module. +---@param mod string path to module local function enable_mod_conf_autocmd(mod) local config_mod = M.get_module(mod) if not config_mod or config_mod.loaded then @@ -113,9 +136,9 @@ local function enable_mod_conf_autocmd(mod) config_mod.loaded = true end --- Enables the module globally and for all current buffers. --- After enabled, `enable` will be set to true for the module. --- @param mod path to module +---Enables the module globally and for all current buffers. +---After enabled, `enable` will be set to true for the module. +---@param mod string path to module local function enable_all(mod) local config_mod = M.get_module(mod) if not config_mod then @@ -131,9 +154,9 @@ local function enable_all(mod) end end --- Disables and detaches the module for a buffer. --- @param mod path to module --- @param bufnr buffer number, defaults to current buffer +---Disables and detaches the module for a buffer. +---@param mod string path to module +---@param bufnr integer buffer number, defaults to current buffer local function disable_module(mod, bufnr) local module = M.get_module(mod) if not module then @@ -147,9 +170,9 @@ local function disable_module(mod, bufnr) M.detach_module(mod, bufnr) end --- Disables autocomands for the module. --- After the module is unloaded `loaded` will be set to false for the module. --- @param mod path to module +---Disables autocomands for the module. +---After the module is unloaded `loaded` will be set to false for the module. +---@param mod string path to module local function disable_mod_conf_autocmd(mod) local config_mod = M.get_module(mod) if not config_mod or not config_mod.loaded then @@ -159,9 +182,9 @@ local function disable_mod_conf_autocmd(mod) config_mod.loaded = false end --- Disables the module globally and for all current buffers. --- After disabled, `enable` will be set to false for the module. --- @param mod path to module +---Disables the module globally and for all current buffers. +---After disabled, `enable` will be set to false for the module. +---@param mod string path to module local function disable_all(mod) local config_mod = M.get_module(mod) if not config_mod then @@ -177,10 +200,10 @@ local function disable_all(mod) end end --- Toggles a module for a buffer --- @param mod path to module --- @param bufnr buffer number, defaults to current buffer --- @param lang language, defaults to current language +---Toggles a module for a buffer +---@param mod string path to module +---@param bufnr integer buffer number, defaults to current buffer +---@param lang string language, defaults to current language local function toggle_module(mod, bufnr, lang) bufnr = bufnr or api.nvim_get_current_buf() lang = lang or parsers.get_buf_lang(bufnr) @@ -207,10 +230,10 @@ local function toggle_all(mod) end end --- Recurses through all modules including submodules --- @param accumulator function called for each module --- @param root root configuration table to start at --- @param path prefix path +---Recurses through all modules including submodules +---@param accumulator function called for each module +---@param root {[string]: TSModule} root configuration table to start at +---@param path string|nil prefix path local function recurse_modules(accumulator, root, path) root = root or config.modules @@ -225,9 +248,9 @@ local function recurse_modules(accumulator, root, path) end end --- Shows current configuration of all nvim-treesitter modules --- @param process_function function used as the `process` parameter --- for vim.inspect (https://github.com/kikito/inspect.lua#optionsprocess) +---Shows current configuration of all nvim-treesitter modules +---@param process_function function used as the `process` parameter +--- for vim.inspect (https://github.com/kikito/inspect.lua#optionsprocess) local function config_info(process_function) process_function = process_function or function(item, path) @@ -242,6 +265,8 @@ local function config_info(process_function) print(vim.inspect(config, { process = process_function })) end +---@param query_group string +---@param lang string function M.edit_query_file(query_group, lang) lang = lang or parsers.get_buf_lang() local files = ts_query.get_query_files(lang, query_group, true) @@ -259,6 +284,8 @@ function M.edit_query_file(query_group, lang) end end +---@param query_group string +---@param lang string function M.edit_query_file_user_after(query_group, lang) lang = lang or parsers.get_buf_lang() local folder = utils.join_path(vim.fn.stdpath "config", "after", "queries", lang) @@ -340,9 +367,9 @@ M.commands = { }, } --- @param mod: module (string) --- @param lang: the language of the buffer (string) --- @param bufnr: the bufnr (number) +---@param mod string module +---@param lang string the language of the buffer +---@param bufnr integer the bufnr function M.is_enabled(mod, lang, bufnr) if not parsers.has_parser(lang) then return false @@ -376,8 +403,8 @@ function M.is_enabled(mod, lang, bufnr) return true end --- Setup call for users to override module configurations. --- @param user_data module overrides +---Setup call for users to override module configurations. +---@param user_data TSConfig module overrides function M.setup(user_data) config.modules = vim.tbl_deep_extend("force", config.modules, user_data) config.ignore_install = user_data.ignore_install or {} @@ -411,32 +438,33 @@ function M.setup(user_data) end, config.modules) end --- Defines a table of modules that can be attached/detached to buffers --- based on language support. A module consist of the following properties: --- * @enable Whether the modules is enabled. Can be true or false. --- * @disable A list of languages to disable the module for. Only relevant if enable is true. --- * @keymaps A list of user mappings for a given module if relevant. --- * @is_supported A function which, given a ft, will return true if the ft works on the module. --- * @module_path A string path to a module file using `require`. The exported module must contain --- an `attach` and `detach` function. This path is not required if `attach` and `detach` --- functions are provided directly on the module definition. --- * @attach An attach function that is called for each buffer that the module is enabled for. This is required --- if a `module_path` is not specified. --- * @detach A detach function that is called for each buffer that the module is enabled for. This is required --- if a `module_path` is not specified. --- Modules are not setup until `init` is invoked by the plugin. This allows modules to be defined in any order --- and can be loaded lazily. --- @example --- require"nvim-treesitter".define_modules { --- my_cool_module = { --- attach = function() --- do_some_cool_setup() --- end, --- detach = function() --- do_some_cool_teardown() --- end --- } --- } +---Defines a table of modules that can be attached/detached to buffers +---based on language support. A module consist of the following properties: +---* @enable Whether the modules is enabled. Can be true or false. +---* @disable A list of languages to disable the module for. Only relevant if enable is true. +---* @keymaps A list of user mappings for a given module if relevant. +---* @is_supported A function which, given a ft, will return true if the ft works on the module. +---* @module_path A string path to a module file using `require`. The exported module must contain +--- an `attach` and `detach` function. This path is not required if `attach` and `detach` +--- functions are provided directly on the module definition. +---* @attach An attach function that is called for each buffer that the module is enabled for. This is required +--- if a `module_path` is not specified. +---* @detach A detach function that is called for each buffer that the module is enabled for. This is required +--- if a `module_path` is not specified. +---Modules are not setup until `init` is invoked by the plugin. This allows modules to be defined in any order +---and can be loaded lazily. +---@example +---require"nvim-treesitter".define_modules { +--- my_cool_module = { +--- attach = function() +--- do_some_cool_setup() +--- end, +--- detach = function() +--- do_some_cool_teardown() +--- end +--- } +---} +---@param mod_defs TSModule[] function M.define_modules(mod_defs) if not is_initialized then table.insert(queued_modules_defs, mod_defs) @@ -463,10 +491,10 @@ function M.define_modules(mod_defs) end end --- Attaches a module to a buffer --- @param mod_name the module name --- @param bufnr the bufnr --- @param lang the language of the buffer +---Attaches a module to a buffer +---@param mod_name string the module name +---@param bufnr integer the bufnr +---@param lang string the language of the buffer function M.attach_module(mod_name, bufnr, lang) bufnr = bufnr or api.nvim_get_current_buf() lang = lang or parsers.get_buf_lang(bufnr) @@ -478,9 +506,9 @@ function M.attach_module(mod_name, bufnr, lang) end end --- Detaches a module to a buffer --- @param mod_name the module name --- @param bufnr the bufnr +---Detaches a module to a buffer +---@param mod_name string the module name +---@param bufnr integer the bufnr function M.detach_module(mod_name, bufnr) local resolved_mod = resolve_module(mod_name) bufnr = bufnr or api.nvim_get_current_buf() @@ -491,17 +519,17 @@ function M.detach_module(mod_name, bufnr) end end --- Same as attach_module, but if the module is already attached, detach it first. --- @param mod_name the module name --- @param bufnr the bufnr --- @param lang the language of the buffer +---Same as attach_module, but if the module is already attached, detach it first. +---@param mod_name string the module name +---@param bufnr integer the bufnr +---@param lang string the language of the buffer function M.reattach_module(mod_name, bufnr, lang) M.detach_module(mod_name, bufnr) M.attach_module(mod_name, bufnr, lang) end --- Gets available modules --- @param root root table to find modules +---Gets available modules +---@param root {[string]:TSModule} table to find modules function M.available_modules(root) local modules = {} @@ -512,25 +540,26 @@ function M.available_modules(root) return modules end --- Gets a module config by path --- @param mod_path path to the module --- @returns the module or nil +---Gets a module config by path +---@param mod_path string path to the module +---@return TSModule|nil the module or nil function M.get_module(mod_path) local mod = utils.get_at_path(config.modules, mod_path) return M.is_module(mod) and mod or nil end --- Determines whether the provided table is a module. --- A module should contain an attach and detach function. --- @param mod the module table +---Determines whether the provided table is a module. +---A module should contain an attach and detach function. +---@param mod table the module table +---@return boolean function M.is_module(mod) return type(mod) == "table" and ((type(mod.attach) == "function" and type(mod.detach) == "function") or type(mod.module_path) == "string") end --- Initializes built-in modules and any queued modules --- registered by plugins or the user. +---Initializes built-in modules and any queued modules +---registered by plugins or the user. function M.init() is_initialized = true M.define_modules(builtin_modules) @@ -540,11 +569,13 @@ function M.init() end end --- If parser_install_dir is not nil is used or created. --- If parser_install_dir is nil try the package dir of the nvim-treesitter --- plugin first, followed by the "site" dir from "runtimepath". "site" dir will --- be created if it doesn't exist. Using only the package dir won't work when --- the plugin is installed with Nix, since the "/nix/store" is read-only. +---If parser_install_dir is not nil is used or created. +---If parser_install_dir is nil try the package dir of the nvim-treesitter +---plugin first, followed by the "site" dir from "runtimepath". "site" dir will +---be created if it doesn't exist. Using only the package dir won't work when +---the plugin is installed with Nix, since the "/nix/store" is read-only. +---@param folder_name string +---@return string|nil, string|nil function M.get_parser_install_dir(folder_name) folder_name = folder_name or "parser" diff --git a/lua/nvim-treesitter/fold.lua b/lua/nvim-treesitter/fold.lua index 1f417414f..50272622f 100644 --- a/lua/nvim-treesitter/fold.lua +++ b/lua/nvim-treesitter/fold.lua @@ -102,6 +102,8 @@ local folds_levels = tsutils.memoize_by_buf_tick(function(bufnr) return levels end) +---@param lnum integer +---@return string function M.get_fold_indic(lnum) if not parsers.has_parser() or not lnum then return "0" diff --git a/lua/nvim-treesitter/highlight.lua b/lua/nvim-treesitter/highlight.lua index 502914fe4..5f7dead61 100644 --- a/lua/nvim-treesitter/highlight.lua +++ b/lua/nvim-treesitter/highlight.lua @@ -6,6 +6,9 @@ local configs = require "nvim-treesitter.configs" local M = {} +---@param config table +---@param lang string +---@return boolean local function should_enable_vim_regex(config, lang) local additional_hl = config.additional_vim_regex_highlighting local is_table = type(additional_hl) == "table" @@ -13,29 +16,36 @@ local function should_enable_vim_regex(config, lang) return additional_hl and (not is_table or vim.tbl_contains(additional_hl, lang)) end +---@param bufnr integer local function enable_syntax(bufnr) api.nvim_buf_set_option(bufnr, "syntax", "ON") end +---@param bufnr integer function M.stop(bufnr) if ts.highlighter.active[bufnr] then ts.highlighter.active[bufnr]:destroy() end end +---@param bufnr integer +---@param lang string function M.start(bufnr, lang) local parser = parsers.get_parser(bufnr, lang) ts.highlighter.new(parser, {}) end +---@param bufnr integer +---@param lang string function M.attach(bufnr, lang) local config = configs.get_module "highlight" M.start(bufnr, lang) - if should_enable_vim_regex(config, lang) then + if config and should_enable_vim_regex(config, lang) then enable_syntax(bufnr) end end +---@param bufnr integer function M.detach(bufnr) M.stop(bufnr) enable_syntax(bufnr) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 95a8a9f92..48810b1e2 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -42,11 +42,14 @@ local function get_job_status() .. "]" end +---@param lang string +---@param validate boolean|nil +---@return InstallInfo local function get_parser_install_info(lang, validate) local parser_config = parsers.get_parser_configs()[lang] if not parser_config then - return error('Parser not available for language "' .. lang .. '"') + error('Parser not available for language "' .. lang .. '"') end local install_info = parser_config.install_info @@ -79,6 +82,8 @@ local function get_revision(lang) return (lockfile[lang] and lockfile[lang].revision) end +---@param lang string +---@return string|nil local function get_installed_revision(lang) local lang_file = utils.join_path(configs.get_parser_info_dir(), lang .. ".revision") if vim.fn.filereadable(lang_file) == 1 then @@ -86,23 +91,30 @@ local function get_installed_revision(lang) end end +---@param lang string +---@return boolean local function is_installed(lang) return #api.nvim_get_runtime_file("parser/" .. lang .. ".so", false) > 0 end +---@param lang string +---@return boolean local function needs_update(lang) local revision = get_revision(lang) return not revision or revision ~= get_installed_revision(lang) end +---@return table local function outdated_parsers() return vim.tbl_filter(function(lang) return needs_update(lang) end, info.installed_parsers()) end +---@param handle userdata +---@param is_stderr boolean local function onread(handle, is_stderr) - return function(err, data) + return function(_, data) if data then if is_stderr then complete_error_output[handle] = (complete_error_output[handle] or "") .. data @@ -147,6 +159,7 @@ function M.iter_cmd(cmd_list, i, lang, success_message) local stdout = luv.new_pipe(false) local stderr = luv.new_pipe(false) attr.opts.stdio = { nil, stdout, stderr } + ---@type userdata handle = luv.spawn( attr.cmd, attr.opts, @@ -225,6 +238,12 @@ local function iter_cmd_sync(cmd_list) return true end +---@param cache_folder string +---@param install_folder string +---@param lang string +---@param repo InstallInfo +---@param with_sync boolean +---@param generate_from_grammar boolean local function run_install(cache_folder, install_folder, lang, repo, with_sync, generate_from_grammar) parsers.reset_cache() @@ -361,6 +380,12 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync, end end +---@param lang string +---@param ask_reinstall boolean +---@param cache_folder string +---@param install_folder string +---@param with_sync boolean +---@param generate_from_grammar boolean local function install_lang(lang, ask_reinstall, cache_folder, install_folder, with_sync, generate_from_grammar) if is_installed(lang) and ask_reinstall ~= "force" then if not ask_reinstall then @@ -389,6 +414,7 @@ local function install_lang(lang, ask_reinstall, cache_folder, install_folder, w run_install(cache_folder, install_folder, lang, install_info, with_sync, generate_from_grammar) end +---@return function local function install(options) options = options or {} local with_sync = options.with_sync @@ -405,11 +431,14 @@ local function install(options) if err then return api.nvim_err_writeln(err) end + assert(cache_folder) - local install_folder, err = configs.get_parser_install_dir() + local install_folder + install_folder, err = configs.get_parser_install_dir() if err then return api.nvim_err_writeln(err) end + assert(install_folder) local languages local ask diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index ee79c09d6..8fe4225e0 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -20,6 +20,22 @@ local filetype_to_parsername = { cs = "c_sharp", } +---@class InstallInfo +---@field url string +---@field branch string|nil +---@field revision string|nil +---@field files string[] +---@field generate_requires_npm boolean|nil +---@field requires_generate_from_grammar boolean|nil +---@field location string|nil + +---@class ParserInfo +---@field install_info InstallInfo +---@field filetype string +---@field maintainers string[] +---@field experimental boolean|nil + +---@type ParserInfo[] local list = setmetatable({}, { __newindex = function(table, parsername, parserconfig) rawset( diff --git a/lua/nvim-treesitter/query.lua b/lua/nvim-treesitter/query.lua index aeaa683be..bc80d51e6 100644 --- a/lua/nvim-treesitter/query.lua +++ b/lua/nvim-treesitter/query.lua @@ -11,8 +11,10 @@ local EMPTY_ITER = function() end M.built_in_query_groups = { "highlights", "locals", "folds", "indents", "injections" } --- Creates a function that checks whether a given query exists --- for a specific language. +--- Creates a function that checks whether a given query exists +--- for a specific language. +---@param query string +---@return function(string): boolean local function get_query_guard(query) return function(lang) return M.has_query_files(lang, query) @@ -23,6 +25,7 @@ for _, query in ipairs(M.built_in_query_groups) do M["has_" .. query] = get_query_guard(query) end +---@return string[] function M.available_query_groups() local query_files = api.nvim_get_runtime_file("queries/*/*.scm", true) local groups = {} @@ -57,11 +60,19 @@ do end end +---@param lang string +---@param query_name string +---@return string[] local function runtime_queries(lang, query_name) return api.nvim_get_runtime_file(string.format("queries/%s/%s.scm", lang, query_name), true) or {} end +---@type table> local query_files_cache = {} + +---@param lang string +---@param query_name string +---@return boolean function M.has_query_files(lang, query_name) if not query_files_cache[lang] then query_files_cache[lang] = {} @@ -86,6 +97,8 @@ do local cache = setmetatable({}, mt) --- Same as `vim.treesitter.query` except will return cached values + ---@param lang string + ---@param query_name string function M.get_query(lang, query_name) if cache[lang][query_name] == nil then cache[lang][query_name] = tsq.get_query(lang, query_name) @@ -98,6 +111,8 @@ do --- If lang and query_name is both present, will reload for only the lang and query_name. --- If only lang is present, will reload all query_names for that lang --- If none are present, will reload everything + ---@param lang string + ---@param query_name string function M.invalidate_query_cache(lang, query_name) if lang and query_name then cache[lang][query_name] = nil @@ -106,14 +121,14 @@ do end elseif lang and not query_name then query_files_cache[lang] = nil - for query_name, _ in pairs(cache[lang]) do - M.invalidate_query_cache(lang, query_name) + for query_name0, _ in pairs(cache[lang]) do + M.invalidate_query_cache(lang, query_name0) end elseif not lang and not query_name then query_files_cache = {} - for lang, _ in pairs(cache) do - for query_name, _ in pairs(cache[lang]) do - M.invalidate_query_cache(lang, query_name) + for lang0, _ in pairs(cache) do + for query_name0, _ in pairs(cache[lang0]) do + M.invalidate_query_cache(lang0, query_name0) end end else @@ -123,11 +138,23 @@ do end --- This function is meant for an autocommand and not to be used. Only use if file is a query file. +---@param fname string function M.invalidate_query_file(fname) local fnamemodify = vim.fn.fnamemodify M.invalidate_query_cache(fnamemodify(fname, ":p:h:t"), fnamemodify(fname, ":t:r")) end +---@class QueryInfo +---@field root LanguageTree +---@field source integer +---@field start integer +---@field stop integer + +---@param bufnr integer +---@param query_name string +---@param root LanguageTree +---@param root_lang string|nil +---@return Query|nil, QueryInfo|nil local function prepare_query(bufnr, query_name, root, root_lang) local buf_lang = parsers.get_buf_lang(bufnr) @@ -181,6 +208,10 @@ local function prepare_query(bufnr, query_name, root, root_lang) } end +---@param query Query +---@param bufnr integer +---@param start_row integer +---@param end_row integer function M.iter_prepared_matches(query, qnode, bufnr, start_row, end_row) -- A function that splits a string on '.' local function split(string) @@ -249,15 +280,16 @@ function M.iter_prepared_matches(query, qnode, bufnr, start_row, end_row) end --- Return all nodes corresponding to a specific capture path (like @definition.var, @reference.type) --- Works like M.get_references or M.get_scopes except you can choose the capture --- Can also be a nested capture like @definition.function to get all nodes defining a function. --- --- @param bufnr the buffer --- @param captures a single string or a list of strings --- @param query_group the name of query group (highlights or injections for example) --- @param root (optional) node from where to start the search --- @param lang (optional) the language from where to get the captures. --- Root nodes can have several languages. +---Works like M.get_references or M.get_scopes except you can choose the capture +---Can also be a nested capture like @definition.function to get all nodes defining a function. +--- +---@param bufnr integer the buffer +---@param captures string|string[] +---@param query_group string the name of query group (highlights or injections for example) +---@param root LanguageTree|nil node from where to start the search +---@param lang string|nil the language from where to get the captures. +--- Root nodes can have several languages. +---@return table|nil function M.get_capture_matches(bufnr, captures, query_group, root, lang) if type(captures) == "string" then captures = { captures } @@ -289,6 +321,7 @@ function M.iter_captures(bufnr, query_name, root, lang) if not query then return EMPTY_ITER end + assert(params) local iter = query:iter_captures(params.root, params.source, params.start, params.stop) @@ -336,16 +369,17 @@ function M.find_best_match(bufnr, capture_string, query_group, filter_predicate, return best end --- Iterates matches from a query file. --- @param bufnr the buffer --- @param query_group the query file to use --- @param root the root node --- @param root the root node lang, if known +---Iterates matches from a query file. +---@param bufnr integer the buffer +---@param query_group string the query file to use +---@param root LanguageTree the root node +---@param root_lang string|nil the root node lang, if known function M.iter_group_results(bufnr, query_group, root, root_lang) local query, params = prepare_query(bufnr, query_group, root, root_lang) if not query then return EMPTY_ITER end + assert(params) return M.iter_prepared_matches(query, params.root, params.source, params.start, params.stop) end @@ -360,18 +394,25 @@ function M.collect_group_results(bufnr, query_group, root, lang) return matches end +---@alias CaptureResFn function(string, LanguageTree, LanguageTree): string, string + --- Same as get_capture_matches except this will recursively get matches for every language in the tree. --- @param bufnr The bufnr --- @param capture_or_fn The capture to get. If a function is provided then that --- function will be used to resolve both the capture and query argument. --- The function can return `nil` to ignore that tree. --- @param query_type The query to get the capture from. This is ignore if a function is provided --- for the captuer argument. +---@param bufnr integer The bufnr +---@param capture_or_fn string|CaptureResFn The capture to get. If a function is provided then that +--- function will be used to resolve both the capture and query argument. +--- The function can return `nil` to ignore that tree. +---@param query_type string The query to get the capture from. This is ignore if a function is provided +--- for the captuer argument. function M.get_capture_matches_recursively(bufnr, capture_or_fn, query_type) - local type_fn = type(capture_or_fn) == "function" and capture_or_fn - or function() + ---@type CaptureResFn + local type_fn + if type(capture_or_fn) == "function" then + type_fn = capture_or_fn + else + type_fn = function(_, _, _) return capture_or_fn, query_type end + end local parser = parsers.get_parser(bufnr) local matches = {} diff --git a/lua/nvim-treesitter/shell_command_selectors.lua b/lua/nvim-treesitter/shell_command_selectors.lua index 522ac727a..59bbb0e41 100644 --- a/lua/nvim-treesitter/shell_command_selectors.lua +++ b/lua/nvim-treesitter/shell_command_selectors.lua @@ -49,6 +49,7 @@ function M.select_rm_file_cmd(file, info_msg) end end +---@return string|nil function M.select_executable(executables) return vim.tbl_filter(function(c) return c ~= vim.NIL and fn.executable(c) == 1 diff --git a/lua/nvim-treesitter/utils.lua b/lua/nvim-treesitter/utils.lua index 81ce70173..156ba9c31 100644 --- a/lua/nvim-treesitter/utils.lua +++ b/lua/nvim-treesitter/utils.lua @@ -11,6 +11,7 @@ function M.notify(msg, log_level, opts) end -- Returns the system specific path seperator. +---@return string function M.get_path_sep() return fn.has "win32" == 1 and "\\" or "/" end @@ -82,6 +83,10 @@ function M.setup_commands(mod, commands) end end +---@param dir string +---@param create_err string +---@param writeable_err string +---@return string|nil, string|nil function M.create_or_reuse_writable_dir(dir, create_err, writeable_err) create_err = create_err or M.join_space("Could not create dir '", dir, "': ") writeable_err = writeable_err or M.join_space("Invalid rights, '", dir, "' should be read/write") @@ -201,6 +206,7 @@ function M.to_func(a) return type(a) == "function" and a or M.constant(a) end +---@return string|nil function M.ts_cli_version() if fn.executable "tree-sitter" == 1 then local handle = io.popen "tree-sitter -V" From 47ffd0dfc5500a7c48d1b4c2a01949f5d6a041f2 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 31 Oct 2022 11:01:25 +0000 Subject: [PATCH 0047/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 966fd1073..2388c36e5 100644 --- a/lockfile.json +++ b/lockfile.json @@ -204,7 +204,7 @@ "revision": "e9948edc41e9e5869af99dddb2b5ff5cc5581af6" }, "lua": { - "revision": "887dfd4e83c469300c279314ff1619b1d0b85b91" + "revision": "fb30e8cb605e2ebd6c643e6981325a63fbbde320" }, "m68k": { "revision": "d097b123f19c6eaba2bf181c05420d88b9fc489d" @@ -369,7 +369,7 @@ "revision": "085437f5cb117703b7f520dd92161140a684f092" }, "twig": { - "revision": "6a01f20e73038300d205d370212c361949be3035" + "revision": "035f549ec8c043e734f04341d7ccdc669bb2ba91" }, "typescript": { "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" From 80503a99104e461599ef8810a64bce1b6d235f6a Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 31 Oct 2022 12:21:40 +0100 Subject: [PATCH 0048/3265] fix(configs): ensure_installed can be a string --- lua/nvim-treesitter/configs.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 12fbb4cd1..6db2935a0 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -11,7 +11,7 @@ local M = {} ---@class TSConfig ---@field modules {[string]:TSModule} ---@field sync_install boolean ----@field ensure_installed string[] +---@field ensure_installed string[]|string ---@field ignore_install string[] ---@field auto_install boolean ---@field update_strategy string From 7709eb4b47b8ee19e760aa2771c5735fda2798e1 Mon Sep 17 00:00:00 2001 From: Jelle Haandrikman Date: Fri, 21 Oct 2022 20:52:33 +0200 Subject: [PATCH 0049/3265] Disable folding at startup. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 505caa19e..51fd485f8 100644 --- a/README.md +++ b/README.md @@ -388,6 +388,7 @@ Tree-sitter based folding. *(Technically not a module because it's per windows a ```vim set foldmethod=expr set foldexpr=nvim_treesitter#foldexpr() +set foldenable=false -- Disable folding at startup. ``` This will respect your `foldminlines` and `foldnestmax` settings. From 3b040ce854edaf7bc03263f83121a06628cf1f2a Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 1 Nov 2022 13:02:09 +0100 Subject: [PATCH 0050/3265] test: remove bundled parsers in CI ensure that queries are tested against parser version in lockfile --- scripts/ci-install-macos-latest.sh | 1 + scripts/ci-install-ubuntu-latest.sh | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/ci-install-macos-latest.sh b/scripts/ci-install-macos-latest.sh index 79b957cbc..9899f17e1 100644 --- a/scripts/ci-install-macos-latest.sh +++ b/scripts/ci-install-macos-latest.sh @@ -1,5 +1,6 @@ curl -L https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim-macos.tar.gz | tar -xz sudo ln -s $(pwd)/nvim-macos/bin/nvim /usr/local/bin +rm -rf $(pwd)/nvim-macos/lib/nvim/parser mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start ln -s $(pwd) ~/.local/share/nvim/site/pack/nvim-treesitter/start diff --git a/scripts/ci-install-ubuntu-latest.sh b/scripts/ci-install-ubuntu-latest.sh index ecfc164f6..e65c670dc 100644 --- a/scripts/ci-install-ubuntu-latest.sh +++ b/scripts/ci-install-ubuntu-latest.sh @@ -1,10 +1,9 @@ wget -O - https://github.com/tree-sitter/tree-sitter/releases/download/${TREE_SITTER_CLI_TAG}/tree-sitter-linux-x64.gz | gunzip -c > tree-sitter sudo cp ./tree-sitter /usr/bin/tree-sitter sudo chmod uog+rwx /usr/bin/tree-sitter -wget https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim.appimage -chmod u+x nvim.appimage +wget https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim-linux64.tar.gz +tar -zxf nvim-linux64.tar.gz +sudo ln -s $(pwd)/nvim-linux64/bin/nvim /usr/local/bin +rm -rf $(pwd)/nvim-linux64/lib/nvim/parser mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start ln -s $(pwd) ~/.local/share/nvim/site/pack/nvim-treesitter/start -sudo cp ./nvim.appimage /usr/bin/nvim -sudo chmod uog+rwx /usr/bin/nvim - From 5f85a0a2b5c8e385c1232333e50c55ebdd0e0791 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Mon, 24 Oct 2022 09:10:50 +0200 Subject: [PATCH 0051/3265] help: update queries --- queries/help/highlights.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/queries/help/highlights.scm b/queries/help/highlights.scm index 6be4e49c8..b2ed39033 100644 --- a/queries/help/highlights.scm +++ b/queries/help/highlights.scm @@ -2,6 +2,8 @@ (h2) @text.title (h3) @text.title (column_heading) @text.title +(column_heading + "~" @conceal (#set! conceal "")) (tag "*" @conceal (#set! conceal "") text: (_) @label) @@ -9,8 +11,15 @@ "|" @conceal (#set! conceal "") text: (_) @text.reference) (optionlink - text: (_) @text.literal) + text: (_) @text.reference) (codespan "`" @conceal (#set! conceal "") - text: (_) @string) + text: (_) @text.literal) +(codeblock) @text.literal +(codeblock + ">" @conceal (#set! conceal "")) +(block + "<" @conceal (#set! conceal "")) (argument) @parameter +(keycode) @string.special +(url) @text.uri From e7bdcee167ae41295a3e99ad460ae80d2bb961d7 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 1 Nov 2022 12:27:29 +0100 Subject: [PATCH 0052/3265] lua: update queries --- queries/lua/highlights.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/queries/lua/highlights.scm b/queries/lua/highlights.scm index 50069258f..48aed0529 100644 --- a/queries/lua/highlights.scm +++ b/queries/lua/highlights.scm @@ -131,6 +131,11 @@ ((identifier) @variable.builtin (#eq? @variable.builtin "self")) +(variable_list + attribute: (attribute + (["<" ">"] @punctuation.bracket + (identifier) @attribute))) + ;; Constants ((identifier) @constant From 4f8b2480b3112935472c973692f30425b310e601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuelner=20Mart=C3=ADnez?= Date: Tue, 1 Nov 2022 14:23:35 -0600 Subject: [PATCH 0053/3265] fix(readme): disable folding at startup --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 51fd485f8..868420835 100644 --- a/README.md +++ b/README.md @@ -388,7 +388,7 @@ Tree-sitter based folding. *(Technically not a module because it's per windows a ```vim set foldmethod=expr set foldexpr=nvim_treesitter#foldexpr() -set foldenable=false -- Disable folding at startup. +set nofoldenable " Disable folding at startup. ``` This will respect your `foldminlines` and `foldnestmax` settings. From c6992f69d303cee0b43fd59125cb7afb0262d8fe Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 1 Nov 2022 21:44:32 +0000 Subject: [PATCH 0054/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 2388c36e5..4e97da7ea 100644 --- a/lockfile.json +++ b/lockfile.json @@ -306,7 +306,7 @@ "revision": "25e6328872ac3a764ba8b926aea12719741103f1" }, "ruby": { - "revision": "252ca18be76b0918fb6b34c302292b6931876c25" + "revision": "c91960320d0f337bdd48308a8ad5500bd2616979" }, "rust": { "revision": "47b061c1e1ba3a7e9c2f450363a50e87de3f7c61" From 27bbb64f8773066371c3f844e9bdad4c942bcdad Mon Sep 17 00:00:00 2001 From: Sergio Alejandro Vargas Date: Sun, 9 Oct 2022 23:58:05 -0500 Subject: [PATCH 0055/3265] refactor(highlights/julia): Update definitions See https://github.com/tree-sitter/tree-sitter-julia/pull/54 Remove a bunch of patterns with `argument_list`. No longer necessary with `short_function_definition`. Other minor changes including: - Add boolean literals See https://github.com/tree-sitter/tree-sitter-julia/pull/44 - Update highlights for operators (for bindings, type operators, etc) - Update lockfile --- lockfile.json | 2 +- queries/julia/highlights.scm | 281 ++++++++++++++++++++--------------- 2 files changed, 161 insertions(+), 122 deletions(-) diff --git a/lockfile.json b/lockfile.json index 4e97da7ea..52c93a0d2 100644 --- a/lockfile.json +++ b/lockfile.json @@ -186,7 +186,7 @@ "revision": "0475a5017ad7dc84845d1d33187f2321abcb261d" }, "julia": { - "revision": "0572cebf7b8e8ef5990b4d1e7f44f0b36f62922c" + "revision": "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25" }, "kotlin": { "revision": "a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569" diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index 1b7e5b72c..f0e53c2c3 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -1,96 +1,136 @@ +;;; Identifiers + (identifier) @variable -(operator) @operator -(range_expression ":" @operator) -(pair_expression "=>" @operator) - -;; In case you want type highlighting based on Julia naming conventions (this might collide with mathematical notation) -;((identifier) @type ; exception: mark `A_foo` sort of identifiers as variables - ;(match? @type "^[A-Z][^_]")) +; ;; If you want type highlighting based on Julia naming conventions (this might collide with mathematical notation) +; ((identifier) @type +; (match? @type "^[A-Z][^_]")) ; exception: Highlight `A_foo` sort of identifiers as variables (macro_identifier) @function.macro -(macro_identifier (identifier) @function.macro) ; for any one using the variable highlight +(macro_identifier + (identifier) @function.macro) ; for any one using the variable highlight + (macro_definition - name: (identifier) @function.macro - ["macro" "end" @keyword]) + name: (identifier) @function.macro) + +(quote_expression ":" (identifier)) @symbol + + +;;; Fields and indexes (field_expression - (identifier) (identifier) @field .) -(function_definition - name: (identifier) @function) -(call_expression - (identifier) @function.call) -(call_expression - (field_expression (identifier) @method.call .)) -(broadcast_call_expression - (identifier) @function.call) -(broadcast_call_expression - (field_expression (identifier) @method.call .)) -(parameter_list - (identifier) @parameter) -(parameter_list - (optional_parameter . - (identifier) @parameter)) -(typed_parameter - (identifier) @parameter - (identifier) @type) -(type_parameter_list - (identifier) @type) -(typed_parameter - (identifier) @parameter - (parameterized_identifier) @type) -(function_expression - . (identifier) @parameter) -(spread_parameter) @parameter -(spread_parameter - (identifier) @parameter) -(named_argument - . (identifier) @parameter) -(argument_list - (typed_expression - (identifier) @parameter - (identifier) @type)) -(argument_list - (typed_expression - (identifier) @parameter - (parameterized_identifier) @type)) - -;; Symbol expressions (:my-wanna-be-lisp-keyword) -(quote_expression - (identifier)) @symbol - -;; Parsing error! foo (::Type) gets parsed as two quote expressions -(argument_list - (quote_expression - (quote_expression - (identifier) @type))) - -(type_argument_list - (identifier) @type) -(parameterized_identifier (_)) @type -(argument_list - (typed_expression . (identifier) @parameter)) - -(typed_expression - (identifier) @type .) -(typed_expression - (parameterized_identifier) @type .) - -(abstract_definition - name: (identifier) @type) -(struct_definition - name: (identifier) @type) - (subscript_expression (_) (range_expression (identifier) @constant.builtin .) (#eq? @constant.builtin "end")) + +;;; Function names + +;; definitions + +(function_definition + name: (identifier) @function) +(short_function_definition + name: (identifier) @function) + +(function_definition + name: (scoped_identifier (identifier) @function .)) +(short_function_definition + name: (scoped_identifier (identifier) @function .)) + +;; calls + +(call_expression + (identifier) @function.call) +(call_expression + (field_expression (identifier) @function.call .)) + +(broadcast_call_expression + (identifier) @function.call) +(broadcast_call_expression + (field_expression (identifier) @function.call .)) + + +;;; Parameters + +(parameter_list + (identifier) @parameter) +(optional_parameter . + (identifier) @parameter) +(slurp_parameter + (identifier) @parameter) + +(typed_parameter + parameter: (identifier) @parameter + type: (_) @type) +(typed_parameter + type: (_) @type) + +(function_expression + . (identifier) @parameter) ; Single parameter arrow functions + + +;;; Types + +;; Definitions + +(abstract_definition + name: (identifier) @type) +(primitive_definition + name: (identifier) @type) +(struct_definition + name: (identifier) @type) + +;; Annotations + +(parameterized_identifier (_) @type) + +(type_parameter_list + (identifier) @type) + +(type_argument_list + (identifier) @type) + +(typed_expression + (identifier) @type .) + +(function_definition + return_type: (identifier) @type) +(short_function_definition + return_type: (identifier) @type) + +(where_clause + (identifier) @type) ; where clause without braces + + +;;; Keywords + +[ + "abstract" + "const" + "macro" + "primitive" + "struct" + "type" + "mutable" + "where" +] @keyword + "end" @keyword +((identifier) @keyword (#any-of? @keyword "global" "local")) ; Grammar error + +(compound_expression + ["begin" "end"] @keyword) +(quote_statement + ["quote" "end"] @keyword) +(let_statement + ["let" "end"] @keyword) + (if_statement ["if" "end"] @conditional) (elseif_clause @@ -100,61 +140,68 @@ (ternary_expression ["?" ":"] @conditional) -(function_definition ["function" "end"] @keyword.function) - -[ - "abstract" - "const" - "macro" - "primitive" - "struct" - "type" - "mutable" -] @keyword - -"return" @keyword.return - -((identifier) @keyword (#any-of? @keyword "global" "local")) - -(compound_expression - ["begin" "end"] @keyword) (try_statement - ["try" "end" ] @exception) + ["try" "end"] @exception) (finally_clause "finally" @exception) (catch_clause "catch" @exception) -(quote_statement - ["quote" "end"] @keyword) -(let_statement - ["let" "end"] @keyword) + (for_statement ["for" "end"] @repeat) (while_statement ["while" "end"] @repeat) -(break_statement) @repeat -(continue_statement) @repeat (for_clause "for" @repeat) -(do_clause - ["do" "end"] @keyword) - -"in" @keyword.operator - -(export_statement - ["export"] @include) - -(import_statement - ["import" "using"] @include) +[ + (break_statement) + (continue_statement) +] @repeat (module_definition - ["module" "end"] @include) + ["module" "baremodule" "end"] @include) +(import_statement + ["import" "using"] @include) +(export_statement + "export" @include) -((identifier) @include (#eq? @include "baremodule")) +(macro_definition + ["macro" "end" @keyword]) + +(function_definition + ["function" "end"] @keyword.function) +(do_clause + ["do" "end"] @keyword.function) +(function_expression + "->" @keyword.function) +(return_statement + "return" @keyword.return) + + +;;; Operators & Punctuation + +(operator) @operator +(for_binding ["in" "=" "∈"] @operator) +(pair_expression "=>" @operator) +(range_expression ":" @operator) + +(slurp_parameter "..." @operator) +(spread_expression "..." @operator) + +"." @operator +["::" "<:"] @operator + +["," ";"] @punctuation.delimiter +["(" ")" "[" "]" "{" "}"] @punctuation.bracket ;;; Literals +[ + (true) + (false) +] @boolean + (integer_literal) @number (float_literal) @float @@ -162,9 +209,6 @@ (#any-of? @float "NaN" "NaN16" "NaN32" "Inf" "Inf16" "Inf32")) -((identifier) @boolean - (#any-of? @boolean "true" "false")) - ((identifier) @constant.builtin (#any-of? @constant.builtin "nothing" "missing")) @@ -184,8 +228,3 @@ (block_comment) ] @comment -;;; Punctuation - -(quote_expression ":" @symbol) -["::" "." "," "..."] @punctuation.delimiter -["[" "]" "(" ")" "{" "}"] @punctuation.bracket From a4b10b60c16ca141ca1dae538479889dd6932270 Mon Sep 17 00:00:00 2001 From: Sergio Alejandro Vargas Date: Wed, 2 Nov 2022 16:21:44 -0500 Subject: [PATCH 0056/3265] refactor julia locals --- queries/julia/locals.scm | 96 +++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 36 deletions(-) diff --git a/queries/julia/locals.scm b/queries/julia/locals.scm index f8b34f71d..09b18cf77 100644 --- a/queries/julia/locals.scm +++ b/queries/julia/locals.scm @@ -1,59 +1,83 @@ +;;; Variables +(assignment_expression + (identifier) @definition.var) +(assignment_expression + (tuple_expression + (identifier) @definition.var)) +(assignment_expression + (bare_tuple_expression + (identifier) @definition.var)) -(import_statement - (identifier) @definition.import) + +;;; let/const bindings (variable_declaration (identifier) @definition.var) (variable_declaration (tuple_expression (identifier) @definition.var)) -(for_binding - (identifier) @definition.var) -(for_binding - (tuple_expression - (identifier) @definition.var)) -(assignment_expression - (tuple_expression - (identifier) @definition.var)) -(assignment_expression - (bare_tuple_expression - (identifier) @definition.var)) -(assignment_expression - (identifier) @definition.var) + +;;; For bindings +(for_binding + (identifier) @definition.var) +(for_binding + (tuple_expression + (identifier) @definition.var)) + + +;;; Types + +(struct_definition + name: (identifier) @definition.type) +(abstract_definition + name: (identifier) @definition.type) +(abstract_definition + name: (identifier) @definition.type) (type_parameter_list (identifier) @definition.type) -(type_argument_list - (identifier) @definition.type) -(struct_definition - name: (identifier) @definition.type) + +;;; Module imports + +(import_statement + (identifier) @definition.import) + + +;;; Parameters (parameter_list - (identifier) @definition.parameter) + (identifier) @definition.parameter) +(optional_parameter . + (identifier) @definition.parameter) +(slurp_parameter + (identifier) @definition.parameter) + (typed_parameter - (identifier) @definition.parameter - (identifier)) + parameter: (identifier) @definition.parameter + (_)) + (function_expression - . (identifier) @definition.parameter) -(argument_list - (typed_expression - (identifier) @definition.parameter - (identifier))) -(spread_parameter - (identifier) @definition.parameter) + . (identifier) @definition.parameter) ;; Single parameter arrow function + + +;;; Function/macro definitions (function_definition - name: (identifier) @definition.function) @scope + name: (identifier) @definition.function) @scope +(short_function_definition + name: (identifier) @definition.function) @scope (macro_definition - name: (identifier) @definition.macro) @scope + name: (identifier) @definition.macro) @scope (identifier) @reference [ - (try_statement) - (finally_clause) - (quote_statement) - (let_statement) - (compound_expression) (for_statement) + (while_statement) + (try_statement) + (catch_clause) + (finally_clause) + (let_statement) + (quote_statement) + (do_clause) ] @scope From 54a9ca47f7d834cf3814a556f514a9c49861133e Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 2 Nov 2022 22:08:54 +0000 Subject: [PATCH 0057/3265] Update lockfile.json --- lockfile.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lockfile.json b/lockfile.json index 52c93a0d2..2d2c9ea44 100644 --- a/lockfile.json +++ b/lockfile.json @@ -189,7 +189,7 @@ "revision": "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25" }, "kotlin": { - "revision": "a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569" + "revision": "f409360ceb4bc1421b28123c47bbecfb1349bfb3" }, "lalrpop": { "revision": "7744b56f03ac1e5643fad23c9dd90837fe97291e" @@ -330,7 +330,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "2743c7b5e710e6854d4e8c14c302548b436e2a1f" + "revision": "70c50264ae022193adb364ffa7a767d765ed9857" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" @@ -384,7 +384,7 @@ "revision": "4457145e795b363f072463e697dfe2f6973c9a52" }, "vim": { - "revision": "9736af8ef0a7f20b4c45f6474342c8f5b473e2cc" + "revision": "4ae7bd67706d7e10afed827ce2ded884ab41650f" }, "vue": { "revision": "91fe2754796cd8fba5f229505a23fa08f3546c06" @@ -399,6 +399,6 @@ "revision": "8e9d175982afcefa3dac8ca20d40d1643accd2bd" }, "zig": { - "revision": "b1803f2a665d228f968a831eac4fcc07a377c7bc" + "revision": "d90d38d28ce8cc27bfea8b4e0c75211e9e2398ca" } } From 58f61e563fadd1788052586f4d6869a99022df3c Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 3 Nov 2022 06:48:18 +0000 Subject: [PATCH 0058/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 2d2c9ea44..29efc9b67 100644 --- a/lockfile.json +++ b/lockfile.json @@ -189,7 +189,7 @@ "revision": "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25" }, "kotlin": { - "revision": "f409360ceb4bc1421b28123c47bbecfb1349bfb3" + "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" }, "lalrpop": { "revision": "7744b56f03ac1e5643fad23c9dd90837fe97291e" @@ -288,7 +288,7 @@ "revision": "0f4f66e5050037b759ea040dafd596bcdda1de94" }, "racket": { - "revision": "b9b2e7454d7098e44595dd8c1b471b9d1518b910" + "revision": "69ca563af3bcf9d67220532e0814786f2dc34db1" }, "rasi": { "revision": "12391343979463a2484e6353e5afb6dcb8c31e8b" From c563abe92848a4581395f8f176b6f3f549144fbe Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 5 Nov 2022 06:45:07 +0000 Subject: [PATCH 0059/3265] Update lockfile.json --- lockfile.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lockfile.json b/lockfile.json index 29efc9b67..432811fbb 100644 --- a/lockfile.json +++ b/lockfile.json @@ -21,7 +21,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "5b60f99545fea00a33bbfae5be956f684c4c69e2" + "revision": "aa65ad51f04e4c9d41dce117597f2b4d24a16bfb" }, "clojure": { "revision": "087bac78c53fe1387756cd5b8e68a69b3f6d7244" @@ -78,7 +78,7 @@ "revision": "f32711e31e987fd5c2c002f3daba02f25c68672f" }, "embedded_template": { - "revision": "1a538da253d73f896b9f6c0c7d79cda58791ac5c" + "revision": "91fc5ae1140d5c9d922312431f7d251a48d7b8ce" }, "erlang": { "revision": "3a9c769444f08bbccce03845270efac0c641c5e7" @@ -186,7 +186,7 @@ "revision": "0475a5017ad7dc84845d1d33187f2321abcb261d" }, "julia": { - "revision": "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25" + "revision": "2f885efd38a6a6abfefc81d53ecdd99812dcde69" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" @@ -309,7 +309,7 @@ "revision": "c91960320d0f337bdd48308a8ad5500bd2616979" }, "rust": { - "revision": "47b061c1e1ba3a7e9c2f450363a50e87de3f7c61" + "revision": "0431a2c60828731f27491ee9fdefe25e250ce9c9" }, "scala": { "revision": "140c96cf398693189d4e50f76d19ddfcd8a018f8" @@ -375,7 +375,7 @@ "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" }, "v": { - "revision": "d0e7c755193c762eb1521e3b4740b22929cc91cc" + "revision": "66b92a89ef1e149300df79c0b2a934ad959c8eec" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From dd89cafd2bc5ddbb201b6b1ea72ecd11acbe4e31 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 5 Nov 2022 10:31:02 +0100 Subject: [PATCH 0060/3265] fix(rust): update queries to breaking changes * `if_let_expression` was removed in https://github.com/tree-sitter/tree-sitter-rust/pull/152 * `attributes` were reworked in https://github.com/tree-sitter/tree-sitter-rust/pull/163 (no more `meta-item`) --- queries/rust/folds.scm | 1 - queries/rust/highlights.scm | 12 ++++++------ queries/rust/locals.scm | 3 +-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/queries/rust/folds.scm b/queries/rust/folds.scm index d83351cb4..97cf2eafb 100644 --- a/queries/rust/folds.scm +++ b/queries/rust/folds.scm @@ -14,7 +14,6 @@ (for_expression) (while_expression) (if_expression) - (if_let_expression) (match_expression) (call_expression) diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index c08912bea..3df682c34 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -121,14 +121,14 @@ (macro_definition "macro_rules!" @function.macro) ;; Attribute macros -(attribute_item (meta_item (identifier) @function.macro)) -(meta_item (scoped_identifier (identifier) @function.macro .)) +(attribute_item (attribute (identifier) @function.macro)) +(attribute (scoped_identifier (identifier) @function.macro .)) ;; Derive macros (assume all arguments are types) -(meta_item - (identifier) @_name - arguments: (meta_arguments (meta_item (identifier) @type)) - (#eq? @_name "derive")) +; (attribute +; (identifier) @_name +; arguments: (attribute (attribute (identifier) @type)) +; (#eq? @_name "derive")) ;; Function-like macros (macro_invocation diff --git a/queries/rust/locals.scm b/queries/rust/locals.scm index 010bf4afd..1cefcabf3 100644 --- a/queries/rust/locals.scm +++ b/queries/rust/locals.scm @@ -34,7 +34,7 @@ (tuple_pattern (identifier) @definition.var) -(if_let_expression +(let_condition pattern: (_ (identifier) @definition.var)) @@ -93,7 +93,6 @@ (for_expression) (loop_expression) (if_expression) - (if_let_expression) (match_expression) (match_arm) From 57638f8249819fbc0ffc073981b1c4f875dac7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alvaro=20Mu=C3=B1oz?= Date: Wed, 2 Nov 2022 23:41:01 +0100 Subject: [PATCH 0061/3265] feat(ql): add folding queries --- queries/ql/folds.scm | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 queries/ql/folds.scm diff --git a/queries/ql/folds.scm b/queries/ql/folds.scm new file mode 100644 index 000000000..1a31eeb20 --- /dev/null +++ b/queries/ql/folds.scm @@ -0,0 +1,7 @@ +[ + (module) + (classlessPredicate) + (dataclass) + (charpred) + (memberPredicate) +] @fold From 3256eb2cc5b2cbe17d1d55a6e5605ab55be25693 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 5 Nov 2022 16:49:03 +0000 Subject: [PATCH 0062/3265] Update lockfile.json --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index 432811fbb..9643340bf 100644 --- a/lockfile.json +++ b/lockfile.json @@ -60,7 +60,7 @@ "revision": "330eb648bbc257b4e91621e82a85372be7dde27a" }, "dockerfile": { - "revision": "25c71d6a24cdba8f0c74ef40d4d2d93defd7e196" + "revision": "f913be9bb8689af22114605012693146fbe9ddaa" }, "dot": { "revision": "9ab85550c896d8b294d9b9ca1e30698736f08cea" @@ -156,7 +156,7 @@ "revision": "384b26ec65e10f26cf147bfcde772c50ca5ef0d0" }, "hocon": { - "revision": "bb412e2633f4a3611a4e16efe58d917093bb4782" + "revision": "dd53316168106fd921e7234d75aa94e47b119479" }, "html": { "revision": "29f53d8f4f2335e61bf6418ab8958dac3282077a" @@ -252,7 +252,7 @@ "revision": "2fd40f477d3e2794af152618ccfac8d92eb72a66" }, "perl": { - "revision": "ff5c3108083af6fcb7575e32a7558b8165a05bcd" + "revision": "749d26fe13fb131b92e6515416096e572575b981" }, "php": { "revision": "ab2e72179ceb8bb0b249c8ac9162a148e911b3dc" From 1fa45d8c793282d9a65044666e977220f91a2dd7 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 6 Nov 2022 06:44:33 +0000 Subject: [PATCH 0063/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 9643340bf..dccfd0eae 100644 --- a/lockfile.json +++ b/lockfile.json @@ -186,7 +186,7 @@ "revision": "0475a5017ad7dc84845d1d33187f2321abcb261d" }, "julia": { - "revision": "2f885efd38a6a6abfefc81d53ecdd99812dcde69" + "revision": "bedd19f3c3d745c3da8451a35c7bfc5f48d07ee6" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" From f6bc84dabdf6e201c25df2a1f5e1bb5748c833d1 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 6 Nov 2022 11:03:23 +0100 Subject: [PATCH 0064/3265] fix: update julia queries to parser change --- queries/julia/folds.scm | 2 +- queries/julia/highlights.scm | 2 +- queries/julia/indents.scm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/queries/julia/folds.scm b/queries/julia/folds.scm index a8cfc9406..617182155 100644 --- a/queries/julia/folds.scm +++ b/queries/julia/folds.scm @@ -12,6 +12,6 @@ (quote_statement) (do_clause) - (compound_expression) + (compound_statement) ] @fold diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index f0e53c2c3..96ca1c499 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -124,7 +124,7 @@ ((identifier) @keyword (#any-of? @keyword "global" "local")) ; Grammar error -(compound_expression +(compound_statement ["begin" "end"] @keyword) (quote_statement ["quote" "end"] @keyword) diff --git a/queries/julia/indents.scm b/queries/julia/indents.scm index e6423d342..9cfdc4076 100644 --- a/queries/julia/indents.scm +++ b/queries/julia/indents.scm @@ -11,7 +11,7 @@ (quote_statement) (do_clause) - (compound_expression) + (compound_statement) (assignment_expression) (binary_expression) From 2ed6c60aceae6f4dbb98d7952968e76de79ee660 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 6 Nov 2022 10:13:10 +0000 Subject: [PATCH 0065/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index dccfd0eae..ac15da77f 100644 --- a/lockfile.json +++ b/lockfile.json @@ -288,7 +288,7 @@ "revision": "0f4f66e5050037b759ea040dafd596bcdda1de94" }, "racket": { - "revision": "69ca563af3bcf9d67220532e0814786f2dc34db1" + "revision": "09cb27a06415bce529a26774a842f5a80d50d362" }, "rasi": { "revision": "12391343979463a2484e6353e5afb6dcb8c31e8b" @@ -315,7 +315,7 @@ "revision": "140c96cf398693189d4e50f76d19ddfcd8a018f8" }, "scheme": { - "revision": "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9" + "revision": "bdcd2c8496701153506a9e3e1b76dfed852873ba" }, "scss": { "revision": "c478c6868648eff49eb04a4df90d703dc45b312a" From ae104a057fc4164af8884f0b5540c79be95f5fc5 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 6 Nov 2022 11:26:54 +0100 Subject: [PATCH 0066/3265] fix: update scheme queries to parser change --- queries/scheme/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/scheme/highlights.scm b/queries/scheme/highlights.scm index 4a7393eb0..497512b87 100644 --- a/queries/scheme/highlights.scm +++ b/queries/scheme/highlights.scm @@ -81,7 +81,7 @@ ;; quote -(abbreviation +(quote "'" (symbol)) @symbol From 8c7ffaf66beb16cc22c2cf87dc07bf7776a7b2f9 Mon Sep 17 00:00:00 2001 From: Cormac Relf Date: Tue, 18 Oct 2022 13:02:22 +0200 Subject: [PATCH 0067/3265] highlights(rust): panic!() and assert!() as @exception --- queries/rust/highlights.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index 3df682c34..01a627734 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -273,3 +273,8 @@ (inner_attribute_item ["!" "#"] @punctuation.special) (macro_invocation "!" @function.macro) (empty_type "!" @type.builtin) + +(macro_invocation macro: (identifier) @_ident @exception "!" @exception + (#eq? @_ident "panic")) +(macro_invocation macro: (identifier) @_ident @exception "!" @exception + (#contains? @_ident "assert")) From 15d3849dcfc210e04af65809360b9bc9c50ee383 Mon Sep 17 00:00:00 2001 From: Cormac Relf Date: Tue, 18 Oct 2022 11:44:54 +0200 Subject: [PATCH 0068/3265] highlights(rust): highlight Type in Type::Associated as @type instead of @namespace --- queries/rust/highlights.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index 01a627734..06366df33 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -71,6 +71,9 @@ name: (identifier) @namespace)) (scoped_type_identifier path: (identifier) @namespace) +(scoped_type_identifier + path: (identifier) @type + (#lua-match? @type "^[A-Z]")) (scoped_type_identifier (scoped_identifier name: (identifier) @namespace)) From 1379119c31680c353c5dda7dc25b4d3aadad5c5f Mon Sep 17 00:00:00 2001 From: Cormac Relf Date: Tue, 18 Oct 2022 12:10:13 +0200 Subject: [PATCH 0069/3265] highlights(rust): "for" @keyword everywhere else (for<'a>, HRTBs) --- queries/rust/highlights.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index 06366df33..6311e185c 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -219,8 +219,7 @@ "while" ] @repeat -(impl_item - "for" @keyword) +"for" @keyword (for_expression "for" @repeat) From 68c35338520168202ee9aed3cf081ad82b988144 Mon Sep 17 00:00:00 2001 From: Cormac Relf Date: Tue, 18 Oct 2022 12:11:25 +0200 Subject: [PATCH 0070/3265] highlights(rust): ["<" ">"] @punctuation.bracket in bracketed_type, for_lifetimes --- queries/rust/highlights.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index 6311e185c..5eede6a8a 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -268,6 +268,8 @@ (closure_parameters "|" @punctuation.bracket) (type_arguments ["<" ">"] @punctuation.bracket) (type_parameters ["<" ">"] @punctuation.bracket) +(bracketed_type ["<" ">"] @punctuation.bracket) +(for_lifetimes ["<" ">"] @punctuation.bracket) ["," "." ":" "::" ";"] @punctuation.delimiter From 00add7e4b497f19fcdd335778f0e39d658543c9f Mon Sep 17 00:00:00 2001 From: Cormac Relf Date: Thu, 20 Oct 2022 18:32:23 +0200 Subject: [PATCH 0071/3265] highlights(rust): pub(self/super/crate), use super::thing, etc --- queries/rust/highlights.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index 5eede6a8a..779309f6e 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -204,7 +204,8 @@ (use_list (self) @keyword) (scoped_use_list (self) @keyword) -(scoped_identifier (self) @keyword) +(scoped_identifier [(crate) (super) (self)] @keyword) +(visibility_modifier [(crate) (super) (self)] @keyword) [ "else" From 00b42ac6d4c852d34619eaf2ea822266588d75e3 Mon Sep 17 00:00:00 2001 From: Trard Date: Sat, 15 Oct 2022 15:47:15 +0300 Subject: [PATCH 0072/3265] rust: use @type.qualifier and @storageclass --- CONTRIBUTING.md | 17 +++++++++-------- queries/rust/highlights.scm | 17 ++++++++++++----- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ea3cbc408..5a6fd71ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -156,15 +156,16 @@ effect on highlighting. We will work on improving highlighting in the near futur #### Types ```scheme -@type ; type or class definitions and annotations -@type.builtin ; built-in types -@type.definition ; type definitions (e.g. `typedef` in C) -@type.qualifier ; type qualifiers (e.g. `const`) +@type ; type or class definitions and annotations +@type.builtin ; built-in types +@type.definition ; type definitions (e.g. `typedef` in C) +@type.qualifier ; type qualifiers (e.g. `const`) -@storageclass ; visibility/life-time/etc. modifiers (e.g. `static`) -@attribute ; attribute annotations (e.g. Python decorators) -@field ; object and struct fields -@property ; similar to `@field` +@storageclass ; visibility/life-time modifiers +@storageclass.lifetime ; life-time modifiers (e.g. `static`) +@attribute ; attribute annotations (e.g. Python decorators) +@field ; object and struct fields +@property ; similar to `@field` ``` #### Identifiers diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index 779309f6e..c7cd1174b 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -25,7 +25,6 @@ (self) @variable.builtin -(lifetime ["'" (identifier)] @label) (loop_label ["'" (identifier)] @label) @@ -172,7 +171,6 @@ [ "async" "await" - "const" "default" "dyn" "enum" @@ -182,17 +180,26 @@ "match" "move" "pub" - "ref" - "static" "struct" "trait" "type" "union" "unsafe" "where" - (mutable_specifier) ] @keyword +[ + "ref" + (mutable_specifier) +] @type.qualifier + +[ + "const" + "static" +] @storageclass + +(lifetime ["'" (identifier)] @storageclass.lifetime) + "fn" @keyword.function [ "return" From d37fc85a4060352bcd4d8cbed0907cba442deb90 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 8 Nov 2022 06:48:20 +0000 Subject: [PATCH 0073/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index ac15da77f..519d2cfe3 100644 --- a/lockfile.json +++ b/lockfile.json @@ -156,7 +156,7 @@ "revision": "384b26ec65e10f26cf147bfcde772c50ca5ef0d0" }, "hocon": { - "revision": "dd53316168106fd921e7234d75aa94e47b119479" + "revision": "c390f10519ae69fdb03b3e5764f5592fb6924bcc" }, "html": { "revision": "29f53d8f4f2335e61bf6418ab8958dac3282077a" From 1942f3554184e9d9dfb90dcc6542047b8f6511f2 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 9 Nov 2022 16:44:24 +0000 Subject: [PATCH 0074/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 519d2cfe3..80c51562b 100644 --- a/lockfile.json +++ b/lockfile.json @@ -21,7 +21,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "aa65ad51f04e4c9d41dce117597f2b4d24a16bfb" + "revision": "3ef3f7f99e16e528e6689eae44dff35150993307" }, "clojure": { "revision": "087bac78c53fe1387756cd5b8e68a69b3f6d7244" From 47bda4171aad2ee990a35ddb6319ceedc4d78b5d Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 11 Nov 2022 06:52:06 +0000 Subject: [PATCH 0075/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 80c51562b..7a42a2d9d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -285,7 +285,7 @@ "revision": "0695cd0760532de7b54f23c667d459b5d1332b44" }, "r": { - "revision": "0f4f66e5050037b759ea040dafd596bcdda1de94" + "revision": "80efda55672d1293aa738f956c7ae384ecdc31b4" }, "racket": { "revision": "09cb27a06415bce529a26774a842f5a80d50d362" From 08cbb2f8b3abbd3e7cb47798f15f59e97ad6a629 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 12 Nov 2022 06:45:06 +0000 Subject: [PATCH 0076/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 7a42a2d9d..a76278e2d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -186,7 +186,7 @@ "revision": "0475a5017ad7dc84845d1d33187f2321abcb261d" }, "julia": { - "revision": "bedd19f3c3d745c3da8451a35c7bfc5f48d07ee6" + "revision": "58d0701550b4cce02acf433eedada03b634cc524" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" From 692432df294ef3881f450dc80839e21c978cde28 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 12 Nov 2022 10:28:50 +0100 Subject: [PATCH 0077/3265] julia: update queries to parser change --- queries/julia/highlights.scm | 7 ++----- queries/julia/locals.scm | 4 ---- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index 96ca1c499..8d30ff558 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -21,7 +21,7 @@ (field_expression (identifier) @field .) -(subscript_expression +(index_expression (_) (range_expression (identifier) @constant.builtin .) @@ -87,14 +87,11 @@ ;; Annotations -(parameterized_identifier (_) @type) +(parametrized_type_expression (_) @type) (type_parameter_list (identifier) @type) -(type_argument_list - (identifier) @type) - (typed_expression (identifier) @type .) diff --git a/queries/julia/locals.scm b/queries/julia/locals.scm index 09b18cf77..655affe00 100644 --- a/queries/julia/locals.scm +++ b/queries/julia/locals.scm @@ -4,10 +4,6 @@ (assignment_expression (tuple_expression (identifier) @definition.var)) -(assignment_expression - (bare_tuple_expression - (identifier) @definition.var)) - ;;; let/const bindings (variable_declaration From 313daf25e87f7ad5f97f0ce6e277b0165f2c92f3 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 13 Nov 2022 06:45:09 +0000 Subject: [PATCH 0078/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index a76278e2d..f6e85003a 100644 --- a/lockfile.json +++ b/lockfile.json @@ -342,7 +342,7 @@ "revision": "52e122ae68b316d3aa960a0a422d3645ba717f42" }, "swift": { - "revision": "d7808f030a44dc8768948042baa7566949785e2f" + "revision": "25f8de356e3c33099ed691bd3b8b5c0fe3a11e15" }, "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" From eff0d43b49f17a3d5a12d9112f439abf4ca249cd Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Sun, 13 Nov 2022 08:33:54 -0300 Subject: [PATCH 0079/3265] feat: vhs (.tape) support (#3726) --- README.md | 1 + lockfile.json | 3 +++ lua/nvim-treesitter/parsers.lua | 11 ++++++++++ queries/vhs/highlights.scm | 38 +++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 queries/vhs/highlights.scm diff --git a/README.md b/README.md index 868420835..6398eda3a 100644 --- a/README.md +++ b/README.md @@ -302,6 +302,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [verilog](https://github.com/tree-sitter/tree-sitter-verilog) (maintained by @zegervdv) - [x] [vim](https://github.com/vigoux/tree-sitter-viml) (maintained by @vigoux) - [x] [vue](https://github.com/ikatyang/tree-sitter-vue) (maintained by @WhyNotHugo) +- [x] [vhs](https://github.com/charmbracelet/tree-sitter-vhs) (maintained by @caarlos0, @maaslalani) - [x] [wgsl](https://github.com/szebniok/tree-sitter-wgsl) (maintained by @szebniok) - [x] [yaml](https://github.com/ikatyang/tree-sitter-yaml) (maintained by @stsewd) - [x] [yang](https://github.com/Hubro/tree-sitter-yang) (maintained by @Hubro) diff --git a/lockfile.json b/lockfile.json index f6e85003a..a760414ac 100644 --- a/lockfile.json +++ b/lockfile.json @@ -383,6 +383,9 @@ "verilog": { "revision": "4457145e795b363f072463e697dfe2f6973c9a52" }, + "vhs": { + "revision": "3ca6b9603422a1311e7c9eb85d30cd5bf6e5dc74" + }, "vim": { "revision": "4ae7bd67706d7e10afed827ce2ded884ab41650f" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 8fe4225e0..6d444cde1 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -18,6 +18,7 @@ local filetype_to_parsername = { pandoc = "markdown", rmd = "markdown", cs = "c_sharp", + tape = "vhs", } ---@class InstallInfo @@ -1282,6 +1283,16 @@ list.diff = { filetype = "gitdiff", } +list.vhs = { + install_info = { + url = "https://github.com/charmbracelet/tree-sitter-vhs", + branch = "main", + files = { "src/parser.c" }, + }, + maintainers = { "@caarlos0", "@maaslalani" }, + filetype = "tape", +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/vhs/highlights.scm b/queries/vhs/highlights.scm new file mode 100644 index 000000000..67fa3cf8a --- /dev/null +++ b/queries/vhs/highlights.scm @@ -0,0 +1,38 @@ +[ + "Output" + "Backspace" + "Down" + "Enter" + "Escape" + "Left" + "Right" + "Space" + "Tab" + "Up" + "Set" + "Type" + "Sleep" + "Hide" + "Show" ] @keyword + +[ "Shell" + "FontFamily" + "FontSize" + "Framerate" + "PlaybackSpeed" + "Height" + "LetterSpacing" + "TypingSpeed" + "LineHeight" + "Padding" + "Theme" + "LoopOffset" + "Width" ] @type + +[ "@" ] @operator +(control) @function.macro +(float) @float +(integer) @number +(comment) @comment @spell +[(path) (string) (json)] @string +(time) @symbol From 1d443fe78f5ebe0d8ad34fa98677801fdb0826d7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 13 Nov 2022 11:43:28 +0000 Subject: [PATCH 0080/3265] Update README (#3802) Co-authored-by: Github Actions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6398eda3a..7ecaa0e0b 100644 --- a/README.md +++ b/README.md @@ -300,9 +300,9 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [v](https://github.com/vlang/vls) (maintained by @tami5) - [x] [vala](https://github.com/vala-lang/tree-sitter-vala) (maintained by @Prince781, @vala-lang) - [x] [verilog](https://github.com/tree-sitter/tree-sitter-verilog) (maintained by @zegervdv) +- [x] [vhs](https://github.com/charmbracelet/tree-sitter-vhs) (maintained by @caarlos0, @maaslalani) - [x] [vim](https://github.com/vigoux/tree-sitter-viml) (maintained by @vigoux) - [x] [vue](https://github.com/ikatyang/tree-sitter-vue) (maintained by @WhyNotHugo) -- [x] [vhs](https://github.com/charmbracelet/tree-sitter-vhs) (maintained by @caarlos0, @maaslalani) - [x] [wgsl](https://github.com/szebniok/tree-sitter-wgsl) (maintained by @szebniok) - [x] [yaml](https://github.com/ikatyang/tree-sitter-yaml) (maintained by @stsewd) - [x] [yang](https://github.com/Hubro/tree-sitter-yang) (maintained by @Hubro) From 2072692aaa4b6da7c354e66c2caf4b0a8f736858 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 13 Nov 2022 11:51:15 +0000 Subject: [PATCH 0081/3265] Update lockfile.json (#3803) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index a760414ac..fff6e13b4 100644 --- a/lockfile.json +++ b/lockfile.json @@ -384,7 +384,7 @@ "revision": "4457145e795b363f072463e697dfe2f6973c9a52" }, "vhs": { - "revision": "3ca6b9603422a1311e7c9eb85d30cd5bf6e5dc74" + "revision": "2f87b9d973597e69552ecf6a4fe16470fbd8c44e" }, "vim": { "revision": "4ae7bd67706d7e10afed827ce2ded884ab41650f" From 34807c605a1adaa9fe3056c3c902ee2eb562408a Mon Sep 17 00:00:00 2001 From: FallenAngel97 Date: Wed, 16 Nov 2022 10:35:41 +0200 Subject: [PATCH 0082/3265] rego: update parser and queries (#3805) Co-authored-by: Oleksii Demennikov --- lockfile.json | 2 +- queries/rego/highlights.scm | 70 +++++++++++++++++++++++++++++++------ 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/lockfile.json b/lockfile.json index fff6e13b4..4e3df4001 100644 --- a/lockfile.json +++ b/lockfile.json @@ -297,7 +297,7 @@ "revision": "e1cfca3c79896ff79842f057ea13e529b66af636" }, "rego": { - "revision": "6d70da3a998fd0081efc5d1019c71e74cc1568e9" + "revision": "8778c41757e2ae6738d64da114ea23868dedf349" }, "rnoweb": { "revision": "502c1126dc6777f09af5bef16e72a42f75bd081e" diff --git a/queries/rego/highlights.scm b/queries/rego/highlights.scm index 70bf849aa..42d276cd2 100644 --- a/queries/rego/highlights.scm +++ b/queries/rego/highlights.scm @@ -1,16 +1,64 @@ ; highlights.scm -"import" @include -"package" @include +[ + (import) + (package) +] @include +[ + (with) + (as) + (every) + (some) + (in) + (not) + (if) + (contains) + (else) + (default) + "null" +] @keyword + +[ + "true" + "false" +] @boolean + +[ + (assignment_operator) + (bool_operator) + (arith_operator) + (bin_operator) +] @operator + +[ + (string) + (raw_string) +] @string + +(term (ref (var))) @variable -(reserved_keywords) @keyword (comment) @comment -(rego_block rego_rule_name: (identifier) @function) -(builtin_function function_name: (function_name) @function.builtin) -(opening_parameter) @punctuation.bracket -(closing_parameter) @punctuation.bracket -(string_definition) @string + (number) @number -(operator) @operator -(true) @boolean -(false) @boolean + +(expr_call func_name: (fn_name (var) @function .)) + +(expr_call func_arguments: (fn_args (expr) @parameter)) + +(rule_args (term) @parameter) + +[ + (open_paren) + (close_paren) + (open_bracket) + (close_bracket) + (open_curly) + (close_curly) +] @punctuation.bracket + +(rule (rule_head (var) @method)) + +(rule + (rule_head (term (ref (var) @namespace))) + (rule_body (query (literal (expr (expr_infix (expr (term (ref (var)) @_output)))))) (#eq? @_output @namespace)) +) From 580c59cb50a17a663c1e8b4185a82adca69c29a7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 08:45:37 +0000 Subject: [PATCH 0083/3265] Update lockfile.json (#3812) Co-authored-by: GitHub --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 4e3df4001..84316e5f0 100644 --- a/lockfile.json +++ b/lockfile.json @@ -186,7 +186,7 @@ "revision": "0475a5017ad7dc84845d1d33187f2321abcb261d" }, "julia": { - "revision": "58d0701550b4cce02acf433eedada03b634cc524" + "revision": "628713553c42f30595a3b0085bb587e9359b986a" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" @@ -297,7 +297,7 @@ "revision": "e1cfca3c79896ff79842f057ea13e529b66af636" }, "rego": { - "revision": "8778c41757e2ae6738d64da114ea23868dedf349" + "revision": "6174f05f58e8c35d8c82323dd8c599b90b3171b3" }, "rnoweb": { "revision": "502c1126dc6777f09af5bef16e72a42f75bd081e" From a715e9331265a921281d0c1eb8281324ead41cbd Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 26 Sep 2022 19:25:26 +0300 Subject: [PATCH 0084/3265] feat: add awk --- lua/nvim-treesitter/parsers.lua | 7 ++ queries/awk/highlights.scm | 154 ++++++++++++++++++++++++++++++++ queries/awk/injections.scm | 2 + 3 files changed, 163 insertions(+) create mode 100644 queries/awk/highlights.scm create mode 100644 queries/awk/injections.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 6d444cde1..e2e521224 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1293,6 +1293,13 @@ list.vhs = { filetype = "tape", } +list.awk = { + install_info = { + url = "https://github.com/Beaglefoot/tree-sitter-awk", + files = { "src/parser.c", "src/scanner.c" }, + }, +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/awk/highlights.scm b/queries/awk/highlights.scm new file mode 100644 index 000000000..918d0116e --- /dev/null +++ b/queries/awk/highlights.scm @@ -0,0 +1,154 @@ +; adapted from https://github.com/Beaglefoot/tree-sitter-awk + +[ + (identifier) + (field_ref) +] @variable +(field_ref (_) @variable) + +(number) @number + +(string) @string +(regex) @string.regex +(escape_sequence) @string.escape + +(comment) @comment @spell + +(ns_qualified_name (namespace) @namespace) +(ns_qualified_name "::" @punctuation.delimiter) + +(func_def name: (_ (identifier) @function) @function) +(func_call name: (_ (identifier) @function) @function) + +(func_def (param_list (identifier) @parameter)) + +[ + "print" + "printf" + "getline" +] @function.builtin + +[ + (delete_statement) + (break_statement) + (continue_statement) + (next_statement) + (nextfile_statement) +] @keyword + +[ + "func" + "function" +] @keyword.function + +[ + "return" + "exit" +] @keyword.return + +[ + "do" + "while" + "for" + "in" +] @repeat + +[ + "if" + "else" + "switch" + "case" + "default" +] @conditional + +[ + "@include" + "@load" +] @include + +"@namespace" @preproc + +[ + "BEGIN" + "END" + "BEGINFILE" + "ENDFILE" +] @label + +(binary_exp [ + "^" + "**" + "*" + "/" + "%" + "+" + "-" + "<" + ">" + "<=" + ">=" + "==" + "!=" + "~" + "!~" + "in" + "&&" + "||" +] @operator) + +(unary_exp [ + "!" + "+" + "-" +] @operator) + +(assignment_exp [ + "=" + "+=" + "-=" + "*=" + "/=" + "%=" + "^=" +] @operator) + +(ternary_exp [ + "?" + ":" +] @operator) + +(update_exp [ + "++" + "--" +] @operator) + +(redirected_io_statement [ + ">" + ">>" +] @operator) + +(piped_io_statement [ + "|" + "|&" +] @operator) + +(piped_io_exp [ + "|" + "|&" +] @operator) + +(field_ref "$" @punctuation.delimiter) + +(regex "/" @punctuation.delimiter) +(regex_constant "@" @punctuation.delimiter) + +[ ";" "," ] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket diff --git a/queries/awk/injections.scm b/queries/awk/injections.scm new file mode 100644 index 000000000..8cbffc623 --- /dev/null +++ b/queries/awk/injections.scm @@ -0,0 +1,2 @@ +(comment) @comment +(regex) @regex From 7b5fcf943c08e30a5c1630dc1b34bfd9124fe4b5 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Wed, 16 Nov 2022 09:45:34 +0000 Subject: [PATCH 0085/3265] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ecaa0e0b..cc6742cd0 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [agda](https://github.com/AusCyberman/tree-sitter-agda) (maintained by @Decodetalkers) - [x] [astro](https://github.com/virchau13/tree-sitter-astro) (maintained by @virchau13) +- [ ] [awk](https://github.com/Beaglefoot/tree-sitter-awk) - [x] [bash](https://github.com/tree-sitter/tree-sitter-bash) (maintained by @TravonteD) - [x] [beancount](https://github.com/polarmutex/tree-sitter-beancount) (maintained by @polarmutex) - [x] [bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) (maintained by @theHamsta, @clason) From dc27512e0019dcf4b6fbf0e0d5f285b4c9858308 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 16 Nov 2022 09:46:49 +0000 Subject: [PATCH 0086/3265] Update lockfile.json --- lockfile.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lockfile.json b/lockfile.json index 84316e5f0..df48b75c1 100644 --- a/lockfile.json +++ b/lockfile.json @@ -5,6 +5,9 @@ "astro": { "revision": "947e93089e60c66e681eba22283f4037841451e7" }, + "awk": { + "revision": "a799bc5da7c2a84bc9a06ba5f3540cf1191e4ee3" + }, "bash": { "revision": "77cf8a7cab8904baf1a721762e012644ac1d4c7b" }, From 9705316fff7a16ba6c70c26a6afd77d00a7e8b2e Mon Sep 17 00:00:00 2001 From: Derek Stride Date: Fri, 18 Nov 2022 09:20:39 -0500 Subject: [PATCH 0087/3265] sql: update parser and query (#3820) Add better `term` nodes in the select expression --- lockfile.json | 2 +- queries/sql/highlights.scm | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index df48b75c1..4b9de02c6 100644 --- a/lockfile.json +++ b/lockfile.json @@ -333,7 +333,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "70c50264ae022193adb364ffa7a767d765ed9857" + "revision": "56d33747de8dad6cf92356245e8e8ea7a2654947" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" diff --git a/queries/sql/highlights.scm b/queries/sql/highlights.scm index f4db50dd8..c546e040a 100644 --- a/queries/sql/highlights.scm +++ b/queries/sql/highlights.scm @@ -24,6 +24,9 @@ table_alias: (identifier) @variable name: (identifier) @field) +(term + alias: (identifier) @variable) + (literal) @string (comment) @comment (marginalia) @comment From 63b6f1f98460666ef5278f1d5795374245114550 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Wed, 26 Oct 2022 12:58:34 +0300 Subject: [PATCH 0088/3265] feat(arduino): separate from cpp --- lua/nvim-treesitter/parsers.lua | 9 ++- queries/arduino/folds.scm | 1 + queries/arduino/highlights.scm | 111 ++++++++++++++++++++++++++++++++ queries/arduino/indents.scm | 1 + queries/arduino/injections.scm | 3 + queries/arduino/locals.scm | 1 + 6 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 queries/arduino/folds.scm create mode 100644 queries/arduino/highlights.scm create mode 100644 queries/arduino/indents.scm create mode 100644 queries/arduino/injections.scm create mode 100644 queries/arduino/locals.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index e2e521224..2860dee53 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2,7 +2,6 @@ local api = vim.api local ts = vim.treesitter local filetype_to_parsername = { - arduino = "cpp", javascriptreact = "javascript", ecma = "javascript", jsx = "javascript", @@ -1300,6 +1299,14 @@ list.awk = { }, } +list.arduino = { + install_info = { + url = "https://github.com/ObserverOfTime/tree-sitter-arduino", + files = { "src/parser.c", "src/scanner.cc" }, + }, + maintainers = { "@ObserverOfTime" }, +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/arduino/folds.scm b/queries/arduino/folds.scm new file mode 100644 index 000000000..b617fdc56 --- /dev/null +++ b/queries/arduino/folds.scm @@ -0,0 +1 @@ +; inherits: cpp diff --git a/queries/arduino/highlights.scm b/queries/arduino/highlights.scm new file mode 100644 index 000000000..a4e74ae89 --- /dev/null +++ b/queries/arduino/highlights.scm @@ -0,0 +1,111 @@ +; inherits: cpp + +((identifier) @function.builtin + (#any-of? @function.builtin + ; Digital I/O + "digitalRead" + "digitalWrite" + "pinMode" + ; Analog I/O + "analogRead" + "analogReference" + "analogWrite" + ; Zero, Due & MKR Family + "analogReadResolution" + "analogWriteResolution" + ; Advanced I/O + "noTone" + "pulseIn" + "pulseInLong" + "shiftIn" + "shiftOut" + "tone" + ; Time + "delay" + "delayMicroseconds" + "micros" + "millis" + ; Math + "abs" + "constrain" + "map" + "max" + "min" + "pow" + "sq" + "sqrt" + ; Trigonometry + "cos" + "sin" + "tan" + ; Characters + "isAlpha" + "isAlphaNumeric" + "isAscii" + "isControl" + "isDigit" + "isGraph" + "isHexadecimalDigit" + "isLowerCase" + "isPrintable" + "isPunct" + "isSpace" + "isUpperCase" + "isWhitespace" + ; Random Numbers + "random" + "randomSeed" + ; Bits and Bytes + "bit" + "bitClear" + "bitRead" + "bitSet" + "bitWrite" + "highByte" + "lowByte" + ; External Interrupts + "attachInterrupt" + "detachInterrupt" + ; Interrupts + "interrupts" + "noInterrupts" + )) + +((identifier) @type.builtin + (#any-of? @type.builtin + "Serial" + "SPI" + "Stream" + "Wire" + "Keyboard" + "Mouse" + "String" + )) + +((identifier) @constant.builtin + (#any-of? @constant.builtin + "HIGH" + "LOW" + "INPUT" + "OUTPUT" + "INPUT_PULLUP" + "LED_BUILTIN" + )) + +(function_definition + (function_declarator + declarator: (identifier) @function.builtin) + (#any-of? @function.builtin "loop" "setup")) + +(call_expression + function: (primitive_type) @function.builtin) + +(call_expression + function: (identifier) @constructor + (#any-of? @constructor "SPISettings" "String")) + +(declaration + (type_identifier) @type.builtin + (function_declarator + declarator: (identifier) @constructor) + (#eq? @type.builtin "SPISettings")) diff --git a/queries/arduino/indents.scm b/queries/arduino/indents.scm new file mode 100644 index 000000000..b617fdc56 --- /dev/null +++ b/queries/arduino/indents.scm @@ -0,0 +1 @@ +; inherits: cpp diff --git a/queries/arduino/injections.scm b/queries/arduino/injections.scm new file mode 100644 index 000000000..ce1e7948a --- /dev/null +++ b/queries/arduino/injections.scm @@ -0,0 +1,3 @@ +(preproc_arg) @arduino + +(comment) @comment diff --git a/queries/arduino/locals.scm b/queries/arduino/locals.scm new file mode 100644 index 000000000..b617fdc56 --- /dev/null +++ b/queries/arduino/locals.scm @@ -0,0 +1 @@ +; inherits: cpp From e82cc93d57a599016d3b13c65cc0cc947b3bdb3d Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 18 Nov 2022 15:51:24 +0000 Subject: [PATCH 0089/3265] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cc6742cd0..b65d2be83 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [agda](https://github.com/AusCyberman/tree-sitter-agda) (maintained by @Decodetalkers) +- [x] [arduino](https://github.com/ObserverOfTime/tree-sitter-arduino) (maintained by @ObserverOfTime) - [x] [astro](https://github.com/virchau13/tree-sitter-astro) (maintained by @virchau13) - [ ] [awk](https://github.com/Beaglefoot/tree-sitter-awk) - [x] [bash](https://github.com/tree-sitter/tree-sitter-bash) (maintained by @TravonteD) From c5ffdef4743c0ae9f3c0673f5483784bb7be8758 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 18 Nov 2022 16:57:42 +0100 Subject: [PATCH 0090/3265] Update lockfile.json --- lockfile.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lockfile.json b/lockfile.json index 4b9de02c6..20c60faae 100644 --- a/lockfile.json +++ b/lockfile.json @@ -2,11 +2,14 @@ "agda": { "revision": "80ea622cf952a0059e168e5c92a798b2f1925652" }, + "arduino": { + "revision": "c473c09f23b13d9404ec5208fad3eddea89d70f8" + }, "astro": { "revision": "947e93089e60c66e681eba22283f4037841451e7" }, "awk": { - "revision": "a799bc5da7c2a84bc9a06ba5f3540cf1191e4ee3" + "revision": "e559793754c60c2cdf00cbb0409842d75f0a41dc" }, "bash": { "revision": "77cf8a7cab8904baf1a721762e012644ac1d4c7b" @@ -147,7 +150,7 @@ "revision": "45ce22c16ec924e34517cf785e23c07952e45893" }, "heex": { - "revision": "52b804b1cb2d57e58d90090326d3ef9bd19cf16c" + "revision": "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" }, "help": { "revision": "49cdef52ded4a886bf34bc474876b09f9270d48f" @@ -300,7 +303,7 @@ "revision": "e1cfca3c79896ff79842f057ea13e529b66af636" }, "rego": { - "revision": "6174f05f58e8c35d8c82323dd8c599b90b3171b3" + "revision": "b2667c975f07b33be3ceb83bea5cfbad88095866" }, "rnoweb": { "revision": "502c1126dc6777f09af5bef16e72a42f75bd081e" @@ -333,7 +336,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "56d33747de8dad6cf92356245e8e8ea7a2654947" + "revision": "4f1b91246b43190e34957d9de9a0f3625879ba33" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" From d366c5f8d7e126f3f11c1b078b219b479bc5ba1f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 18 Nov 2022 16:57:42 +0100 Subject: [PATCH 0091/3265] Update lockfile.json --- assets/example-cpp.png | Bin 874960 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets/example-cpp.png diff --git a/assets/example-cpp.png b/assets/example-cpp.png deleted file mode 100644 index a35d1d3d50a4a52174f7ad3255b34889f96279ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874960 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�{+I;Lhg+=M3vzT4xYIwyGE0cD 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

6k$zx#B~tU_KNxm!+O677#&ottL6 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⋙Pt_}g)7gnrvCH4WEZk`&Y51nhwT=jSqbgB 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

OSNW!W#bv^JMN^~_pER9bJUipW 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

>#J?_|EyuX955r5@v)gn{%@Aq zW!F3&9Y1Rty|Mm($`s!jFFNJJ*Z=ahtef+oOWyj{x8pf~X1F_*XellDVaR<<-t}IZ z&fkETG?zaS5)E%0H5uk)+}#$s@chxkb#_9L0lhcovfO%IwQS?ASLTVnrwnA0BwIIs zy8OX6b#i)G#|f>5mG4)~I2Ctj^4BfZ>%}=QcRo7)SkFe@U8j!c^sJH{YYTE)H0pdL z-ZewRx5+^4)>6SOhnIYG+}HnNF2~->+~1t{AF7!l@nA)4WA5&6+IERoE^ZLpz4~@6 zS%EG{>OfYCq_E_z4ZOV!M=Ml?oDGi+Zb^y>DtY> zhnj*-Pj63q`1|eF2OftmB)Th3_gU4IeEfOE+uLpm)m-N+&9d5^xTqZk-EHN_q_AO_tKXD`5#%aU!y<<`GSHa<6@{Lac_NBSpwO$^Rps!)HmZQ5bU>CFL4W1TX! zuKr7MnbX}G)v@8xn;*RS?{k|bM-~=bbP-|Sdz>d}TJoa%Pp+o#%hu7WiwNMixqED5 zvS8frZ6`(T?X1|Fu6ZfkIof^mhasrx0U93$trubA^si>TlH)cX`R5 z^5=4A{^!Zf%PwQ9=P~0b?yq7huD!KWm^=J#`$6#i_mi=%QBbi#MEQ z9X;e*BscpV;&kshc%t#|gsD6wW>*&_U4H+g?&I=`|EJfkxNcO6wrRjS*zn_;{SOxf zt0k5cis@`q3(5T{>TO>qpI^ICw%0FHk5g5AvTYXIIlE-5Wj*??fq7DEz`ISVwQ^s~ z-Xpy}uE6qHe!+zZ&Xdba6K+3SA7J}v{fXDrOnfK*GR%LseR8Zw?$s7~`{>47i~Ena zOio|)<8b-L&Bv9#$o#ge;`+SIt}~k7n*V#;PieiXSLIvW-nuL*jn+9^2P9ba%z7s; zYUww7)!uD2w_;wkt-r2!+ZJ(nJ(q#=td@>?|Gt8B`_RwU3x7oKO@C~g8|B<)csW&j=bPZw43GX? ziZNQRWxCIVdDX2o7mRnlj40`mbV^%Pdt>u2=Pl3p+m@d6|FdJG+@5+nmT7F+LJaet z3r8os>XR=&>h)(vd%BLsuCt)H?yY-t{Qt3H-MUA|gY&NR$;ys$!I(^{T_DT~XhqaUz)XdP$}K6kX^W%5K*1$j>=?kH{Z1%E!X{&>9F z{$ipnm$BUrY1M0HZ+3hSsrg>J`^>yrgD(^L3xBu>TZ!H6`EU2pc!DLD^S?UHQ_Ff> zs;rvVRvDMoe^tBo_j~%5AKbxFzm@<0C=M_yX4=FZ^E7kiAK9ne;t7YtXJ453LihZ+ zYQKY<(e*N#W4SwvAHmpt(G8J$XV7b`6F6zZk zP#N5D;*6J&pmOtd?bmo(h;KU((YoWzPLrWbbX*<`h= zHAw$)qJ=p3gW9GS4`X|#xpRHvvE3*9$c;ZU{{7Mw{}X??=HIz~`_-g3zot3PI%t#B z_VS|J;@WNYbLL)MaeFJ%?^nCFR3|EYe7x?Q#yi`X!d~fZUt0uEsx7`XEvV(+WS%a0 z;|T9|C0B+EyJSnNnS}*rarGY;JioUyIqket;!TAmX(|V&OzZx#>7_*N<;xcTcCGX{ zDc@jX%q$a{acgZrSTN%zwiyf-7dI{Ea=NHSuvqS zKw*o66bq9|V}KA-%Ov(=B~CrLJ=({%!Yyljr;_ZNR;;+`fiC}obz-{>S&RB&#Gk;;p#)BD7IE&j&;WL(_0{P62E56PP2 zmly8&lJ~RbO5L326MVyuUv_X$U;1|j^yY33#TFJBTQSCY53l%tkoS-9!vV>_8b+jVZJ^$v~A7fbqAfd z%N$wyy}pxgW$dyusrQery*&HFxySmC7Qelk@xma%=Vr{D;-^O~*6Ij84!hGcKTrF( z@A~Tpmlf2%v$Q{SINaY^Yu1OO#`}*S{(qx^IX8@fY1*8X5rucp{km%foxM@1obi&^xkEj?@kzn_ z?A5Nnv^K2W!~a}g@9-bXl@%+unJ%%qRaU|~uWl*R@_z|J=d7yL{%!ckT~W^B_pxXQ%zQ`h8E# zh+tx7xZPM}QaLH?nPa-Z24dApAuY}E>13Ko4onvQsqAv4u<@j z=Kj&Ily%>9L)OTj+#A-^@ZWpO?KWLJFK)`?b01AuzJw-3SN>n{x1x+IZdLB(GhPek zruz{kIyVB>MPSu`onOt439eT20$vNv7VPRJORO#jC7)nzvb}IAU&G`8%f5*S$`3nx6yKwhP zi3t1tdu@C7)*q4AKjnU}t9av|lf4z2J+oG|Nv8V#c(}c;bL-i~*F)cE9vASNL@{jw=uP?m%E+sAhuiu`Z2mYRz z^F?K!{aTLa@r5@3cD)VWo&D!V@A24{geAOo~*Z=-k zzTxkVpEJbkZN#QNOZwcWJcm!CYZdeF?`8+KEn!$H+@0W}&E_;mHPL|Yn~k@PPXqrk zXVY%$Xs4Wo=8FVxvw{P+^J4154?PilmgR?TGG48Vds{Ij#`4kPkdMcu{W7m`mj0;B z;#=|U^VbhExAyP)Y%%TJxwq;Jd@Bx}J#~G%>BN0kVq{xdAH6^KF}$_ACnh}koL)eX zVrct^hO+(aYg;+4n=UDqpTJnPqA0~hFST>tye@(0!?yJmUv|x1Wqss^JInM#yT7Y> zFTWUd!}9s-P90s-W2};iwg)D^-f~Q1k+8Fv(Pm?|x5wXxN_|VVOtEL{IT>tFb}8pc zN}9!u{^-~Hjy-IyW=gT=OMkoQaGlN`@58TB?B5k`luE`Rx(r`7ju{r zZh7|UrGS#Z{f373IZA4KbM1G_MsM4CBR06bk2!u}+HKQ_kGt~^D=}2QIB>z(M*e+k z+dLDsc`eWVtb~tC*sS4>7OngKQvSo4fL5u=(;n@deD0Ic+~Xg7+#B8=cUtuD0$Yty zs?j+k|HDUFGb`RFX#e>ca#Zwu$K{=uB8=Y@Xt~F~5ZTnR{M*f}EZqU_qIJrbg zVnedaevY&I`R3+c0CXgN#VDg$J8KTp!Ou;Ov_}$+=r1G9=(e*7Oz{Wl6Yr_kA%X-YnS9E9o&+B zKkLrdx7me9=jK~k%AbaD-v*i{UtSyyFX+B1~JTG>wzh5Exdba4jhCBO2>#IxE zf2k(Om@{wQEYjzpHZ>t@qF{sQ)cEiPv7Q>&qH6YT<`rVu;quY9ndI&~t0!jlL5TlzQLUY_)Ri)!VG{)>)MnhOcG&)SLE@px8Kq8Y3ekaI zpV~cQz0Swyj;)!zSusVO@Bh>3etpZ!e%}18#}{&g!GkA6Ugk{yWVYsG?&q#9 zG!grGO~j?)_LTbBJ7sQkUgzI_NbQlq@(ekz*8g&ge@HPuOskdY>s#KeE3sDB`P<_{ zR*y~D@t1DC(YkA5C(k+O?~EhQPPGd-DV5%PS0@f>T(Q(;YKGSB;8WeW-A%ElW>u47 zuG}d#(Ss@~zg}No^vYxVr&c#^AEt&A$8Kb5zF6^-zwD}S^4*toF7wSc`X)w+`D!mgK>PL+9iP5C4XZ>m`40+uMIUu1ZjUZ7%<7^NHI2^LAt?K&m?zIle+`S*1yQi(YCx zmMJc}5$V5b{e&kTB4&ma1))6d{)N5P&!i+T|CE*wxG5|i^t?51iKUMB(ko9qzFmD> zrgiMZ=KJ=O>_jfbzYf28?4g8gNXELQTR*4NPY-$$YI)^GOYE9^3%<>7aJ4PfwJ(?L zc)r%{ud?mlOaA`u9f#MqNrdO>g}Cwmo^GeHT;)!mLy^a|Z&48^pN1Y=@Z|2xz+?7b zWt?x>O!3od@$}#^S>t?lqTEyNw{MQK1_xh={4GD_dRX6$eqBvgiC`1{pF3w792H-j zaV@E2?f)y@zY9}#3Uk+=&##@!@q5RzfciQA-yCl%oIEj6uwko|?{BNpd#O&>UZyJ@ zR#D*J-!Cg~p7G=$&tgu7oEK|WwOw7Rirc_s6GC`QEU9Co*NJY&*A+{ZZ%Mu(LXzu{XtTDR19! ze$ML41r?U__#S20Pun6d?8Kp%xN+6jw5{IY(xoOjV{>n?o>PZxPtB?Z!%{P~^LBii zY6q@;H2wDOMr)ku)68s#!~b$uSa0HQ-(MxVyR5!aWJCtlyj z7NM%}X!(MI95&ybfvv2a9~V34{y4|Hrup0wCk^%u9~h$D)va4u(J}LKaAJeY^>?-w8L8f%*tZ=k-?(p|yui;H=9PAj?%oreeJkTe zj;_$7(i12AIfR2Y6$b`P=x+KW^CU%0=^VqCtul^R4|=^>o#j~1;&IMYP5|6IP;7De zc1u8_YoC(r+*dO9?qtfpEP2uTI_bypyiVN~zw7Sm?xDRi7S?svY2CT2Q*+mHLwCcf zsgnZiSG;+UVyWW&{PY}q{_a@b_8P9M55iZahU#>beD+x0Cf=a5Quf|=h1qpCTNNI5 zUHB=y?$`bQZ%^Mgakbz)$}cItN?hYeaGCJekpAE$8$KT?>}!(B7F1}Rm)LddntIR5 z&4w>;R62iqEPG@3;+V^IHD3;duULP(|M2bj!|U!^%f2~od$v08_tn=L_v=ee)Y(Y3 zCSN`rR=g`aex3cR|1rlqPizVHT*@(rZ^qvgdohFQzD`|?4&UQs)?StTekG#o&`(Q& z4GYU(i)UOga+t|A(e4_@iMlPJS9k536QQE8R3rU@X5shSH}*!W8ak^98M81*?|SuG z_OhX$!^I{h4v#Onk=&;H-yY2VJaL-6#LKN)UrjjnI_it7V`=Tl#^mlVx3?UR4^}MC z{+(N?YKn=|1?(?tKd9j9X&JU2g6ysDG%TIcw_v;SSa z=O5!`{%Wyny_~yg@LT8O2ftcG?GW1e(M{!PPxH=Ak#`k5m3rbzcqLCb?K+<5;dGL7 z`NKKE&l0~)NfLRsMA7mh&tylI-?94|zB0tsKje=2((QU8qKsK?Pa;GApITe3C^iO; zBhP)0NB%DsUNCO5h`~U6Z%YDONw`!L2jfj1c>Cf~WyiVSoJWjwR=`=LO!kTlwy}I=gZepZi~#oo-pS z{uZufC4YHVd9oT?Oe=T0X zYAK%gR5K!-KQFJAYYx&CIq?+FdcDrSWeUdmjMJja9{HLt+Uj}xgwnwk*ZSM; zMI}pYllOkTg2(i{THE}`D{HeC{GH))`<%F9i_29f^BuPzLt<#MzS9YT5{_Gm|cQ)GNUGvO|2q=gccTE9bs=A+aS%Rpm%~ zO24y;|H19@yQJ@1>j|qddSvrQy^;YTstyd@Ko`^^_IlQ7WRmSJoK{2}`|CUJ; zEUtuG-@Yiv6|0l`;(eCu*>$`tZf@me=kb3$^K|;dSK56?v%lxM$b<7Ihhhs$zN+o7 z_yaFRsoDTb38u8#7$COt#9K8sx+= z^;3_9&#L9i#Mn>Y`&bfj?A1z-^V~0qZ)lb4tC-0a_;cz@g0x~=ltw|hT1!rk%1ME>n@C5K$~ zg3s>~o+udfU5#4!uHEj#^uISIv>T?bWXO4OYqxl;SEq)K9S`eK4^u9OZ41_Jiu`=D zt#GM_DbtJ9Zl@JnwI3f>v^~ynB5upu^tfj5 z1#{;wT3AxG`eM2Qpxbgb^f$#mNTNdsYd;kBV;h&Fdb6318FnQH^ zMzrG1+vp7^WOR0JNj`mF?#SC~)*o-bm+xNkE>2?7^B=Eizkl?3 z)w_l~R>@;Hdi)w+Y8y+dr48QCi0PSM!^XA!zw_fH>8fA55||TAX5E!=e=LwLvupWw zm;wWcw0T^Q4>GjW<5u_j|+gOYc(mpVTzqX1HdxTiCi&{5Kn_m z4a3^nd0TiE#>jHXOM|-UOVb}o_*>6i%eDXa7ekxNmJ!0oj!gb=$1`r(=lRD!__Uur zt{CwmW4iN~_s3qhM-@D4;W?u-t6h`b{_2$U>iY8w{@xH^fBTrVaDxQHfwsPXa_w_G zJj(AaPh@#}yhXstLqb;yT8yY1>Zt2hnd|RrbV+?~Yv<9M1`GLRr^+XspU2GD;g#h! z=cq--k+-jTPDJY*UjO;Xsk{bJcCA$x^ou9NTk)MtGLLGG+`sH(#6BHyH^st|tHL{e zFFpH$vwhuEOZNNqKloxS7qYEiEamj=M(#n)30nZwiQKi^6kB`{kN^m zygF5`Oa8|fHC^9Wz9cE;cUE<{u!XE%+$G<%f z=!vcMieHgr7N%H07umw4H7X00@ z`4#hzUlbNlY( z-|0;aKj+LObXeCS>hdX04oM4sDco8+@9Kmk>kr>$ z9M1n1{Il-p-CFHCJq=7ue{V$W<*e?Wo*Z<_CdML-*DU+Qrj5&G%^1`sw)9vq>|J+L zkfFtrQ!?qrynAI4?b%MZ)*CMgZf#k(X)(A^Hf{|y6NXFPiHNo%Pb7iv!taiuD=!{EHpu2OEHt!nf>p~VoXo> zlzzY8et*wpj_8i8<7FRGYhM4Depqepf~mU;O|M;#ZR7s5$*}sAl8n%+x7&AT+DAR9 zNs;spn3H>OmRIWc)ZlL>A`*-zs${ZWb=;AYGZ!>oKBKX5?u`vQb&otXNP5F+f28-b zaKh@?R`vTUI3wdBiLXVV>7w(NZ+r{O`j$H#xGL}8!ibVf1h=*T+X;j88f4AKrg+ z_r#skdkU;S1-w1L|2Fn*D)XiO^BoF3$rFmt%#@fvnMv{X#XY}c->kKJ)%v%>a8uR( z1OH};<^C>wm7u+C+p(^{H+CO%Y1yIc)&F(1{hQ-Vg-a*1$=X|MU5GHg!u8nO;N!OV z#D|*-4Zg`b997<){Py_PzHdvvg?;fnkaWVWXdC0Hd=5W{Z|3zKCo9<)%t}JTv@IN@ zCq~7vEM`c#%edv+ii}u8wwFgwGUU8ix2CA{N?x{GKW~TmGv&1ke2bQaJ0_*|?EIqU zqbYO7|F>hlEW=%Q$E{^GE#CKko_MGHF!0ym@Y_~)hfw<_lkK_6 z_c9{e=BF%s+*5ejEk16|l{)KJ0qW|DPfX~K%q*Dy(?Df5Y+M+jo14ZmmZetiE@?z%np>y-a0N&hbDvv{2K)XU3u5?_F>mi%M6mFCao%_}EoZC$#7 zW%K{ws(YW90=CXG_jx&CTY#^hM(xq!RF;QNf33V>={#%m#rnQmPA`w2&Z#b*{9(bP zCG(=n!vxN~+i~gaT_@A*5aWaI_Zo$L6FHk~Saz;*#)QdCh5`M`x8sh>`OEqzI(<4) zY_M~QNaW=6E}o9F+WuA??D)H5-?VeCR_Tirr2?0<@rAsT-gmnn+;0hF*w(!J;uUs@ zqG=CyxX(W_X>xZ$&h0MU@;e=-=lYg2|Nctx2p*-&kc9e1IglCSGER{P_JE;(ns znAoso(b}k&Jk64tu0I7PYzUQinH}oNFL7M4c8y?z=-SYAFK=X(Enex(q{Qp0?dP&6 z;Dx#Ry|$y9r30>OFy3sxrWOCIC1gIgMx5r}oc_i3>;B)_9wGR^Om9y78wKf&tFrj5 zmO5m;>)fH>`8O^*n|0rtsSO?nKW%E&FxB7@ZnKFAvSOBG+VJ(=;Wo3?i&vyR>5+yc zMaNsSIS=SU6QdK8e~z1-sN@OzZ#g1qGZ?akrL?XsT&XYVnRzlV?~QYQweT-xeHyr`&w7$z}24!Xqgre1CIY_Glhd<(<8j zf9^GfnVGqv5nsRY#TcimO`B^g-=81R940$k(al@w(PNp@sXiu$HP}w4dippOZK|!F zIN|T!7jL%y&RM`DUlY-+y-uqA$x`zN7o*Qsd|In}Bm6q!l9a?ZEtwWCo4N}>9?^S~ zy)7|onL|w#->1*j7w_L|SuERFp!CKiyS>FE(;z=Dy34=3 zu5Itx-WTpnK}P9G->z^Q+FNrv*z>)u5q|pjoy+Ww9>ZWmyL-Jgsn&gFA&Z^aEap!9 z60|YpsZvU(T~5t!;gGg3D($Sr>vwPzPi}16KL3!sc}W5PR2CO;0Vj^mbzeol+9<&Bsd};AhcR`t5 zl|gvlCdt0^ReAx(H+fv0QFrO={d;R!?=F2)@wdR%bGL`zVZofYvd6wGQG0VsX!^=K z6FF-2THf_LtE)>^9sKPp=j85Lt8W_Wxj=gBuNQWI;ve2`6IT1YkLQW(ZlTtfZU=6) zEEauz@y7HX7xQn)jdiTQKSo_ipWArnNlA+DevXrty92_*yU!{9-l$rsV|2_# z^_n(k-HlJGv=WSF#lAVNX8n8PQIY->_1o_owq8G4Hz%Par?b%S+vA5OZb`Rp|Ju7j z-uwN&&zI_Kw3dY|5nIN%Vd4IjtjA{FKk~_X{oxxr%xg^FC*O_bU$|&f_|JRi^f%mv8<$=iq9a zpi|3~@=vnP*cP$qPviHA#n(L>-U>vm{{3f({M;{7L*zDXN&CL9r}NNLO^$_ZQ!{Kn zvD(eEVtpR*$mzu2TxZiM_3xlpPZTgc&F>nij|+Tb6#aQZ#PiZ-pR7OFS=>- zWnF3VoPBL^CwF_rTkDQy z>H7x{^gPu#;p39@F30D@+_$^lP2HQZ{tt(!=qtCGFYY*>I2hVp-y*+EI&`1@fv@U! z+F#4s$sAZ7{qETJ)w|pNnI&9WBL8Tr=gt5hSCPlhCcis;)=z$W*k4KS?eARb1Guyb zpWNO4;iIYX#z#-Q3mKF-tgs$`i3iaORtqyyll1JurHj=Y_4LDYWl-flP@;HJ_)vpWtT<=75 z+&rFkC?WgU^VR0f`fEY0fR2BbYyPIsaS?FhxY)lpdFiFTj>G>N-P4@%#6(F`LftjJa4s=!%4^RiU9qft#f&< zHE$_)xH@5GK-n!(t(nsvh^UoK@!OH2v`03;SuNjwTD-;|)eyacGS`cb-zY0@Gje%x zd)N7`TB64_-QBNbyz~(}a9cw4o8wbwhb1N))6_WO;ox*` zqs08;HHT*0?(SRF9}pNQT>b5_>-MZ${p+KP^w$;tC}8-1^OJYY{$)ef6cf0P5kYI4tHGSLd^0)8b>;CtSk)d#d&R^DZ@m!!gD(}w! zaPzSK;&r}sm5G~BQ|b+^!`Wbudh3l zttBNTKNlt+t6{x(>%xr>`F~RKb$>1WEb;zII?vA^$M($rz*}Cq<=v6K;PZp7qb`dS+q@d%i5!t>u)#C+u`}+n(y+3 z3LSgB%ibM|&-){nSMkKRX3JWs-nq3KqJCej+`={6{)hUzeb3q}DspYF{eKx~^ZCBk zmM=G%_8ggD@#|x7MatJe^J9{X&NX7o^!GD;|Nm32X0gtce;<^%qEqF+y^rg4uF|?) z#V~*EKDPZozp&=4xY^tG&X31KddVAS|8m_`*m-^-3E5Dog zww%`2`_A|5;=gzSfm`xk<-A8;a;(LVRJ=cap=7<^joQWccV=Ii8N#!R(fhxt zAfxQW3{RH~5te}VmPo}#+>H0P9bURGW$9$D(5@;i)31y6ojI{VwCID>e4fJ3oR2hQ zBda!T=Q5ogcj#O0>w+c!I=cVvSXpKJZCyR5b(#EQW#P5!%s`KrE6 zBQtwc!rS*w;YZVN{JT*4)uva{dsfv{UdwxzZ~)FZgo6cEW3g4%i{eX75Mi5 zwz#+dTlI|{OJzT{wsr_NtL1N`uyBXOw1p*6A%}LK zTIRp;+qCEpNB3V}ymFuHwZ=N0Eg_5lEw+FB`1Ss7(`>1U0YP0Aj3=CbU$`WF}#$cM;dPLJCKK(ZH% zC#}3JUSR6hv44Zlky8KvY}ftY9-PIVcWiCGOp__w(Fq1WW$ygGur(s-ufE)#$DDtv z{oA{RR~Z~pG*srFEHp$B!ZJVzA((^}EO?XDVvfF?AU-s_L zk3DQY!uP-YORR?RAH_%Pv$A--IW}_twj31cPUzGSg*43j>z(wB^aPw6Sr#d z{I+ma?)Ce+G*SdkshS?!Jn=ubtL&o{&t>L{w*J1cQcHR9JpaR+H|^SO^=DF$Q&Ly3 z%)1AndqOg~TU^?`zTW*ix<0`*&Go12#F^@lB zeWjV(iH=!sF4y^hN7FjuuZQO;ixt%6_s zEpuM^9Gw*X{z&O&q2%?g(p?27Wv?gRj7Ye<+5eF)>+xWQ3ES#Q%)*jS-#-5!{Qr%1 zMh=yJ`SzS+$$Si#&ia4R-#0lewzEBNZu^zK+#io^|MTp9D8OLQ@UL#0-#JdOLk`uh zbMxp~yWp);p4FOJb7j2W&h>k{{_9iLH%{&$UjNrTT6+Dv#|u->tj|GnJm?wb8`r8Z7EmwTZ2x?bY@1G;YW^)0Tr ztXfv`V!@?I_O`d%7Tf<0Wbt|EQsBCxUL^2ZX3*m*)ww4g2S*jNN-l7F`Y(7@iBPKY z-2cZoZ}oqjSj?q%wv#z>-*lm+wadD4(^}RoGrJLTh{)EYMjRVKE<^` z4VbrY)N5Msvn9t9}3wKTyy<7Ex_fE~@>>KIb*JcUk*`?oCX%TRWdA=bp zUewE@;dxfekpW}|g)eX%)ZGZo?)V+Q4x^KEn=MJkG zjSqJPWEtlz{>}CDyxXNGJ!(x`RhBOm+*^FtVb!Ov z^-Ju&))C&DHms?U z-fdP=wPN<3t-6{obdL77Df@JDO^Ua@S#6jM-b(bQmQz5GL-UI)iVeOuGnA3pY3oQc{e^L(Bu_p~nkjT@I)n?3s) zl=Ox(Ju$IP=2PFyzBAXPWY%OlMbBT%>T*O?G5=A{nji1@KR)K}ny3-|;o|&xhgQ|v z<~SVjmzc2kgVdjY7xNRh-RMlO|5W@ZvDW*?7w4O;f35ixcjgG4I`&k_*p&06=VJTL zySqO;dwu(Y#MG|lVrFnkIWc4XMJv~&E$kMp2d=~%JaKV>-ld)VmK9dJ_RWpC;d)2L zj$zI5wU@u2us*c*@ybb)mwk9Gz zLo3&{uDWt%U&(}}`MHiScDekxb1r1j)0^RJ+c`Zvo>|^2?cU(bwooUi-=+1g{Zhuz zR|O(pbGCGR@hD;bTU+O;u6OQ{dS}(8_Lj8E#b0kPTBP0>P^aXexx4yc)AwEK-`*T| zo}A{a*OmX1dD{Q;sWU9}<=L|B*DyD9csE$?maybLe{hccUl!v&Pv)xc$E=+R5|=d6$siU}X$wrc$7=jxq4zu#@; zmHbboC59ra^0lUwvDYm9a`&bi$M@Gpw&#}f`E9@Su{fRGdnxm+OMVrX-s`z=<>@=c zZwc3&`u_U9d$qCsri#)XTP;AqSUED{t+;4Y2U!A4D*gJ+bHZG&+?l0DoY}+Ja60d zH2Y1(kMtWqTo?P<>f7X~#+?&(N%>yz*6>h!VYm{*C-oKqp$S{p>2upT-6(Imkglzf%SS^0YD1&&V7+B21mp!~+6sNxf@ z@AR|$t7^}4KanaK|MvgWwEWuU>7D!{Gbyb9)XObN#YJ{gy`EmGShl6u?(6$g1{LR) z_XXx}4L{^`@MnmHP58l=5wD`XtDo0M&G`DgAS8IyY-59_68i>d#$8CtoPjV!!L^Mcx#yD&ozJWe%m2XcJjiu4IcdxuVZb3UQWN+ zxxTNV#OCX9i&cNGi3I;+^0E2OBXWLb-Z=bD?>CkS3kdeuxY3E%yv4=w>f**$as3^MTY{Z9IvYMlUFZI?Vm~M66)nwOpPW17k1O=q z%RC49QRw3g4W>i9O%AiHL0nKFC*b6<#OMvrinlGRWEP*gSsIwh?qwT!JbB;0Vw=*c zZ3PuevgP)2$BXX!Y8m4yq$s&|9}dn)Fr33O+36X_Tig~S5lutuA5D*b@4c^ z|EF!y=cSjw-8f;%s4u&*WnEDFI=j~HH|^Y6;rULB6XdRRmx$`$32pqAyrjMK!OOXJ z+YLN4V{hN==vdmkxp+faTIkb*YZG%jUl!f#HBsCZn6vRkgVx{6F>a+ZicHc@o)dc` zw`Q?=h4jh`llO468eX6NOzW=OwD0|2Qa=0^U#wrPu`0o0UQoX4`v*@?8n@iu=~N)| zq;zY_U8~60)4POCf3qsKxSXnLh?Z*+a9Wf%Q*3jS=oEcWo^|4y>+hL!IM&RGgVSiE zoLv*BJZKRR>dlsU_@bH1zfZ<`_j8Zs=l{OlAUr{I=Jo0vqZMD5d_Sp_&~$0Lmz>D+ z2?2li)N3~BRK^PNACg z(l3a*$apri0%-5?QLn>xjKEFDf|FnhRrqG3pt$U|v z3C5SEM6I|sTi-irw|OY{@m-UG@^@d9nK`Tgn}+ucM$rW+bw2n={x;l-gSryr3N(H>YWd??PB zRdBU?dSsG-QKASP^ai&4|^LLLI{(S$T zr!$5cR!1)KJR@ef?f$R)!He$U$2b3JhAu7Co93UpPyed zw?12bc%4C?)YQD?2j8wgbaFnpa@$bE@IUgl~JoIsJdL{AN{D(F)(ZaVxXqTHlU)^MvxA-@H)` zEf^klb}A{f2na>kaB3g&HGyQUKlaa`+034h@MUk}a+dFbN2c5rTXI*wZ@#zv)1Vh| zi}>9*WzVjadv1I@bnk_Q)0zaG&v;HMS~0EVUDj2Pv!Ca1ys*AxBK5cA1)uf9s+pzs zz3TU_HZ0hrkm%hIm7yTLFU;lIf|tR2!;AT(B0o#M481(5%rD|!Z^x@&;TAob=lUk@ zx>aSsoadTQ5+dkf|ML_BbS=P>GnYP2VJSHf{>7WOg?p7;uWre%pbHou9no z*XojjGbI|6`P{V@CQBdqEK_N%W>I5)^oeQew^U3;iDynpeF9~|)ggSj)8e+4-`1ge6YVPIY3)3~wcRvPJSgndvN%*q(#8#5BFSuPm#q*cNAM%c$JSU zyc7mGUO>pr*hFsuhvE_A+Ld3nr=R3#f3bXFjEeOxcP~y3|9dJ=r<5LTh`VHHDEVoZ z^skV^`-8Nm#ywn0Z)%~gdQ*cp&?;9w7E?Q=Oo~$gYsKOyJ zaqo|)KW`s@-|+FUd*R_fCFg!0&e*AKvSrn!^B<;vJJ+uyaJ+x%@}3 z{=NTTzo@*-;MZfT)rE5%3u0etxeIQ}Xn&~MobaX8YThJ+*})!Pw@JO2=&{lM!bg*3 zCi%~&7Z~FdX zS-IPZOII)%pRt&u8`x8^=pXk-r+b;)c?T}{&+EQ4Z*9dJ_VUO1yLWx{u>WPSA_PBNR{o}&%?eV(}&dzVHw~cI)iRPZS?~k(0?*6Jn z&F2I*em(cixnp_Nz2la%)gIo;{~{O4d;HJuV0-s{uLE=VF8-UjUd?YW%l^tYQfK<@ z8|v?rSd*=2 zJAdu*Hbv7p(SOy0ziv}+3CMTn+cecLu#oe4^u&O78IDzY(hF_$-26J1_66E)C@J6i zTXk;B5s_7^I^H*KG-hB64mUWYeDPREi?#UT7fPFpR&Oa=^zzl$j1Q;x?fmc|S#Z(5 z1OEih-ZHN}$Xnrcu}&uWLfsmbDIHstrJkQZ_;lcO^6Im;Ie_q-UP`mGdfM z&sRfcxl{~RPmFM%AvoVwwvttN!n9eO-A8#6-#W&ZE8mj-zHs3#nYDN4>7Vy`SsY;X zxgteHLSgr}g|Alk7w*_PUAHeI;mDuly0-n(mLx9tC#n;_U#?e#>ta~Ki9H_}*X&B> zJHu@Kad&tA!OvF{cleapTz~m#>SO&Q;*Y$}A3w}Lr`u?!c>UhD(<|=vJ~a4zi2d;X zzb#o!C65XtzTPhM_;}!0zV#+?^Ld*^qnoy_&OUWu=Je-DF|!yZv`yBR>)!u&x6JR{ zHTM4#4!oH^r}MaecYEnwwK?UF8BI2J3ph1dNwjv)Gf(*D9~K}lB($vLZI$TuyVH7> z%kLMNZu=ov=HI)y6`A(^k}daN$xaXu2(V&NkDYd|=!9aR7th_N{71FhKP^z--t5{tC-vzTKQ%d2xlQOGnkldk=kDe%^5ZU3lf3_L3rDnY{h`dYq4O_q(2) zJ5zvJH)BVE@vN*Rv(?U3)|v>1SJ}y3%C+yC@R?n)>09!;ml^hIEiH8hT9`L;UTmpa?i zawv6%O{$U*kJ%Tqn!c{L(HHKWKj!9Oqq?!H<zd-qx>v9%o)u=661^bX2isZE>88*{?YCYCT*q^NUr3lh%nNb_@&5F9s~VdsfS`Fq7T++=_G8yA}H*B-cH3 z-pT9eAtCIc{?$Y7Wo`LCMM19^yHDwJ+7=mlYJGd`)T248aq-jlj}9yh`}^(jM)kx? zQ#LvN{&;cgjor1YoBu}K*gMC?ZG#!-*8}TcR7k!1w^W5C;^OBQQE&b>2TRWj>nijY zIVdyX>te6_A9f3``cm-mD4*cf9b4rmuTXA#bNt;_<>+dYYu1Wy_8r_LFZ?Q9sPe}C zFJX&{Z*xQP>yh7DExDCSkfH{?v^+1<%jvM$gXq^FV|n9DcLDGc|y2}9Op8h z6n}f}YxBYjH=MkC=5)`JNyP?hb@L)^P`L7|{Edt+aeaM|R%dDT3% z*0>@=HZRroM{CGN;;d^r`ng?P=%e-$`5%HLYSzqn2&Wv{T%%;X8rtL7b9Rd?-ii}zCb zyF3e?_1Zu9xYYl_xz_0qu5sHR{rZ0eYp9#Xw4Ge@ca_*b{o#M<1Ey8;o96Xd zSa@|f9(Og}`tXa-!;SY36#R5~Vj+FYdIHzx^3;zCi;de!TrR(zv ze=RhVm5R98-yV;=eC~+D`Ro-rMc>(yj3;@8C1t%_@OQ`RXSHwi)?e8m&%fPFQgHRo zf&z=HF~7N9{O-{*`1YmxJwwX+f((X5r^Oy@TVS|9fOmpc?3U(h6-&2gZ+Lk8$bw~; z>wIk5z9kE>Zn($UdBw2fTk@-Przr(>FW0hM@c(VtdC_jcPN&5yI24btCtdj&av-Qg zsLM!KU=x3?X#S!<4to!~Wk(;DGr1z)pIQ7|@#d7qJDXNoe0pm3WksJgTSS-N@hOVO zFZZ1a)wmzrTh|wSWb!o4ii$=T>9T1-E1yR_n)=Qow&V4>S$#kL+5UJffA6^BJE0$f z(zE!sEvN~v;M%(Um%+cUUlPND7yO#0xNEDiqRJmmaa;Mbzb4F@>vDd}R=)hd|4irD zzt=jm@73&xU*``0Skn7eDdMg_SM~8j4<%N}y^2bBV%L87=wZHoJ2(5S=RXvP_+H&p zA^0(5ql45fueL~8tLNbsf0dRbo7{T%zNLxzRl$;I+oZzhx6CfBbCb)t@ASpOx_$c` z+1s-xIdF1bZj;{Ha*8oDi(igWbLI2Lt9}bkadDR4Afo3Q*e2=pZDH;EXbt-d4-)M2 z@>e+2{$=u+ZCrk&F6R5w@LS&=AG&N%dE(=i%|)W8w6jWY^}mge5{m0v@$jbbmg=nq z%UfGc>p#3~lxg3$$?(EwjTOJ5cA8fz1m0bhY0syyMgDln{Y86Q1e|RBYdt(}tW6KS zwgZ~!`j0#la(JS&T|?fDF+%!!())u|N6r64Mw=~OwyyfZoH=1lCEdFck591T7giTN z%p+aJSKDy6#70$4kHP1e(;0vNCkI)DT0JtP4e!?a-+9@8$N1b~O-YB($JamD`nM*1 zZBqxwM~UDlwr4)Zn|}&8t>C|WX(c~rr@)%u_YW4&-@-K0yWr)^n+xvRS7^sw|L;A0 z>biNM>m`2f|L{BL*v*+CUMqLXUAMZgxAbqnjF0#COL1+rvAb5v9IyK5-Vpw>HK!$; zTQaxwp=z>b=`=qLvF-^57x^}Bsn=}Mi|@R!<7(w|8}+|0emEam|MR(0`i;6fTllK^ z%`|TH=juiWMBg{gu=kt$;8>lFc?eT^PUY3f!hd0CbP3<+iDIs+w!(L5=;R0wX?n--0%k4e)Wuf7k|GHs@ z&Q_bIS^DwL?v9c=YpXA;-nIW;f8VyW6B{`VIz*1Bb7<__b!|fHpUmQkIZQckqc`SX zulrJX-i~MEgEK$BKf3;t>uj9a$DJw}Th_^Q5<+|hBe&znS-dGxO`RaOu=jV_ApHrb-Hz6(L z%u37WLN#UQR8Otl^wD?D-fzYsx1Sz0c~-M$_X`%06Hzwb=HGwh|MpaV#Fn1DQm>z# zYd9L!7hm&(C$2c-&%eq28)W+Jb@#J)_b^w~Up`-O`XS31`Fg8;(I%{$Cj}>LD_yj$ zRNijQFP8IHuPrcj`qiEJ?fZvo!Os=%Zxi>gd+cVj+28ft^1H46@8g-g@4MaE{b_l{ zV$YooZC8YJtm{?J*%YcR^FQJ0rgY)ve7B|95g_XIF>5^EvQxf1N15j`8lg)YXUYuir1#pR-YE zMnUblFUXbv6G&?il!{Ud~v+>L344aNb>Y=L`3ZH~e`NG-sa) z_hc^N2~z2<-m%vE{_SD=|NZ>mi1^3%7U)h2+W4mHq(y!upPFb?!n>D_Z|7O<`F~1o z&$mqLU(9hGCNY066~&lGM(!)*e*S2#Z}HUQPuJcq_*t$UusW#zV{4_w??)dawiyTu ze|kKzqs~M=?{N5QzQn7me?1ZI`>{C2?t6DZrv2fknseLI{~Pj7=DAz(wypf*3peIt zb3@wlV}e?KPM&0-cCYQ(EU}zF1@>{js(JZJ*n;fT=KMNgx#M|CYi@G1_`k}#S%302 z^L8$6-SOwPYJ{0SbMofL35HC}v$s8(^!od*KI=m*h3Y;BD$}1Nzcb9#IMLP28n(ss z>w^#X7XNs(-?XAUR5oij^Gb83fOQjnR1;2~W9 z>-p|8oIlR4+G%kw=dgPDo>psnqvUU@mkXZmth88mgQ+-Pp6_kuf#vycj@jSKb)4<% zDL+q0pjKi?#J2ZE0RliQYR+AxO=cjqe@vu zc>&-5>tFR&xVeiK^lo@L-D64F&ye4@RrQ@`7W~h6xb(}HyPC}*{om?)YQ&Z-Xb)N} zyMpbZ&^q(e1@CpGK8ZXqtPs+iCErn}pJ{Fz^dorMxmij(jJ}0^H{iXcuvCmfrYHplXRoXwo&37e;$tw?*d3sKB z*7CaR{}<}j`d$9$%S?@G1@^Xmi&t0|Ye&rrc_zN{q{qGjogjZ7_dhKxGlUqUv-N+K zZ(mRx$~)_RcKg+5zJZ4lw#}W_HKm(-;w}@}kF8=7kJfCsR=V){=c+CLHnYt&&0;lH zdOA@!uwawZ{SBpyf9~44;=WFz##z^6+m9=y#&JE`6av2eiy1Z{N5=2*XwuT5y#&fohm{7 zz8l*cm3rPBKdpSK?v3Z(%XKn6ALo91eBfsP)gHZXZOXU$IScO?K4F?E;I!wc$ZFQ@ zU#~5E=`imL4M@_UoyMB_RhKRJ80(|S5b-TT)ZT_2Yp{Pz8^ zKT3B#9{_kYnnR?S= ztB&+(ea)lp{p$|@UB9(zp?S@HFV5JVf3E8v+V;1jLT5*+;Je*QvM0-apV=u~TyX7( zjE?Z%(AzS~v(>zWFA;Zs)R$BZ%>-@vpmBl~E zRmtzy&!jt>jVia?JM&S(emO_@S-I|Dv77_G<=0sbD(Y?cs<(G-`TQq`KiZ1?y|TT8 z$zJdG>X?0(cBk_GyS;_!xqnQ<(Vzd1G)A5OGGpNro;w9Md3fe&pF6lwyjJ-6zMXvj z@0WfJh~?&NkC&BoU)tPP@I`vcD!vtqjm=(`3(wdrS#^Oi^tN(Xxjd3uNUwR^Z9&sqM-a=YrRTF)ad|4ZC@{Hg!W7JJF5IU7>eEG%7O zEqH;|RB9tAp)Z*K<~S>N;DjuRE%MXZ57p(||Fz_mwN}f!I?0*2k+(mFWbDsj{S~)m z(#&ece~%jfTBv`|`P26;*}SFuuf?9UdB+}m1r)>^3T@)yv%O@YCV0%Xvm<^+`;*!^D zIePM(7W1q=!Drpe65r%n8d%@x?=_e*Q!sp5;}q|%3;$k(uc+4D@pRE&i$A66-=}BV z^SS>n%sB1(+wkr2E%NNkWskM}z45y0`^CCBWp_;ebUn6ydz?{Y`tQ=U7h-h5O|TY$ z|7-qrUYo-CtYykV4z}DEFT<=dr}W+_bT#1YZ2ZN$B3DjgW`T51VZ&N}vw71vg{wZ^ zTQ>ip@b1cOhEGLo_CE>n5o<6wf51OY$EowHfZa;XE?zwn{!TpwfZPyFGO_#o~;zHRHnF|%Si*}qypR(r9=8uoRl>Mo` z&i-S=PQI^y*?K(Z_Iy6&cc|-1g@|}uPrOO!!?sguM@|JD2`OTf`}b9J#%!LFkeVj( z_?X`F+paIz=d4uvCPio81L+;_))=M8mh;N(da9te_rG_EON*SK$Gmdce?MM-4wPcw zGHrkV{y#r;Yj&&@>ix@kVzv#x_WFNj>tbxgmf!uzz;oCBfb8mitE<)Kc0XRW{y3xY zMr{4`NBZ?Y+0-N%CT?We{wGCM?TgHT`mp*=*-+n%*RnPn6LWt^d6fvd?!bwz{xsar%=7<)5GL{*chknvofHW#hm1?}ZEh zD+e1|OTJjK;@Ii)@(1d-Z(qES*+X`AXREm1VN>nP6SgL>)s=cn@B6x1`PARL*V^{i zKlj~}RbrwyyKio%xSY0Q9*4^un|iUj?;es~j~cecvVXi|{QJYnWo9PdW>2tI6;F?| zmAxM^sVDfIjo_l!%6GQzx*dA{_|k{7`FSPlmWZ0pfB(P!+c}$aYghgGKYwzH(eGR5 zO46(@``v!Yr>nbEH((kQ*V0Y-T#FWUD6Oy;a}AuR&$UD0l(?W^>-tlAUN@ssmODgi zlq{U`?)H|sTQ|R-sq*~0`?Q^&?|k!&%xBJi^7&o1m8aUyozE@LSDq_AS3LjsgPGz| z8@8Tfe3HI6E6s9Ryp_DUcKLA1+GH$YON)SW)wS+Q}If z7dpR(nI>k(+V9%Sw`})P)f4MCC*CVP{bKoT%tF?fShEwc-1E_pi<|>c5jGadVx*+ij6d%!>~-^|)yH$-JpK`O^Jy z^=9@Bum0s${GP10MQ@g+woJIuS!C{{^~~V+1srP4t8#}$g5+Nv%e#Gb&r0I zq~o^>Z9LM#T8Dmz&JziGS-Po(!#Cl|x8rU1CD(DSy7oCj)=~3{P{83`jf$KrX65@_ zs|z`$V6xoe-M*a?jw?e`jW&G9>NGjez^U{2)#b#@J6f$vl$1P6lwwycklM|y=)1De z>2495{~jr|s9&oqgT*hgbHA~y{P*MIf?HSH7m1|a`>}C#s_m=Wv2{ng{QpG!ekNkn zwsBS7%vR2|-B-T3iC*=yt&0m-weJ67zCYg|&wu25G=A#G!0x{pcZ6L3SmeLiSrMUJ z7ZYc}{2X*m!pG#Rg=RaYrhdPopw3_LHp}I={i}<+m-0K?3SIlydSY*e(6Jgt`E9Pj zftAVn-~MmX&0OcaQN~;}^m~Z1F>^ugYWLTN+b?`BjHTK26QqwZc?>g$&7yP>Dd14cThMx0F-OvsEUlyc?O8|aYthF)@>3$rvN;8_3HwTcqPjkBT+Z;nlD{{7(8N=MhTHa*(w9j2XSI=~wqFKjhy`@+KiWhK@X%lj`Ld0NJD zr}5aUqDpZVrqEDtgN1J+W42|=ZnIY2aqZg49eL-3d^UP*F<*Zm^!5Ftde=WJTD0zM z@}2#4=G$aH$KHt!Z8|So%6BfKQf9r?lKVHycgZ@Ie<|W;XI(1%*U$aX`=s<4H6m(h zes$vOqW@~#E7q{PT*{C=``hB=lcqat?4^(UM|EVDu1~0*6_cDMyf-7~rTg*a^~bl@ zeUK^BY`J%>jODle-JZM6{0|ztwFCCOv6=JnfqTToX)K3MT5;X~cd~Lu4!hMgyN>L- z4NSZL8k(^4<<&9s-`l}yo%fr$Zf}i@-~NxYEpp$k|4?(*Ndo(s;W8!oSI7Yos~ z7QZ_C{qd>gYmW5Y`(R}F%3{$Al{*EGJ0-MZEH*q6-|_2RX~x&tpTtb$?)CeJ?eFH# z-z)xoPI%{1^SIv2*Z*;?FFmq6*6|p}D6Ud zA3u%llzH!*kyW@T`E*!J{b#*5ff|n0w-aT4Y+*Yj%+t;?@!zhS#jvVuE0 zO#aZX`8r3}pF4k4)BNngOQ!M6_01DKiro;RiXS_NzC7!wL40mCLFLZ^Rmlp*Uq?C_*=hScK;f&(AnmX zq_@96dd{Q#${DT0mZysnT95SYUwe@M-=)Tf70ZSH{${(lWxeS8wKtk4@2ltWyYY>4 zUcm0%3mwZ2ZzyB^eXyGEVe41Z9eIIbITK#o*dU+(#&b=p>9upw2Gyq+>I#lZt;y!U za`@}&{so`kt3P}+i$|tBk~b^7rfsg?d8wnta(;*3EUf%(EA=zy>nU}+&%1a2sVx3F zJ@B|;)<2^d{>M+(pOSlX_b$`-NnSoPqjxeeK#0^C!D)xA_ti zGRd!bb@8bcw-zkVHQE%@^y~2bx_l*rLs@N>+3jAM&O-K0znhjAD{)09nWcLETh;h+ zT5r$8;Lf#mQfig)x{RTVS1VsNQP*rq)$#J`w*C0{oz>MJ8#QLOUW)0jx0A7-*S)E* z@#Euj&)#O(Y)E$b`1poflu5F(<(lrOt--qYl`UT0dD?xm>is0cNk2Y*O?-5mUDE#B z+che#e=IJ>YqtnH>+0>;_U7Qh+5BuO+jifY_3+0Q=H}+(3tvsjxiKwN`M>|#7dfJ8 z-zPJqh$f%$U!Aa>d7Y`XZLYM$wfy7D+_v1i(0A~*_=2KJvrqZ+y5?=2zsNdcKPO-K z1F`=Nx9t}hPYXS`uhN?DPMt*a#BZrRR(^q!r}93j%(I$zyQ#T+>w%RPA1*AE<5`pE zbl<=4@Q=@%Czc26e!5=M^{&riuKxnVq(2eG3C49Y_dlNdQ5a!8pXKA@8PD{O^_Q*# z7o;~dtf#E_QJ7G3#iRPf55vdDm0#)~>rejLED2e;&FCH7<#2hg%d;Pk1LvtT-0a`B z>#Y{I3U|?QzlKm$J9?t`_%q5SfEj{ll$y^)zrRlxiKD%A?)O<7=S%qR{@2(LP68F~>pKf2Jcr9;-#h>%Lj#`{uXLj%V z!#?f!qoLc`@^tw6%h}D=tT@aluJGpQ3|n2xw5~;$mnT+EWvH6{@x$C|5$Wzzg%|s; zey?rYy0>9zg^ga^JZTF(7csv$GrpZn1@CTkR?B6E@;014muBHbGg zx;E^7Y#_I5f860bo`kdi^A6sg+pu(nkhtz?(*ynjiFIc#>p355o%z*$*N2CXZ+|RY ze(QeQhOZNOD~hJKh)70kS;M5Nbg=C3q~4>GqYAI*{xaL4>$+27`s1JX=FTs3{H*r! zoZX(^yG?(5JtcSbyF`*XPfj>TAD>O>U9CCA_g3%tvuAq2zwPBo)0Jnc8<^Ww=ds)6 zgaLApLa9uq58<@`~odUw11UL0p&OxL2PHv?-N)r!Fw|g&k%d5NZ1~r>ze0#V+ddTLIX1eP6ysnKi_k7;?vmnv?u2jyYQe!b|u_?Ze^BCCrYkK~F%Y5&4 z@?dVo>bsnpITou*xVkPm*)a+^ymr`rtoM;hUx|#1Fv9|d)J!wIlz48b-CIhJ-@Vk7 zCeARi`Olve54*F+_6R>$@b}=!t6*Ml+9oNUEB|P&uAj%m#+%*G7kIq5et7Nq{Vo2# z+}EAo)vwI8A>m`ljn*RvmX-cc@R@(|9B)PXV}>Og9_(OW1tLhJkA6`>k!~(x`Z6`CXG-54OsF78h4^W@wgvz0uC+{^@gSdv+h> z)Lb)T>kbpH-3xym4g4G1SG3#BM(@lT`%8_>jw$9!T3c`YHCJv2W6C+X?w69C+obbq zwk7G?UA26_!}|BdR}2XoAHR5f++{y!?vlF(8)9F@zjHdiQ16YkNykBv86mf4v77w; zaP95ejA;xyks8v;pMEO&{k04FSx_gxv{348p^%Zj^i{pbFW!HCvHiqZcb`}4vKjUz z4AuOl%UW!GR=k%#YVW|NvY_u&>!E+|zsGG_Kk=nREmKyJX5XeqX$O*5sPna-I=|yz z$Faxa2mP6h^+WC%WHBpiFov!=VL7$e_fmTBET^Q#tT{THjFlu+B89fPa=o12v941q z_VL`OmNSAyydN_8%nW0lJ)uA@vU``?)YW>fil4eZ*?fF_ux85HS!^czx@BL>9d^(E zBPqY(gy-|?CpN$XtDRV@3cQD852Y;)x{1fsXRH}`+{%t{g!RY zFMhf>adB_z({BoWaeaBCX#0ix_C?%_e_JRqTXug|Y-zc3qv@VOZQHr9FF6I3x3*e1 zzD@dLVHw7KCqC^@gtuMWvHr=cV|(O{>trTFqT}3;jhfH9ExzvFRhWWv**^#dO);zs(ai9Gn;4D8+r@nP1^gmxrr7)9tHN874OBXzTCb66rgw zoPRWS*4bQ()dtyBW-KaEucboX%URsnCTC*$)p-$vr0HaXi(FeQzpgpCdt-XJv71fH zBFnx~re*#o8yZ}yow*OaXXjb4aiOr#%@Z?>SSPPN(6(c{wy3agpbO+DMkhu-{pJni9L z<@1)$m6gr;g^zKqSvkFPv-CT~H@ELDufO*)|4{epUmLzGlDQJIkLCZ2sP?J(+Y^qj z%ex}`!mW0-upqazM2b02Zn)Ks$q$cQHExMBXXqCF<|8QYf9T2Ib>ViB8&9eGKL6g* zb2+1La>vipE#HpU86*N?%h<5o>d zl=KDh?`4K{GUXEXVUprK^6mvHlJ;qTW_)~Xag*2i_EfRgs|+3)DcN;Bc~`!2r+-R7 z&D@WVfAj_)>o0x3+5j})-ZCK~@l&RNq-wW8?mH%t8?1Ns-rksgc=wA7TKxH^o6bg0 zxNvtTXX)3uQr=wVY_G2`SXiZ`CKfdzG^+VdZ12Olg_9EINL;B751ZI+Sax2vd)2a- z{wnZ1Lg_!fUynTP*TdwjAzD+3!mpn})>W*2QnH$-#YLm~CXAy~;RWkQS z8U?=D>l*uXy8qGL@z<>Hy*;sAWBFyCCzbQ9=W2%VA4+mh+?T$%^2Ecw4D*`z8%1s` z-q5ajVVz)Kcgl77>6hP5cdmK^ajJE4!Pi5cb@AtJ z-tK3%w%+h{an+t*mmG6!p77jtFh7weaeJMK`mdgufwT49mfru`(fIkd# z%;EU0yeKH_{;HsF{0R+W`j$DHIHpGlR|qyo3UBz+*?&;7O)z?iQcuMh?}_K)+tg;C z@>s5rJTb^6l;g8gN+erdibZjR#0tn>7; zKRXiFn%C(}h>U8!bN6hI{Axb^xt+@oMV}9SVKZ-vpp3ok$H4c~BikMyf2p$6Z&ds~ySL}&?D`9V`-g)fz2i~pix2g*_TwPkcho2>kDd9+UNzPWzH7$ydm0G{J zt2N)1cyZ)(`JT4x|7_U2?ZP{MZss;D^|Dh7dA`6vUpn|%dh)41Tyu)Q2HyB`z4XUN zXWbW53O7ir{9NPL_09TudEezD=k8vdJoj;|^p~>5v;R&u`PXn^F)z~uxAfJVf1hXg z%x-zK-l%Kx*fxU7ONhRQqm_o8aiWzvq?BdtI&=M>d^fe@Fip^BFUGn>iKiH-IneorV=ZWZ|C+5WlWr1of<@--w zwPA2?mcF$Aev0$4CvP-_jL$w&@jmgb&LXN*?G>+uQb@b^xmED3Nw`h-W~CryR}eRpPUHb{QOa-&tc`Rx0|=hOTzJns2m zc)cM#F=1i>uPc{=r$sxPZMlP>*?C!BNgE%(6#ZN6Dib(OWNLWC>&qDYgy+tCkd~vg z#HQ(d+M^lyeNKXlFo>&tP-pYuPnrzRu2~LKbPoU3zuO@E##2eCT-?g)uERu! z$KCsnJ^jD?Y{+A!Z)K&67e_PgWGbt6Yndm$;dbsk*Q#=LtGk>Q_BXqC?K0cpFVo$$ zsODIbPrGRG{=E|S+TyHT&)YRl;vg%jWW zO5R$znDd?DmoIAlcMD9mKRSCn`s1?yE;=W)PamGL_}IfQrWjkS8Ad8Lp=P#EWn0stZT7p0%+fD8dFivC8>d)ISv(i|UN)Wc;jxE_aIF^9=j( zEb4#qLd%4upYoK0wDRnd8rB9K>6hlWYxCYF`(@qg=9*wjD?Z-G$2n)oBu(4Qdh@;= zSF(62lXLBhUysYStjlOu-XT(SvLa;doX$H-Zstohtqx{#WpdWfIokN!Dp-Z@Ny}>@!|>2zk8&5e zu4VBJk(bpD=*hgW+`tuW{?fySmEmUJJvnm*#@V*om&6s7jc-40vHERreq700Rze@3)y|1wh|JdlI2bD?eZ27Sf5 zuMX{tEtQxg7UDCr!G^ECI8poHrOTTVMIBzB^4;-y~D zq{P#%%Xf3^*ZVMc^X~2JrMgCyZ`(>1FJH+$`~HpA>h$G>|VnAEDeyq9;+>4}bI z%}buw9Q--=@6k$2FBd(v>(dS?wQnf@?ijZ{?^|u#gy+Asu1P+<%@Wdg$s()Z(aN4h zp+Q+c)9o#^>N_+ zz4(vB_mV|B6sCk9o3T_q=xa{OmSp=?&7N5WmwsHW)RNy-{$EPY|0rxK*kPM3-z|FWjzoW=w#&cFNCBrqTZ`Cd$z^l<+W4NTof*gTuFRQf zL*M4*eWzc)I(k4ZfA=Y4{mv@=1jn0>C-ef7B^y^4aM5_6%ZT9Ww%ieruNi5Nww)?`> zTb!JYXAFfWNc+v2woyatWGlmicPrfcXP=tBhbO7_v)va@h3zGJ({8xlPz(#)CXoK* zsJW;=U&$j5h6Mtfxjvh+Z98ydO-V7 zEOEHD=V(NTz%n-PgEe!Ce8gI04qYpazA$rwtxD%QUg?c@IaAKeXpL06`E+B5T(kb1 z?L5!t?&ouVXZcFDK%9qatU@x%CGMSreB8 zTkv^5yQ#25`u4T03%vWz$Vq&jXR#eL(~$O8ux!fI_Lb9ebq}0We}0fDq2RUP8wsP` zcQ-63$ztSEww&0P_s06g%QtImq7yz`(AYh(VcWCm&lm2xbB91eH{!7zVn+OL8+FdsJG2cEq z)IDw0Cyj%iD?FEq^A&1v%$fXP6xnw$Ho2k7@o}3xUu-J9ckn7GnA~>BPs!hm!jD z>sm`o*oXB9>F!o-i}6j*K5jYRm)NPdY9tTh8gx^I}^Xn4v1*lQyIqb^4Ni0d^^BnYQIk#l>f2t zYc>h}zEaY@FX`=zZu#stxl!Dp9*~7EC?h-;nYDisCuEE*>BK9I*p2<}SO0JuRK_s2 zY?kDm{jYa!sczuCi-&vf9ge>6l*Q$qjL)19zOS|1)}Peo_I$EoJYly*_TKWH2NX^= z9GUp5{6o?HmZNn%broMW&PWK14-lPJ!?%A{z2v`wPrN%SbDl6Py8X8ALTH;0eg z<~iIj*#9g){JruI8mY{PDW)&?Tkwy`J-8Z)P{#?Rf5Cydu`Em)rPt|AwT8PcIkxG*;bC zi!+svpQWboM8GcMYJ*v3(r!f~gU_ecAFS`6-)H}S58Kwt#CulDn7sS8RXjVl*S6ru z;k+ZIwGkcO|0~Sm>VE3jeEwuv@$cZu6}~fr-Yrh$pS<9{<^JV$^}Vn5*eEf}?6#a; zFXX4i7_-~%!0)eyt$e|^=Z8NrX!GUr-tc~<&xMf9JB-#vsVS+?Q!?2ba_T_~!^(+X z(t3=c`_rX&7A)s@^Ppin_lm2PS68`cE(+H?TN1%pd(~$tqnVPyRkJ(lEt$D9Zf&&T zRB5!2`kO0uSvDzJU{$iB=ZcjnDeeJ>BHXsvADJT;UX$D8vq7!n2zTd?a*@gT1n^UHNA*6j%uwAbSnwvTK2WMfb#lenWpVSnfkdG7zo3-@rl zbj;WNyMM`)uIWn_rq?Y=+bJ1P9W#Cam{wzIB|aiB{PH z=al9CZn*kvMYx-=SxS6V=NpyRI@ed1zQ~#)a5PopZ=vNIDXsju)|^kv&$=8HKE5!g z@#>dpr*?i)sIpRVxoFX|w@xQ#)ovsbDCEr zNk7PPKD};hM)4EH?FRaX*kvW&h+_>T4JwulNf_r8CWaGJq1f69ia%@YbZP zU~_(-_U2Bfea$8@Zt-~yvrg$hT)9WGBImw)#NBH>%6ZaWo3uA9cvKN%SSYn>%>jqw zVtejA>?kP9GvO&Y)EmU%&GyM?(}HiDFXf!ppB4?NePl4tdINjBU6$6TPyUB$)l(in zjD5Xv+iv!AJx)G)c2d)?opFeN&dBrBzs>gEC&TFd>CY6jompZ`lFn{Cti^Dk>&%>( zCr@`WiOnd=5ZK%7__p-zG4AtqO{eQE_;;E|`K(}x%T_jd7rD>*RLT+FoC?}+Pk znf86Mw+%yzr|g%L|J=IJrFTIDej<3@ZR7amnPWB)d%=Hs7AiTRv7 zZz7t_x3%7K&JN?-l*ZzM{g83rw!iuQ|A!$mzds8H6hA!wp?{V5 zhkF10-TmeAj`~FbQP$$~_rDQ}*;OE8lwy7F&*AtFRqZ{|yPbU9WyAJu5xqadklp*d zC13rY4|`v%UMIE6zU+$M>Q8Y#%7$D1irVbII&>4H6nSku2V^s(G|7N?+myY0+^ ziru=mU+ulTyTMkSxw5ix?t2-DLk+>1{JC1+EJ%>1eFcIP&N6@&}W+y#i-)^5m>PetUlFE63-nqd(qA zef(kVVk3j^wDbo3WsUpGK_}20%i&YlNzHlpcw!d?N zIVbGNv(y6%jkYa0-Ma7Jf$sX0-->tY^G%=q_g7VmE3x?(wpIFn%_{@5cki6_jRK;g z+b-|7;1$|QDEQMv-G+nyOd) z#Yw8iAMMTXR8Y2NuB^{g%5T}H; z%#RmKw-+cZd+(Q6Z?|GnQo+7ipKcX1I&i6|1iJjPF@O2f@BH;sJ5C?^?x35mzvHFR z3YJw<0=Jz0F3E83s#11ZB5lrnUrIdg zgt1qxsk^nXoM-vY8E%WF2PwYU(G?)F_|FXe1*=YQ?YLEta@}f+)u#!2v}+UCJx z`T0=1QY=fTsJPa@)yK=H-dhs9GVyIskNo}Zsj^~nEN@RIoM0_4I2>d9;!ikxSH5QB z)@4#t`EOtNmcjh1%v#~|riA&?U5mVrAK1HBc!lP*8~Lx?u4mV3?9&pT7QB4%CpGP; z`T2(v77L#^-%?v7SfoFzVbMxGo^75fy@CR+ktbFZIF|7ry1BUYxV&`EWv&UaBA#d4 z9^AOb9v<`P_*#pi=ZR1L)Y-h5Kf9Mx`1pdqC*8i(U1Fbpm?_&;Zj--!|0C|Mi4!?@ zY~Q}%_vQ;z>L;c)Z(#j4)t=Kfdg=NlEpN&lcRena*&i5qH*zi9VK=h6C;mU$sS!7YSCRc{Zx@@>cYK=8@i_*|Ew1chdcG#Iw^>nD;aI}Y zJ^7EPKR$jyuEyw6=dR}dhqrZ)KiZkx@3t)4y6)ev!xd%;7c=M7xI9bx^Rvf$lb$rT?SP15kP^_Hpp<{t5Hb??IRncJp3 zUSnO?di(sEkcpoK`1bwLt|`A8Wb^m5>WPw?miU^7>J{sBH3H^Y3&;Qet6%VT57Sla z>t4ql|Ga)C|9Eb2egAKLov-t@b6d;r;+t;2C%lkdwQ*ASyJM&1&$qvmUTtZ2;BETd zHt}7LQh()2l)p0laX0sQQd*;Ha?Fkk+kQsg`L@`7<1>#BJ5C&%x&N>DyEv(%YaiY5 zt#}k2{%~IJISZNN?qXT`KNaih4|huBhtIcOvRE+x-@mdu-`4Nt*qguh;&b6W?i*P4 zSA0v4n6_P*Kj!EE4=3bolQsQ*CC}~2xBthmZsk^{P5kfg|KzR7cg?;OtDIq7sTlUJ zj_FgX{=6T@>I?rryHQr_@=l`W=|17Yvo^brRlGm8Kfgx&y{;|q_c+j~u+Z**f2{U> zn||)$$2`pg;r~8b##n1h-9Os|?=a>8i zr*Df^yzrkK`0U+*_8^ioUpa5xM<4Y^<@>X>#qLyXYy4~XsZ7#L&u5waG|kN)UQFI>aQ0Gv z`u@*i*XC9!z1y)yz)~w$W{q`&_5RO-altzmFEISH@nP}zIo;NN-HWc@t*!VqEBr${ z@4E>bwH1GsXMcQd$}Cl0BeU|Z!KPTpbhA=1x!M}BWj|vQ z)7k%39hLrZdmYQ!gti-%4pV#%?bYr-nzUOw|L>2=JHO(?S!%DU&!2eH`SX|Efu9W1 z=1AGwnywU+{0&ysg;>BIbTl{d3=bf7?vk{73EL|Jm}7ZF=V| zSRdy*$F8$$!K)U#z*VZzQgJ+q_}O8w*S02aF9V!eoc-u>jG_l1fM zwSAx8C$!G!(#FSyaVl1pr(g6bUU_cxcCqxtuK7F8oSkvb{8Xaxh3m;DcBValvb?A5 zltydD4!4e?kog6Q$DX_Wv@B=l+q2(ExvoZSneR$2Y5RBi5xsM7ml@QpS;)*7>c6*c z;&Q298`dj0Y0dL`-~W9^(8s8b#q!ZLU*>1OJG4G3wl3YF@O2=lh_OFoIq_q1@bP}# z6Z=XzSLttaPxMxqb3X6Lz1_E*Os`Jr{S$x2`Dmo&Li2!$c@}ZMMB1-STl{RDQG|^9 zg_3V-C0khc>TefN{eJf7jmomCvp0CS>s#gD>3FyF_`+9+n^CjOJ@x#Z7oRyNSv@}9 zcKF9fgC2SH>OVJL)TRH42)@+yo zc;eitrcjHAGA~^6t7UJ!+P+}v-s$JUydF9wA1>ap=WDXg>=K)Edb67%ceZM5%-++ zA9HyJXw1oYZQF2_{r-{p-`+a8AKmz7+r&qCN3^%s%Cp<;V2QVVUm;_?Ri;(aIm3Pj z@B6(!OysJvgm?KxOYK`-wf$lK^?LUCF$IQtfB$T>SXL&}wTXr8mh^_?$5A%_`_n&s z+Lm|X?f%1um)<{^+Px|u!(WWi^5U0o^FLfYoB!ZU_w>hSRErHZSMhWev9MXq+K~S` zZO_(Msy5%B#g*(jdy8%BYB%-`zvIgvTq@-*e7H3I(Uzme29+^_n=bZ$TV_?W>0Rxf zA7@TiynpZ_WZSgZ><`oT=O4ZF-&{Jp?)~SAr){At-@5=-L<;^K37%c zo1C~8_UEtl`p1{Kmp^=DeEi{yTQMT3jLdKM-q^ZOPXBK$dsuFG$3=B|9E{apueJ@(0JwBR~9ot)5tzYgS~m zNHgH!k$LIY9-PkBF1VL!YVq}l(3PIkE_`z`@?RaAw)Jbo&o6OnEG6DsAC$CZa=)ji ze7rUDt2^I=zxVg`uC|}orLDL2P}9nt8s~}@J`P~NwtpYLzfGM$b@k+ub_{ zOBdO%pHv|==ZU81`-zu6mum{g^aQX}6$ompN`0KFwCTG>sp?#|c|Sk=WDmFDjb{w? z7rrXg^tW=UmgrNP+85fI+I!baM#P65xzNGU-nrB$E+uyA$KWLw=g*vch)s3=m1K+8 zf}x_z-p?(0tl<@%dc?vbc zkM;kydUYY{zh>W-?}4fUb{|bPT>4RbJ@D@n;1T-HUkQbGps+FmHIQdR3fF!!`BW53Kgu z{4uPuzW8k}|Hb-;E+X?Io8H{giP+3?=WVUTodTBFdi#cRxy}c^t;KiNThL6d@{T%P~jqBzV{l3y8|62MF zbH#u2_YY>vUw!oH!HqLc8b3bO;no7-IT(W-nI2m65CD%RS)N;jttJl9;Ii+!`|KG<~UhMR6nZu|0+}Y_w z#sN@~-J``g)qj0#YxT9)yS~aPwg@CK^vHvb%RKVHRL|9cL$PHEL-XzrFJ%9>_g8ao zcycVd@a&yAfjh3aEl7B!GKJH@>idJEqR~4qI&c`C+1K(PbSPSopyb2j#_rF~{pG5w zeas~CCFdA(xs7b`0|V8+m4ZL4EfjrBJ$Vkl=e2N)IUndQHD4w*ROaGw6{l=p&tB%& z7k?K#cKsbIciwPA$jXlG?_O40s%_++yO#6J`U##!1+FnAMuCrAXNE}qi3omsHc6ke z^Kpuz&?j9te%^^L$(p8mL2@VG=!pLJ(2AJw@JMj|)ZmVW*(Y0moiX~d;*_+_2@7+l zwvS1wGb+3|JZ&JJZJDsd$>pQ-p_3D#iK(|&NugzeNnF~qDaqG*j8fco%S~_2xV2BX z{dbUxgWR2eD!JD#%=`afTJ-6U7i^zDlKy_DZQlET{Qq|DwQo#MI67seaH6mfv;6u) z-M=Hg_6sEU1aV2M*m2VNr(E0?R}Mv$zb9rE3clOGxE=-?ed?qCBZRM5bG1{(HHqZr=E< z!T+sWsuI$7yjmI5onjLAoFixD12I)k-lEMDO>McSt$2J~kLT@+Ljn4(8ETL&9*3gm z{=frU%R->*tSSyX33lS}OxBsauOZ&1LNjYkVBLjMf&RL`Qg`-Wo%+W~Kx)0}(`BtL zzi+V@zU}?{<8AEphrjvn^e&qJkBNUxuB+3uzte(zR_nGLz1w^B{N84@ccubK4UU(p z`j_}{D7H-a5_fjtmmljNZ{NR%#r>hNP0?f7iVw}_CRTE2zB}I@VtKW|_Q{H!QHhgW zRUQQ$^w!>Z{)O2|2K_KL6%m(JsZz0}8b>EC?a^Wkjg&l{b1!#?$)X2W9Y2({@l1W8 z@#C}6s{QQS&4V6&Ua`JskNO%J|DaXocdt)tSP~p(;yh{QiqA5Wzk3-zoWFg^zh!+* z6F=R}Q!o|M>-BI9RaN_etM-^K@pPga*$z1i|hYd%-#{jgIDZs&QpnqFzK_%-K- zXIIZj&(IYW8A@*gkM~z!EW2v8rRLPe1heJ6kOV0(sbx0n!v39CI-b-RLsqW+*qLse zuJ5H--m~38v1LNWhI9L*{#U8QPWEp;)yAT1I$yxaqvq`-y%{xGW-}v}ojJ7F|J)%H zZ~J+B%S7w8&$C|FBH(o5#9s!>N6tUih4Opag{Cc76{5_uqr$c?&+S3!=cuc*d&Jj% z2=D27km$MioO4Ua?A{kwj|PYaY3%oZTHU-~bBWlr9<{Tfk6Bl~UCMR0O7V~9C8k61 zg&uFSmn_OxxiZN=)q`ns&+6}MuO+Q4{Fe3j&gWSIS=$^G6qdToIv&%hFnh7tvF6GC zOM{-LF!`J9Iq7&t+5bhT)Vs|ylY4a^FLHNkSMp%KWiU&##c->`Q)TAAwrz9#%l!7e zvRoQ;)PHgQp@Uf~PA0Bu6ZWs|Z~tqxb=C49t=03q&i9u;n!2o5j>GV$flZcHmR#y5 zO~n=gqo64tAJ@n4=K8*--^9I$Pqn2W*x{%4rj<+Xg6>D)@D$Mu`Wcd8vn<(@L-Aoj z?q6-am@na6PT5%xO`JFkySu%wPZMzBP&b(L?N`bKJ=SRtW&Wjdg--2^?9oaQSov$E zK*N;7CmS}N_F@X+sb4>Dd;f~eOVQtb+gAP;n{q|MwJg_Tqy5Ui`vhNWUg_puwLB$j zzq(;qq}zlk^EPw(l}+n%_9*t(jx+r}cd@{&P`{-n2SYNqoa78=o&2t$a>|ttoh+Q| z>ZHDkA3JE>xrs|l;QuQgt)z*X!HlLml6DF{n#5S^dFJUq_WKSlKUUBE^(=hts^#~N z1V4RiF{8rEBd6@s<=7kLcl5ZL1dRQraDM&Gsd#Mt2}?Up#UldKJDyDe9rUX5F)!j% zxZTxS>s-*4EhYaFo(4O0NdAp-+`Z)d_2p~TS|&W%aC^(eBO0}n0_6|I|Ge@&hQ;o? ztl5rFngTy8=A9K$e9N~gK(f6!Aa2Y0X*E(ZyZKi%STz+3IraB1Uw&y-)S}%1mF?z{ zj*qRGS0y@XMQJ=*v~idAe64fQD-TD#{JT$UZ_v}~rCv{i*Xqga{4T4go3XFd z$wTY5RqgHWEzO|gNEJDcxd{q5ad>9C{ZISZBCv@6-rjz25Iswk7xA`VIf-3;>8a0w zk<(V)XO8!Gaxp1CKRxJ|{=Ms~>ZAf9gCiNQ{yu&qMa3k3qT~9G75ki9M0>96h&y;- z%ZVSmUMb(&ec`^>-gsr+7vD4N^$y8g6ZxsKZ`JaBm$`zMn3}Hd?wtQ^!jo5ZwO7r8 z)0>r-X{}(JaWtcC(Rq81-Y2IxOaoHi6s4P934DF&z{e$fGJEVfL#;oCyuAG@U*+&B z&_TnOQr`I_n$H$kRQ*w7QG|e?lgFe3*_PllWPLoPROT0z_X;?9u=MP@G)2JaQSNHc z5(%eE*M16aly#a|zFdb(tfnM&>*b3v)1~~V!gVTa__oj46*eSYIwEUQ#{3E&Z!*MY+6NjMO0^v!AgxBSjiXW?)dGgIB ziPjQV$<_{=XBwhBK@yhT8Z6=m?Y#fnC+(!kPx-J|EUid10RfsL` z3-fOZiY*ha%<((BOGK?j!sgOq%{ng*#g`3Fs^)`|SBgmjxU5>lxt>p@rDxGk&hK+T z;w>+}tqu_mNNr)caxtn-%_7j(En{ue$1M+E|8IZ2{H4DT?=QWr=Q(YeyuN?kePL@4 zN5%gCRa;$D7jzk{KmKp+y%>>tqb_wtRnx4Wf|I69&he=a-tN9KWwGzYZ5*CcPuk~8 zO=wtkyEj25+QSto7^K^b)BBAA$mTr``oMTzbn`T>gmvY!MLN zc}3<`%Y-TJZa=L+fz8orZPwKw;N($t=q`s7$5|1@7J);Yy-Qm4JRPd^6RroJ4VmRr zdR54w*LDZT@6=hM0jUq}w_J$U4g07n)f+75{ddR1B}z{Ju3zCkYj!O3)v@n;Io5AJ zST80}=(RxbqwMLZ`%;1N9EzQ0QO`CkTHLK~dT9-3_de+Wm2#ni8Irz744$4i5q#^z zcFwpDvWvSFrg$#Dce46Nn%bfFv)WYVtty+g=+(+8TKi<@GC6T5YQ8NKcDi(VX2~EO2=O+f@ITjgTwhf2}>KExgyhMZoDy=5|iQ{wlXiUYz-tqHe9o%Shd} zLMY!gL#bgN*NQ4(W>**c$Ybx^PkS6Ub9}UtXUm#jxf{yz+0DFXtl0YNmbl;kmIq6> zxAe^Wzx?a;AEEZX%ebZ_nP@Nc+Pldo?YX)WYltD!&5cs41n&w5yfv}-7~b{;p^uVD}Vxf(!JFWO`X6cRhkOxB>&W&dSx*0NY6f9^FVN( zc=R&Mvv+<;(dIvy21-3^7Fl2VpnYh=Twah?m;j0f%Ya&-9?XcQw zf6&C|QD(vYN+ECNdZ=qG!_UJ8|p7}{F&~3tM1BbK9KG{A_yjPDmWG%OwAE+Vh zySG++O2w*c>5QQdmxlaUb@*vO`|5d{QeFW30fY#H2oHk)kx+WirUg;GW z8vG(}USIIF`I<^ib+3PK;rM*!Ovj8*87@;Ubw1tGW3%qcQj+qW%EOzOFl zQ&8oPX6Jd3{NZ#$BVjRzN6bdQgWKi*E3aF*RV!{vf%UGy|1Yy_O0LiU_^FQlsSBtS zhB&@MZQm5ug}=;gf9Sp7pPsEK;yzi3aq6m?>)*HqUw(GFZs{qR+8WX*p}(w4cel#3 z^~N83YH9_3er9qqWsN-a;z`g#?`Ym>i?%PCDZpjh;?x-Nu}8qzKc2D8+3DDv6sgQ< zBAW5LtG?JwNSV6!{hrh%r`}#-u)S{R$u`gZRn{5~sXwQ@mj64xO>@Vu_un7R4%T55 zDze^n@yE^TAGh=6j;-3YkU_r0;-Sfg%Wc8|mT{m~L36P$$HNcm&_prG&ZSFDHSgew zC&5DTOSt#ux?i{=6OwX$R&U|wX^+*nzd3yDb)3uI*^87wrNkTCDasPCwE!kUP8r^y zkVs-nN!sr=@yql7!8?`&GIChXX;|eWcIBUv;LWKMFD^55TXo=-wLPQeQl(6@eMWt1 zq9M9B)h!eweEk+b4P3Q1T&gBX?ryNkO|M@YTV@o`6H1KdnttYm=hEjl%;ML3)&Eyf zj@q7aVaAT0!pkjjE0=jlte>mS${MW7i1v^z&NbNS2URpf;;k4P`57;jxAEZG8~c9gmMn2Tw6xm(-_N<) zAI~qCu6uR*gNgOE!tTB+U3*1+z+*H?MKZ$AO@y2#-RaAiDdHIoN-RrWYdN#*WPG@% z@jy#3r)F#4s-iRpXy#e;hOd(Glu~1w z|9jO;2Jh|D1TNo9`di<5H_PCwN#NdDZ$blX|F`=(on7JZ^y2(}346OuxvJl;l^;{A zTVocizWj*mhR-WE`7eFt|LgJbu9o1ZD*B>V11#So7t|bzEk~w)@wMAJWkJ$Aaf3u3 zwH6tt`qN=1rgCoa{}q<#@>?Fg91s`VoD(_{Tue@dN_OB&A9i;NNU&NFD)7_FE6IQ z?2uo5-|EnwPvWmSmub~=R|tvNPZR30_WmIh*q*AG{7nSn8AX-aGTtlSc%UgnMT*DE z&Uf4DsjNn;{as5v)mlmxWMAjXxqqE!`Xkv`UF(aN_DF2*i*2xpHavFqoXg{1XC(sm zzTMBgZlBqguNms|yADZeoZISfLa{{VR^z`dafdmd_|0qaTHUgGpWIg+O;ACz;zwA^ zj8JyT9tBY0<@wyy&4Vdx&s~@JLycGdmkEB+u#oiZ+vLC6+|BIpR-j{zjRMlQQ zFzqyl-rlNM)3@h2d*3s&qEo9reA2RD1IZrQz%u|4+E{bLVbEx+_$z;o$*4`?X4T<>En&xZt{XVLe%DR(Np ztGMc9j)jIF&|(OGE%oM}{EUiMhp%pAY@hYZcH@UbCpAv>m^!4p2Y%&AiDYYP>)eBrOu{;;51Mq|9{R9mIEFg`UYjftD*< zXUZx{Iz2D%Ws&?~QN*;G=jVN$6C6dNjG`H?Gwk|oKZdo0&+C}~odt-Kech#RA#mao9{4B@%lLc4s^vIi= zeLI%;h4r8J3_q@`?TvN`A10rPimCd^^kkvD^uOI~ym|RkgC$?=_c+4Wamp>Ih zPSsBZjco}`x>e2kiW)@p$@S zrB4&5>Mp2zeTyT-*Zt=X84iyx*Xz6Z(id$#?b7W!vH9oqe*)oWPdGfEW&iNq^H~S( z1cOU3;f0T@EMM-IRD0j$39@Mt)4TX7U-kFeDK6={zhaHas^_y0*E9bKeV?Qn<7=xD zyLHV6(O~CnmQ~-9W~^FXRqb~C67O_^PYa!X3P6~1mkDtIe*{9{_(YV)PqS~(M=Vr=baJ| z?<-SOeLJ}$A){nnxJSj$u7XET@7Y5NSx}BpY?;v=cyHa-r7qe@2W)S&Y^(JZysa9W zXyn>nmUR90Zv};iWm!uDq9z#s%MgiRe3|8NdEqh^5ARvq>Wjo`WVhF6GUc4je{{|| z?BRrNvxX&7N^ORqgf%0bPdM?p>C5`iPq)AY=Y%DWx*OGZSS<_rxx44vf@K8)&BA`| z^ZCQ=d3`5^uCLPaz20t=BVYCZ`@XUj+ivp|o^MPOn$Kq3zQ4w(SYxZH)1MnF zJLGqpObS}cx--;W^U?9Mjp=hHRP%UGT`y?3dZNU<7H2=(9j{gzeGFkZG3USOpEsAZ zQnu`A{lD{dX#SrFrhTWD?>iE#IkRGxTAHV~@Y29zTD?!TzntN^^BdM00wcDz3=skDygfLp8ktg-&8q%WOGUMo>!In z*EcMi)Bk8n!>aOo%CC}7b!4q* z#d`MY=LZ_=s*Bb8ud=)Hu=JI6-j~ibiZ5qL`0W(AV0F9TywJ<;?Aq=3MC1fZWEMv) znkKRAn)xJdwn--*F1l`B6UU6rc;wt0KJ+7WB z&Fk*Owy$&4$X@gMP@LUyd3(D>J@VZWxw9ITrgb%Ua%3%Zp#3^b=2f0X z6{l5Z>U8mZxANsvY!R4b=I6L1(_SUfp+n`{?=3?5OINk4C|CJ^{JO6FKdXIk{^Tnj z1%icTHFUj$Hsu4%ax1+n>Kd+C=6~lp7yRIL%dgVb5haMXgA5;>#q0%<%{*h_Ew*_(^278~>oU!{sMoJ>b+xfPA zZ`-RhB5nlK{c-(qZTj>_M|Ms&IQGsd-kp6Hdu)OCfzk(-cRu|6pRj)RB&CyG|GFhX ziSP2+M5UrhjnAd@9&@s9)3 zb0VkdMs6zYJ$KQg`26?p?(v~lL$6*nzWV+3%i|HowzgM8@BfMmz5nlvdgg_Mkoq*y z7uzqJ)qE?_y8UwI-SEZA1)R*S+V;zqZC-xz)q=CTeP-+LjVZRCqsCUZp#9zb$Zx+k z>Q>Ct+x3R&?4=!kcAqS5f1R0Wl{fe3+bd4L9$nyBv9q%4=`-D<(Yj}>Z*P6lHT%o8 z>v4;p$L-Kd`ujt>s;KMV9?@gpT{_R6mb#xVW_Ca4dUIm&$_1_p)|OZd7LMEt&!duzwrqOYYM!Or~I-}^o>`!AK#jo2G_S8eCTyH+(F2QK$; z&b_hU-T#ec{PQ)jD_c+RGF@Ij@mWf}b>+73xizcQ7#JLKEvMG_^PLvzEisyExv+0D zCj-N0rq8}#4=t+|tGH7s@6&tr!Hw4?^Vc4EKj*)}oYZrE5C80#p|JJ5iBR@TQf7O-!%Qn>2y!bHlg3t4HYHRO#m2vKS9_i8l@b7}jGvtn%?=AG(`Sr2- z_j$`pv%@yj@q~QoGRUhb@tMlVz%VP1je~)Kfx+1QL#9Lef6-eN7gJ~5PMu}7IoSWs z_vE=U+V$3E)sv^`zMFP3^T&b1R+f%8y@HPan*HVE{=dAr^NW4T>mRQF8hw92J(n zs>L#u;Y!sC>vetK&VBm2YERb8nP*FMb~s7v@7l7V?oYRMNl}i}*Q{?pqjs(ER$D%i zng8{bmZNWS3*x4hWvbZE?d-c^b6a%06vO8e_W0t3CKR@-v z#PGv}zImw^&WrVkotdwDc?q9gsl#Fsj#)zaNsJ68-wd9e`FzYr-1ZhD!-a?)e#~6O zmeYCnoH(xg>#>A#)P&Eq!Ev9By15*BZ)LoU4=tS(bG7bBQrg{}f3oKZhhMw5)x*x? z`O5Y8HkHI&Gj z8=n1kX{Voec*?bY^?tiG$?4LI&qhtUe>BCGmv{DA_IXy8;Su(BU#=W{!!DkFo;SJt zbl=;9vmT3lWll4D6*L2!Hm-=jOJrtv6)c@xvi{lp`pMgJVixO3U%n80|3csIbb$)3 z;On2duiVd^Bz@_?KU=Bg^HOc}sU)D>>JGu4J)trwjpY2(G`GD@SV*j3Koxfy;N4(?7pH9zE}Wj;=YAe{@~I`8rGSBKujdCV2g{I$D46AHxDUy(0_^3pk~GZkO)0OQEN)=3Tn- zQr4;{sVQoj`O@WizuEuZZqz(`?_c(>z2WNutXrFw9n;caSRi;@@8|sokAHSmuyZjm z@K)3wvtWyA*)CZzdD65!vmbJ6ZFsQ0tL~d!T3Ce`W70lWPEulaSM;yG43i^HDhd|$4-{V(u;S%R1C z^u3Y$%P$vg75;IowEBZ$_@hdV`~+ReS}uka|5S8-s8!!9;b&mDP*v>IC(IDAKg#^a zmh7cru|<>5#ae}%6}qs$|G%m1t@H(->A!A?#ja4@tG2Un?ydd7={qgoKW2M>ak*X5 z?r;8IU)_9P)gQNcTQj&sSuYuVNS}d0s&WnUgwqpe@`v_hN*#Q&{2s#h2i<|wE zWwk+-hs{o{XpPn0@@Z1|i#w{dn>v-PO8)2G+WLQnTDrxp?YcE#b$=@g{wMS9s>_*I znUGkN)@V5|GU1%yr3G_Ov(8I1-p+q-v48y+>09DU|?u?HtU_#=LCioEVfZ1T%|wWIIdE^p?;C$IIJ+6nEh+mmtGG|FVT zuhi|Owf*l_o&TELU2UQA;fi!dR_o4I)@L(*-n;Si-&wYK&wiy(|9SUCqpa12Nnew% zWbI>MU`Q5aU|^Ub9`;qDdHd_1GM)@8vUO*bZHk^7`*!BXm3!m8x9y4Xp7iJD700)G zADhX_@WtD1xu+YoZ9}ly@`ud)uT`{@9^RQy_v`HL(nm+lGcLMDZ{7Ac&eqIxBPeh( z)YObv7#O4)i~Z8nrc3XQv6OTxt`{{{ih5Vdw0QB)@?TT9&ib{kH(}%c%?HZ$X2jlHT3homxqGs5 zf}H53wdc+q`t|XVuKwjmD)nZi0oCvSbn)@J|Jhf*dD_?V6HiQn*1taflx<#>(L6Oy zo3p<6j2xHWESq<}W>)UaJP-T7&(25MvoSE}wq;9$oXrsM|CUD6mXcNZSH;feO}_KQ zQMT?ENB-qb!@?gE`g}aE-Ctjqr3gx4%O3vKuMstp7Rv4!Zkd2b=s~_P<{OwL+DIg{7u1`BtX1fDx>;LF#m>jqcpj zS3aBHtes>Sc2zWb7XSV4mC5raePw!t4)#KwybG_trD|!%|1A# z*t4#>>V4(E-84R;+WnIJyXM~Ye&)B@ znGaTOYFs{ZzHUN7Uf39KmB+h6x`(fo%$4_5BeJvS#R?!LfBse|cNO;TA`XGa{m zzFjhB_lM1{^O(gya*Ib!TK8ggU9*p*c0*NuRoFk~%ks06>YwzQJEY#K_c-;drE$5K zQGCg~oaG09CTm>lhXl!mNlmXS85pj#^K~(ZUft&R|LJASdRTqRFxThiSJa~6mGc6wzWuzrrp>ADqpJJ(*ZR5#Y1xqhL=@63;J z7U3Le8t(#qb_QI((KD~-$4n!xJ^S9LPk&dawlZGzP`9LZ!>suAV!v)(s+T=6#fL3q z!Nc86Cwi7^$yQ`3p1tS!GiUkFnGMB7xv#&p`PX`^k3Rj&kb%KrQ??QV1H%H(-ooAy$jK7_UJruRkoa10p z+tHXeji>)j=vM!_uWHi%^Y7bNC%v4ZYHv6FwsW`6%NhoEm-?5R1lOJmes=Fo^0dFv z@9kRW8a*$1D1UDgf92YlUp{c|stNzL;y?vsNKN0f-`oBu_=(>>5u5tW^2_mKoDQ;f z)mBsAemV1Qu~u@M@BK%+TK?=&H}>EBr$$%jgUNSAnVkxkV;EMwPe1RXxodaA8)y!k z6|AlHTk)V^!!h?~!Qh<6z~B(37H~;iPjc5e(RouZSx)D7^O*D3nicXDQnY3k5zEgeA&%+L(!G(Dq z(>JVRoROJ7X$#}@o7SqHn{5soYW;FITEKL2c5R`3f}-#&r%S=ze{VZ|`~Kp<tAu!aldwyjTk*&eV-Gcc^+emK*rd%2<5JWXS1ftf0Q)Ge5`SmsRQ za5&2rRK+ZwE!iL?YY~|>E!-_p)iU@dds9FA_wyng4qyKmX&neL+r$2;&NeNMCECiY;H{MUB?5H;2Y5T&^Kx?5N0{u~}x<^M(gcwOQpJh0FNQJ8djwo$ zxbnkqB14G6p2X;x`!`>>KePVd!@1#4n*BEGUKBmwRdkv6dG?l`Zy9YLr`+NOJB5KE z!;fV?6GMaAf!je03=Wo`*`A4Rb-u~edo^zPp*xw9^{D-hR5sxTdgC^RhhOnaQnJ zThp9WRajSCyt3oXS=W>!>)i5v7_O||?8wpg$*ab9qtPPlrQ4&MZ}| z%{S=KP;1Uoi#sU1DB>Z*m6ts#t#{Tuv|S?lZ+b?vn9ib_1DVe*-dWZZz2$-Vx*n;7 zmq%7czImPAcP2G{wFO_Rq11|){i!Q+)#V$aF1}gLvVbWweq-dB76rY@wR#^+rvEg# z&TjEs>AB#&B`bQ~Wt_-Xc`OF*_k)TmQvpztlk&f^sP4+_X^ac5ExLEmJ)D(+Au8vW zaB1grC%wl_jLVlY2Q047`*MjZ&7L<-s(Sl_kPaJD?)$sUxwEdwshkwGySw=7yyYLV zf4yN=abgZiGtNKK8Q01Xvf!m!PT*_~mU&{Artdybk$-gW#7d?R>FiHzZNW$Ta(rSS zB|HOz?~-0n$=Q3b=Km2}R)$xTxPNL@F*O{UG1;Y-(P6W1T-N@jJ`PQv|Hxc+W>*S6 zn-%Z!Q}ECu^T3X)1)P2QO3kZ2=jm@=8dJG*N3FNPs->2%T62$YdVc!M?;WCY-~Z|+ z>jliT%wyf2Ikm<%{8L?Q{}b3+0L9~9%>*ua#Jt#kFf8k%@YVx=&WJvfJGYzh^!c+z z@vS|p!d7Z(1Wdhn*=Zj%uQDu{2@W&{2GPUT&l;{dDQGc-Bt<-3VQw115^m6%+)Klk`tSZU5-YMpzs=jOEEw-1RcTS5|9!?gz{ zf2W2ptl*awVPs&)jFIrTm_Osuq6I-ZYo_!nu?MVw%+l~|RxJaA*SXR;PjvQu-*O;y zYxmv0$tgv8cB@yO{N(7i?9BaZRbF9xxX*o`Tlw#6ow$|I%#)VWZO^^P{VB(pb1BW> z)J~D??#gqKdM0POxO9H+&WSz6x~<~8af8wGO<`-pdA3~c`gUBgHvNI3y88)fsl0hl zml-NWZ&+A;%c;=2(6v5sUVnqenVn4aPi=l)oBRLyn-W*9yMB2(<|k#gpPlust}}SE z{xJq$6@-;2R929KQ5d1_SrY}w^l*t*leGMTDY%U zAvdFv|G4m+EM1v~tW=X*(}H_HyiC)zT>azQV&;I$d>0iNM9&)jE}ELbzmajpyaSit zu$-=WdA|AJV!i+Cx#x1s$Uhe}Wrm&gwBJ<>&rh8y>#vfpUhDL?=5dTYEFE9a;jm+6 zVBlT-)81N|fniCv`AlYqpW(3w-=Er_rhU`2dNFUTPez);Si&dEeHV4l6w}8Lfviqp|v1P&1bG)u_*T3jsJ)S6T;cvL~A-}`dH+9-< z3!+|rKKgg!lFyD_t9~t&yY9#7z{+L1IccrJGx6330r?MB&ir}&@tr^F|8o^TT-o_S z`~>T~S?L1Bsr6Z`0sF(fdQ?Ec3u+yQIe^OdjEp_LtRNw&Xv;+R)`sBcKW`q|p7n`! z^R$lKxffekdJ9O*IDO#N`MOz^x2pmRQY~+ruAE?fdLY}jD5~B(S}zlkqW;vV=CM~zOL#wk&t`D*?DSTo2ri6f4M1q|8<^6 z-BP_97jj{htL?@TfvgOMRq7MAm*xN9pJqOBe#Vw}*H_(&imBvZaxwV0oeP83EBB>E z711yHcUn5fJXraZJz*-3&Dkxg|98y&UBL5n+sl{?v$F7KH7qO6i^crAvn%PX%})=| zkPXPO4ocwaiEUzSdBmOFm67J`3=AvJSTZoYEM5JS)qhvZ#f1mG55HgtnLKlK3`5pK z1LNDFEB_=V-t<4b&2lfpl}F*-a<@;NH4_t)d2~v5!-01*_dGP4ra9e+Ie@$IblAoV za~*oSEKcrZkX4>6EpWN6=Ixd|rT|sJmM*Id*~}ifiC-=CKA2c<5p4=MYd`(-neB5< z|Cya_-xQt@js3yP+tj`Cm#_7&J-t2S|-%TF`%w#Zgs5cREW4PG3TyY)UeyD%_Z5q=cRu;jwz zoO@NSufGY+J-zi&osIUyl;GNRvy&8_|z8fCKFcw6>7 znJS-Z`5%paJiY;+B~GM8sPTLNMMJ>f?0|JQ8=k!rvN@<{^01`aT6)e)-h14qPrfW_ zWM9|wXX-wNqd|^*{~S1{U)pKr9~Q*j`H{=^*c<&WXD8h+)}L)NE_3-5HY)T_a9?e9 zDl$;=m%O?EhV+mJt4_b$`+4fppmTLmRxeDp#LT&LzAh`Z#d1rGe46Qsqr6de%Qnng zs@8RD)#_uGn08AgLZ1BE_%-k1 zPVv~8Ie&i~{D0-Zg(q90gWvrxjPyTi{DN)soHq7(znFcMnf+^TpUOR7Q@kXBVfB-m z+a)`9&QBJ)SM@zIU}d4*o*$OtAkQ-}tZn~p#W-W*H9t@5UAVNA`|8E&edq3)E!;T&pM(1Gl{HU!D|k{E4F1|p z=4NMLXehZ-S;ozvxuq~_1Bqt3CU89D}LrQ8+U9h)7-x8&rkldO|vZTCA3AquRQ&K@A`nt zyXNOCWW3xN*BX6GbMu#ZuPi*j7Kg2#%V?US!sXlbDobugw^Y{a>zlgc7McEyo%!|g z;{F#W7N(b|?XI&)KUf*HOKWr8o{ZPsriQ;%ZA&m{0ldJf*-AkOEwsxnZbhv)N>|-W7ey^^2GSS_% z;@1*4cfaf}Zwz^5Z!c{W&YiVAr*+ruYLoPDk+RkW5yFjcOV-vcyr%#9bWZy9+^Q!V zW2LN&S8Uvv*xS#W`Q?n@T&q37>T2Ox7Z2HOE!PYAenXFUj?~g`8!P;0GI*@K|Dn#+ zR_x>IMawVnGcqu&+s?2hZ2Ezvfu>!zKRLFF37;@u9GvhkCw?R23Q>!zKNb4^oIiS= zv;XP_mwwjI3xB=N{$#N7%+3ufbeEQuD?M80vPtk(*Eb83*XafS7r(kz(tpf`U0~MA zt06|0^KShOTQt4+?9FbKbuEkP`(;0LMTghUjb43C=AO_Suhi4&Ni{lC-8DI3+ z7+11>Uz~LK+3?xNN~*qJ|8ion_2$>dou#a+W1Nr6onIrbe|D`rfBQQ5^7U1Yb$@?+ zdA$AQ#N%bzFV1B4_V;Eaz41x>Tanc&_BH)le|qn`O9xgO#;3nqRw^Q9>3*s|{^$F> zH*f3OCvv7~@v_acxOg zOIYe&{rbLs%agZE)9)<`)2U!^&|NRhls`kK>T~R+@)pqal+L|tTnc}RPW~32?z;7T zv#z*8U|vYPLUUNoqma+@|AsJe%(eGW5neH|_JFGA6Dj$1FV9bTwducT+!**4i=SLHFrx4LFb*RIBes4`rgT63cC?}etbNtua%fBf*@QvJR`&3T?#=_m23 zXD2+;{#LxReE9nK=e@6wA5Xs4Uq3P4ex7apv)9L`El57YKCfzC>6Q(`cr-$+xf!5 z(fH)fL)vL|e$ORhUu-Q~IqO-Hx6&S&;-$$(&+E^uu?Szq9rN?Fjy%t#|JB;})}FZ+ zadB?*rR1rz>m=FE&Goj>sydf(=(@h%^Bo5+&$@r3e9~sIcZYNwj|ZmBO>B$g|DANS zG1K+=R-y0O&Th*OIP2a19XL5E^-z(=`8%Ie=SJ>}i)~iD*6%-eLiEO%+-u9<$$2W@ zyYHX>cgNZ7bvcca4lWncSBAYkTP5|`ihp6 z@_s6u$FM(V!rYyom;$<+#Jt%SEW19{>iH+f`JT*qkB_gObaZ!!4*A4%qs{5oR`bmE6{prTF z1)_P*YflLIH1{NVr$$9CzN>vVJw%JaG{9lqkK;A=S2UWnm*r-C+0ggiHfGZv@AdNY zr%ao&yRJql>FYmu_a4zxJRdRyx!#CahR(%H1?5r(D3=9nn;-9W2Ob=K%J^0M8329HW=H64d zVZ0!y^{v;mLW3|x@e2WY2mCE1eY%ZWZu#(EKH6utj%({J(NvFO#kKoB#NSDbesE;U z<>-jc`IEPtjxpP^VbkUrZ~cCoL{-Xi)Vj^(P1l@zYntYiU3YE=-PF`7_0juNq#|FZeZ^u`w_-Tob91pRF1S z8l2F9ObKPjx=mS_yK&mw`jyX0XWv=bz9s*@qiAj4+aC>ny=SgA9X)+@d&=HlR?AH+ z4d?xI`TH&M)w|f0t*_TzY~#(oy3$d$_Q~v9^))TCj*G@{PxriX`x1u}tJbA_a4-JC zk78TxeML&oM5gYx%b)oAOHli<-$mNNZ>F6+@bY9_W@ApIm{_32+!XJk;WI z@LkxX%6X)qQ+u{*)>OR@IiF>sV;I)6a^04m5~cBPMuWlT1L3>QUh(;9Yjl6-TtEBt zjZdXZ<&XZ}z2QNccvarStmSi;+~4-1>PghrJ5KwzTHSvf#kxRipU~2nI^oC3D|41_ z-n?7!TyAh?^qQs8`d9blo#eG!Q~R5*b)7ta-OG#sk_hrsX4IdxvQQu!>gjl5rGd@a_3y% z|C`F*6F>PLt13OuTe>f5r_ZwLvwqpk3=9t1XBUcA&7ZzojiF(hygXw9n^n~7f>_D9 z%U4!EE#9)`x{CRl$G^+6EWXV9GvydxojX7O+sj>Fr)R#rmAxf1_CxA%)0!`Jwm*;9 zS`~F22woEEKD)B%Fq4GCb|wafh6huH!u=hluA7<>VQRzrZ{AsHleDlnw_wYYGgEGc z7wOqCT>X73b${52?(`XRf|lWplkDDir|Vd9wmr$Ns6j`peO2f8n*2|G_Ir^_@zF?+ z&z)wrnVzwSu7BC*5yKXee=K;i`tI~utP^U^2Uj0GlenX!XSpk@Xqb`KzW&#<_O3ei z+_Utnbj3BUzaA%VA5YmHX1wR;zHO2L%347gVj-(9r#*5JaNBk3dEVtp@%U-6_V*Uv zwJtlhPJaE4A60AT*?Z@Gk>s`crYvh)c4Bkg9*4c$=9xElosHU9x>rp9|4O;~2jZ9G z?EAQEzWP<^ELm33>@&B#PE@Kw>QBgomai8@*^7TO1<&3Uzl^u3iupnw1A~KZVL1y! z!-k8345zMxTjW7JtaJZ{zxb0Io)NeG0+1eELnD}-J~dMeV?4&%1H0)+3)sToprr7gxTFMtLu^5>4!mbD-w-o;tEA+2dXQ+9wf0-{#!e=F_@KuWnvwO3$aOjI8IjPTf28QtIrK*(~$S zPR@85wfv0EzFzYyGuLOaU77K=-7e%_olj5y(oN-a=ib%qll!Xkt6697BE z>z`jQZ~wDferkk$-Oh8dca(eIToNv?4`%P1%dtj&{>2k3mzTWxpjoPK8(#c;-K9SV zeidHYcx;b&Z{vaB_cJmNUiy-{sGrY9SL*v`$yaBM^-uR*4x91*=egPHr&m39jb7mY zY*zNI)YN(U&ukeotQi;<+_7W~W@cbuPzcQxarE20Yx>@RXuX^3cE(;hvhw%V*Yn=L zd{N-jk#XKlH{Qy9nI`Ys-!uDqUG#f)PP}_-|ND+*DX*f+Hj15n^oosP0-Jhknl`7+ zyFc;!?(gb23n~=WrPVTA$f=Fedv@UaW_{6V|813A9anU5xS4jJh?=?cN2#iH=y~hA zYwb?!eYAME=VzGr|5D4xz99jtS0DN~?Z1=RXYn)XS;-;me9!8CUwx(Qf`-nk;IGRr zAG`dj(@DOl^iEYw^Y_?wPb4CCKF$vRzDYde^tRKRULWUw@v*u-py+SK%}Fc2oAN*Z-c9cWy_9)Hr&t?z9lE2f^qQ(v68Zk6;H07x^aQich}NaInhfjYjZE1P;upF@bJ8} zeSXxR%R6_oG4LuRTB$MkT0b_9vTSgBe@5qj|D4k-Q>^0uKkG`f-}h!tD5m*5+?kbL;PAmEN3kjP2c(b?tIq8|wD#*icuq?8~o@ zFJ=nQD)F{?eLPq-dyBsRo}cw*+IMAl-TC9-`f=ICrx}IJMPL4`5@?Z{QEsq?$un*D zW$DE;gh37GtIsbd=1)(~0u3ViNFQ8&ZS_y-_(h+u>4mi)Gx>6*d`tFqxn8xM7f!67 z7x_ebYSa1cMf3PgULUn>klOCd;J_SzpyhwWRr9+{E50tBlHA3*A&aLKiNP2&3W)-!9i&W}9%XWp!0y~&DZ1{D>}{!iw_cwD=2 z<7dW$H9P)P7O4Kebaji(>A$=ec)}-N`|$hyp`hg5S#jL$uD4syUX6{NUT)B`xv(j4 zZ}lso9)IJ?m2qe9S2UZgIk`rD{>|^QZ*P4KalO{BYc##0qW0U|^+Aox1&f;=?2wI~ zHqriRI}9Es`MvNHW$ z($?8aRyy|b6+dJ;avzjR8{(TXc$Nh@2**iBO6JbyV{lmfCGQ_YNWS?qUMJq!?~b&I zRx%kBF|KXBx3OYz;Z6U)>)*UmV7fYWo_gE#Ez5n1S|3?Th@a4s7Je~HW5Oxb^9QG= zO+1%lee4F8$(hhXkGf}z&Mo=IxS~~VM~M97xSbWhb!mnE_rU&We({Bx!oH1#lL{o1;+qe3-HS70tEn<`wPb&}V1 zWwLW{k>ZxJpUU${x{odofCGRcM%q1%qs+ZJcblqatdy{=_Jp)6)IhiRNnHd7! zUk~upS(H>&s{Lc>f&F?9_i)be<1Lw~z#<;>`OcRr=leeQ|7Qx{J~E} z|L#BGviQA#``=#f)2iv6=U;v~7iRmdy=Se%Uaq&3*F0esePuq$CgiWF;B3cxSMS(8 z|F^m(KB9v6|LR>re~Vkct8ayxu?pW?I$&HHO1Tz6-)THW6r zx%bT0#s){&+Zl??ySTL=On1?;>2}ZWS^8@=E>GKdcCE&X5XHjfJzGH`1IDH2&GPpy z;tMN170KkASf1NBEx*3^n%;{EYW>*{Hp;&~@t~qfw?FgCm%`raM{c)&ufN7RJ!Z+x zx07beTv?f3_Tt3>#<{YR*QQuqHOyZ4ODzA|rK#Gct7D5MA1{3&9)Im#^5QFYTdKYX z&-^xbhkc@>G(*D4wmz5l$FjD56f?D+Z}Qo594xw9&)79PhU&@hnYCxaq+@$$oD}yFEj{tpRN>#V*Y zrYrvYwed7r6$d*dU*D`*f&L;dkHswJh=QIUh1#Jtl~3f{~w>7 zvD#+K`IR@L99}Afa=4aOBe6Lno@0Z$C zSJQeef2YO8Ump+3-oN^9vGdZ?3tp5hJ6gAI-e;ebMR|p8bv>=E)0gL;O9|Y|-ME~g zL2XWaJMWHlVxRr4y!lft|Hu|pv@tL&Xe|j~F*aSgv2pj86SDnT_queWwq&&a`t@w( z=FQ%@vo1XO5!pM(Zpp#LyG;uoX!80OZ020S)%|0p8V5s%guYJJi4ATN_CjfesX8nS z3=VUP&!rkqoTV?JBz{0ZR7Fb6V&eQ$vs2c6kP-j2>*8&*(|h-w4C1*rGttvkX6@2V zndwI>{koY0m|16hVr~B}b@q_{W2e(9m1R-hKXwS4i#Pt7!u{;a*E6oNwOjMvw0t?( z*j}XAklDthet%l3_o1alOYY6T#P62d_ILKB8wdQqyqIfkn*TFRH)fAh?cU)5jN}CoutKXKg)l^>W<)N%B#otS(?pXfhtn{;(&0B6i+P~q= zp37W218Vo{x6G{CG=CRsKunW$Szn*#Ly?BdO2v=D7?-9jUdehvhOXsZfpM}2jW@0G5(zg59CL_BaQ$McFe7&ylAE@MJaL88vtQi$^Mro~x zN98ln=$C3tCey1$VO5*$0!^hOGOmg2k~6vW!y}cIK}AM$(?PDZe|u7YYOXcEIJebr z`XA*Gv*wp2o946qUonAq>%`-aek58=|7$Y+>y_4?N5-}FsV5Hv$47XVybBc<&0${9 zy3WbTXu&V5maKK3U1Ih`+fEIOct5jDbH@p}J=4P557sOQi&s}qd3ni;|6|}xzhIp^ zj}BZukX^;>&1u6L@U?I9zSiQ%zYAwYUFZ5baUWzEiG$J)5#6;VZ3dF^0qhJKhJ90N z_?kIht?*)U*lN9a#g!BWhA9Ut^DfL(5$_N%6=jk;^N2aXdHY-66rs<@XEt0ublazR zz3ASLv!>qIq9-utxz@F!*5uX?DxX_tTD(6wv+UaC7n#mxw^xeRZ4z>QbGB+$oF&s8 zql`6=w>&C1wdi*7)m`!8LWQqhy-kVu=gg)RFSRZ&duch(>dd|eD;5NM8-=*`9MSvv zlhgX!lE|dJkMlFwikSQvLu%53Uu7{S#PNcY8-tJd!Q~mbVZWXgJmbw(3YB1B&|S9A zt;Wt>vhh?VZ(!l;C3j8yyz@IBJ)gvt@nL4*qVj#rQ`h&N``Iq`nf==l*4C91FnZr^q_Ax{8gURpO*spdm^BKR^Y6kf; zu22;JSSsESbyncYuld$i=QYxHsdu18;d{(%u-yLv5V#ormp|Lr`72j!pUc9vZ_fLj~Odi>FdF?{oKjd_6 zPZkQs`*fsT*cb3OY5AYVWAjZ7-!1UVT3TE*kAeO9qSZ^iHyqvZW@gy252>co?_xU5 zqK}=qoZ1xBWz>^a7r5o?%-HbMPqWkV&d>5WeW@+TQf^u zHwc|`)$ks~`3piP{1iE1ct4#p-B`H7Zsr7j%^aOXd8ZRUnHi=?=*L_smMVSYJUJ|C z!M*isqaHrU=uWUyGxU)U%NCt7q7<<#*o(i|kcG4O#xR74ht!k7%8F z)iA?T3Y?4_F0Y(?X1U(e=ZsIgBI2IP)g*VHVPRu%I8h<^dq?()!--zJ3{!XK>C~KO zRc5&Iw8lauH}l4n{a4t}?-2T&X8hhGVdG=BOM;72!a`5mF27@#vCI5;jNR+Z8{t37 zPr6-N^d~P&rXuQI zi=L~?``SMAdB)GPdC`CI{Y~8`cfQIBI?Zt9f6u)xXO8Y&fvbaVuM4>!J5y%vJ)SFH zs;){!uW`9r7%JJP^QwCF`d$1X>;JpO&MR9m&DrFx-|MSjXEHR1U3C;>V11Y`;QV;5 zD+9x<(mMs6>c$^u&XLe(eAXYjYXcL*mAIW3r=K+tv7FBTOy_sN-r}t31_usxbz6x~ zdByw0M@T=)U%v7|(E6r%3ogC+pEK+Cc4B3b>G9Gvy}ucar*b*y zPFWBVCa_AoctQ4pl_9C?=WgC#@Q^j?Cu85lR{z|J% zqy2|t(iNw!@-?W`PU2>p-qzR2vf$X%q(=%@Hf$>GEk2og^~OO58}FEFA73m8{=d^B zdH-2s&y5FamX`FDEwHPqX83Y(iu?+0h68_O85kHGtT^mgKh1eQw|w65qW{mO#62b+ zwed@Kp4_X;P|D}9y3AeG`0d4XMhD$>d-m=x_N|e8H)pcFn^M6By=NCbKb|qUc$&`d z%$US#E-TN8(GOT=WuLhm68B)`)E(P2S*|^KcSERxOJ#1$;vM;$9$h%Oh;LV;-AcuR zSK9IouioxlF4-b=tugxRx%$2H_CJ}g`P|E=D*Zs=%oy-gj8-)4|(?NObl_02qZf#i}vxkY{l)MWAgTsj*GoHk5=B=<{xZv?( z*B|GLCU%i}X9X8%T#noMzSaNj-p^spS`k_wwg~JJ`Ma+${7dnq1Hs-=_6;t%%~F?Z z(rrB%vR2J42-T0}`kN)ow$ROVB^UdmC|mytLhJ!kxvakCtvbVG`u~KiWQA0YkYM2Q zbrnWz45E8pFf%YX{N3DgK5-IgG13+3CjZ6_Ez1?pbJj2~NZQfK!oYChgLtHGxy?1D z<6I0H@BUprRTstYy!!JSpQ+4&$xQx>nKQeZ{hB4SW3Rkcy{qq59I{q%vEBJBj~gi| z3|Y)yBwQI+%={m&{^F9&(kGKlSME4>XX?$B=YQN`WlojQAB`%%!a^n#7geh2-TePPDqWU1@@S7aG7 z4&JM8%g-slTyb~OcD?1sVv$WhFP^E~Jg==jzN+t87vENk7iyjlGGi`mn4P8+#c+1H z26tA<@qqQVZV4AQJc_%z>eoW%)YgS!<@fZS1?3!Ddd1^l*3!*$&i%Qyt$>fKarwQ3 z%a0BO$Db|QX?S)2`V?E%fZl(Cpm=0pUCJvZtWNQb8k`q_0%$LHHN8W zjXU-UpRFu&W(siL-TZ46`#JG<;yFx@36$8V9iJ&>56^%R0%Ri*CfQ19(mr2hP5}lza+OGSQ zDcXB)Sc=d-qkjv;D&OlAT`&4y-so^wq-bxHfy7mt+lBKKX0KofY2tB=zt&Z>@T1<1 z!d)xwT`|4WS$>m!?JL#Sua+Gts!j@(lk7h4tm?JvjNpEkW0w~l2!1cPxr+TEm5m=RxE5hXRLGc<)6g5IVSIu!;(0@v(4M}=;NFN z!B>`;f<{JHR;bI*IN>tZE^1N)XNK9 z!~gC2_wo1rOSbp_w%prTTi1F{`zt%cU$$A1yT!s&ZCIbnG6b9tzjN^Cn(y)V7TM0- zRjk?$3{o3^ zU;3kcZ{hx*M^108ds0{X%G`cMeND-Xq)esF=KG`me-6&S_${*f%lY^JWosX$FAu6Y z?R4qa<%MtMf2{fUD)jF|^LuLFU;qDm>-LwGvXkc+D6C!FbNGW62F3aZ~Q)%;LN>{}}7!XqT21{GscAF)iy7yuHu=X!{CIh0)o$|+6ZuKPf)0~Ak8-i>-L+!Vf{k0s(r;$S zE_bc*Zn#vkV}rvvkypn~e3%*XEkDdZ|4erDO#W!wDFwVyU8Y`dXaB4;`d=}(-}WoZ zysF26e?N;&m$f%;UU8al#lMe}KTa}S_3f$Y`>ygA`H}W{QETLxeJ=#(-(OPvFKepR za<<=3o0JzRx*)&j;OIPfpF= zT6kIY)%?q@xz63Mt}NaExAJcB`R!jX``=&Cs=4-I`MUj{^1ol4-g@xuwg1)s+rP|g zi?w)jVd?(AJFlExZr7Kc_WbXg#qn2u-}}${w&eMXaQk1stM2ZUeR=iNvX%B3zOte( z!yWfGJ}dclQUBFnQ7Qj}mF_pq6CY+U9ePD&h z9lf(rMH{ch)=bvh^XvMSzpncio}T|-E%wiw=~;&>qfbTIznin)bM>};F461vxK7{u z;O(wItohfrJ-@f4cedWOCd;|1r;gP)2fH%)D{p&UR6H-|z{=vAAFcoEH!crdJ>R!d z`{0$&|6|woe&6dM{XePIDk#SOU+}g5*}ryZRo1=oje>zctE5_p*!c z#Wvk9js?{bSN#4sxn##%mg!yZN{?NBwY%!-v%Md$nMH55O3%J_=W5iJUrxL>RlC2* zSgbq|6Z`gW)Rv!Bb9XO_f4fh*!uHj>w}IvFi@vVk=b~H{El*TlxC`g?RgdY0>mVop~R#to+}_?2`NI z>;3xs&K7J=y*i)s?)T^Wmu1_%t$*$M`&smtnfohR!-^*b9RAj*wdlS>^LO!dEyH=& zSl+HSJ#Wpx@U>X-nT?~=xvA4@O|E+Hw5kJcjGq6oo5nDZ>-+=q3)(@`Sp9rYyHeZxJ6d4PCB_`(c_Z2r;T18=YH<8PF_Ez zc46PUKW*P+EJBn1{+M2R?$e8}k6BmiU0Qkf{)KmY-IK2M2SBbG@Rs$*tlpowz^D+z_1%?$ zVa1JzDL-ppr`hGczW%8@@5-#Bd$TU@Xk&kO{a*V&=l(x`%--&JfBV+v^!07(Dz71H zA7}mRIJ5NH>elG^WxU$IuCC+km8lJ=mj7dJ`)6|fHD>#tljJHt_{rK>X`~l#NqFqN zwJ_IyemtMbs|8BZ>%;cHlCAnYEsyu#llP^s!}&8N9m+`(uKK0@KYISZmlJkv-xKwI zcjZ$a_I00LpMUZqa;~J+V#W8@ZyNe;yI>l7d`_Ki^tO=G)Ag@zV!hjwoUzqY`7hgF zw#S*W3u~ud-Z$&{p5nPI3@hxHs>@F^35WawK1PR z)r%!EJHq(DRJhVRcs_~*I-c1Xi^>17oe_DS}V7A!V zlk4Q|7c7_C72AL3ujtz!N6WXA=O_NHxHwHbyR_crSfS-?RDOgK}dwD}1ZatzUJggv+F?W8)5^k1X@71S_KS z%X!yCKI32c&iwW9wXI(tR~@hth?0hQ&30k!#yTE`UhR{y7qaeavPLbvE1F))BCy_d zy{ymO)$6am`jDy-N#Vdiue5`A0F7vm9ts4xw*aM)dT%4-|y*X92agkU6^`3v(| zu3e8crB>7y-eY9&2zOE2aN;%R`Tt8ZQ@rNh3-x(&F8uS~u&`AM-TOZO&z-b>gYK>a zg4X9NPahArtlzdfX#M-Yt*REgR9c0~b&fHm=Sr0?TAya&cVE$o#g!=f$E)~ZLZ zTDp4r>bpx$CYNV^zo)!#zJpoiCp+8PiU_|+XRX6O?{1bomGgDIP54~3oeSB&UYX}C zI6uW~)k0hQD+?9XUq`H5sx5xebfN35Su2z8Rqo39d}qq5J((}RuD`%7?xDW#|N38- zCiniEx%K9!n?~zT{%W~Xc-Hsr4z>Az`2QZ}_w)Q4{?hci?!0FYuI7AQ&b3SLlJEL^ zE9{tLUz$hl*aMD5Ppik8Qfq4q@4ZgwoT2 z`%4Sd6jy8u@&5Gsxc$Y))$Aq@Pye0uGat0v6t)y|)^*uC7jkqztd*DVjI{r^G5zlj z`@r17%d57wI-YrS%;)*}vRU)Li?GhKvXVHnX6M=0SKpkSt9jQg@$ZgMa9kwHuJHSP z)$Z)QOP-D)EA1EGUvNJ|ZH@A_wBL{RFgwKh>ZgCJW_Y@F`=o>SOso{V+`Z+tS}$4t z{@#{0`=h2H*k{q^SgyIp7BV*9fG{T|ot_inG;dVNpK_CKe#?y7lQq&vrSnecg= zh4bsbm(@P|Y=3QXdN=pd_s95OTg&fpdb`_xwfVl!d9h#KZGX)hK6iEHWag?D(ep2^ z{r|iD*7a>s`c=Pgf4TO0dsgoKC46>2Wd9y@{}*?^I!&o&|Fe0kpWiQ89QS7r_tvj- zmPQ#wOUc?StF@ND)W7dz{;x;d<*s+GJS7*tcj{)9(wyq$`@Wg4zwl}0-CwJ(@Av-y zyz_(8i+@k;uhiE)(JJk~yO{s}kKeyeeSGun*0q;w|9_cY_5A0TWViNt&O^}JdZc~!w*i` z8-F*{6&>&Y`u_foaDRUGc+^MnD=lBIzb1XJ zVsTu-&8oF=S606(yL@DC{le+{A7@)lxwc$C?AIReNzzwji_#`+g}D-d+E%&k+XL1E33Vqex+yszE*njwreb3+~2B;^7T>MP zVE&f(6}LaV{?d7VkN`V4d8m5xjAeqy(Th!+WPSDm0uqR zAAcIQ=ENHL^G2B|s|t8>y-mvFcKi4(J`P$$Yc(&@{$1RTsJs3$+R1-+%<*)&qZSkR ztYGJ%8LxiVMlDbOYZ>+X{A<(Ixi0GW3zzfVzr5^RcKGW5SG`TsllyO_`(}Q6dD-gs zU1qC~KMzaU3Ky+@v{XF%aJ!gizx~SE_ZG_{-&^|s4gbEfHp%7i{i+~$yUK{<+|5^i zOG|J4@T>CGtk)(V4>-#HJt1r*yH&$%Ay(ye(6&v=nXqw9ICpB|FZ(n`Y(sae*^?Rd_&+9lLSAVzl)`yF#S<=?4 z4(soWSMPuB7q7WvPA`!ml+&%ajTyhh&qxz&X&8|z~3 zsapChet*Db{THFn7x`_?44Qo0-E`mYCFlNBI5cmUzg!Wxf8v7pz2@uU@4kN- ze*5b8^z)ay#J9A6kv?qoaog^aCw9xXef8e@VA|AIyVv;7?Y2&Nt9EyHaP>X8OYY}q zF1~kt?d3n>x);`j&fPT8u=l;yx`Xw1mrwp*x$FzO!`YHME5GdU*&n#*e#O3Zx3vU^2`pu%I6+_|A*0IXCvc`X?UL8*Go9seH|My{lI=*&?bZIwT6M14Zb|>%vgWGK-yN#As{OX7tQZ~71zE_IMTX7_e$yh?}~dL-uijdKRRk{`u|t;m*r*cR@GZQXa4o#^t4sB z)&^^KKT7-ik-b0b`|bS8!NLC~CLjD}{_2|j&(PRy8}6F-m3&)&VcPR`7p6VmZvD%r!uhd6Rmp(5&G>+ydp9E440sp{_ewEvZUe(lP0uQU53FTc=#ccH)k{({-( zb~}aZ{crka^LSNM{Ur zJ#JXMReGuNaL2yy>GQ8#pZC>qZ_-n%y$|{GF8bg5V!rFS&x1KzbgygMeR#dAs?ntK z!R=r2+y5ziQOnx=P5SNW^;hNVe*N85m|MQk?z_&_%J4f2K5w)4-~Z)j|BJunrVnbG z>lSPMb^GF)e={p&~jeV*cHvOm8G-ac*J?Nv)(Z+q3czGmjW zzn%Oqo#St=o@msSwd`@G@!i0zrQb{+S6R@!s-3Lg#W(H z3*&Eed-H$MyJ*I*0m9PD+^kMMZRXtkaKgDo%mGt*+e-c|n6+th%dDE4R;SPRJ>w55 z+^T!%MDvythYF3R-~RrnAt--l1#`gRdE&8JOJC>NF_>06d8Pj6W=pMn-C16LIXCgk z>yE5yy`v6}ZpNplXL-0^3b^=`vne3i$}@ky&FAuh8GmeROMQFgu5H}=biI7_=0&Ub zrdPc_zFFLDo&4&^>!c6P@h0o?* zU%yXW|H{L1yHy991=rubwsxQW4iD~iZ%@g+mN{GbR!rB{X4T{8F$+ZX=TDWd-aT)x z+i5$CMHjcfy&jS9cgNpP#akcwUt5(PID7q>TjJ-!eix@_Un`!L{jYcT*E9L=FQ1sH zB@=$@^AoPO{JO_>Do` z+w}wQKbO1KXq{as@v^u1i}cjj=9lKHY^aM_`*F+6b)O^c^%i%6I$fImPDkxGUt$hf zzW3rat%as@ygZ9)BmRYa_r?{*ZO~D$FfcDO^#3{-EW7K++xj*BdlH+g=9TuYi~Sn<_wha_$MQM9z5c#D9>3hXdg;RB^$X6| zeVhI3qOt#hSz|GvEI=imDm3&U+@>^NE2>vwef!hPP`GK1Sq_I(z# z4SKil{H-P1Yd`guoL-if`9t#W2k!VQ)9XJ>m}g_R@@Dt-jN9FD3(fat&7Nle{QB2) zd5b02|6iPI6<6}Ey5yzxe~0(Gt2W+J>wBR-|Nk7j-*10^xnaEAIw=a!pts1-BwFTb4_be}sF+3)B zo!R<$$>piiTmDYk`Rk7H@>4S=o!Rhj$wjN+_w_!1&)2WMxBcsme~&NEzxrMN)_P^< z+^8K7gZ94Z-M=XQos<4cb~rh_x{)W?SAR~{rNX>`||V~datHf|1AFdvwi=% zZu_rAb2q8`uO+Pq4xi7_Erxs>Ca#EE!FVv zs`^857wZ;(mbqJ$ZT8_xZ^r-F{|nF8|4qNOF+X5k{>E!LyL|L(zvjPW{`@_pa?{Lb z79RTpch)KY?Y=fsCVbY@Imc>3jlRZxGy8k=c>bkdelM?_%YXg;-}~!d?pDvgwDF^y zuJwPTyFZ>qe>tWd{%U&t_r+P#|9t>T9pKY~ z(%JJP*roof=?C05-L{b_U^D;GREMeN451(0B{u6l{+m6$z<%=ILs?b(itk5mTcGo3 zrrvzFZ6&%VZFS$w)Ki+FaL~#kLR0sg3JfE3!5V z2RCwkPnsAR;5>Wo)yln{H_r>*3@F~aU}?#muh#Mz!Pj%n|N7|h^;-YhJ4`-B$L4bX z-Dz>}O6ZcmC3~LK=-xJ4cJTk#4d?8t!X7X8&CPzc>U-*H)BmS#W<~Fg@wP7uTb%#% z|4r-n2ez&H{MX)n(o@yj8=CM~iA>$Tg(b=@dO-l!mJ3I< zE-l>6Z&ICmUw+bC?U!*cy>^A~nl#T};M$H|R-bFn zTfVP-cayLGmQ?Ot4Uzm?Epv~XAF>T-`n3DmqN0h+t*6r#@7l}CdwSc#>UM{Nshq_$^$0;j^ng+b-2N$)^MMlqk8)3t>9$ z7;O0Lm0ZsLy`~Yz)t+fzT$kPYrRDK^x8Ifd3lGcP>hG$rVmYR>&9QC=W4vB|gTJo4 zo&6us4XZM|$NH5&9r>}bvt-MHpWE(g>{&1NQ}~s^t5s%K?%!OsA)cvn`FWSCihcO79lkNMvI*-iey}KmNwNBNrPS%MD)(R-R z{%^wbx}IygMs2aSGRb1Mo6Abq`|W<^e7!e6dGn{3$!ZJUZS2(8z^Jj_?P}@Pf?c~W z?p?%N`&I5o^Xh1f1-HdpLGj9g#5bj|DE2J|7%6x{bF38B426jzUa*v$rW-J z=ROkLII(U*S@Xx_WBtaNp)G$;->FLfGXr!U^GptR?Ui~rbEaJ4ZcbO4$$WJA#SNiJ zDPK7_82;5-UwFyMFITo;eK?aU)48rFk*>WL_AH#J;U4MwvEYE|b)D(CEPV4evWNe@ z@BCv!aG=L*vj>aKyOLE z@(=I)^bQDnc_h8urbkrzHv@yb%|{_SyT?*84`o_+T{Lshv=g<>$av>`e3t#AOYir0 zoUJ{)JU=`8;5XCxiQUiZ?$rOvxH6}JtFQJ$@}4VdXU|T*ddl+TQtABt>Tmj{)K#$E z|G<0T?sK}!`UbEzSQ3A zY}3E~=H!XK!Qu#Q|zvRzfxi6Zl@4w~MbGaE%edy$h-*4jPRKH$* z<3{o}Wn;7WTlSZGbE9WHw6Eb&^IzL6JGb!8Uz3^Nk|!KCz4h-v)SRT+g)%W@_6E_)BXv`Kh*laowO*usWj!Liq-uJf$R2rgyweb zdzl&4KK;7A9Tj$p_T#u{dzi#s-SSHc= zRo;%o74l2&8l26WVX)LwExv8qX2!>%B5&GH*Hv(-SvK}f<$pBk{r(nRXTwExZ~naT zwb@Z)YIg5S_MOs48Zw*zBF?1%u1OxRqGl()HTt*Kp4a^SLhA)wu}mQe0oM)ZxG!}6 zC{bu{o>`D~>DB5(t;?gBLO3;9T0-vs)pZhAEfopAG5yOlmm{%-u1oHCwOrl($#!PJ zY|&LtVG9ep8eYuY);?j%jSV|oR?IYLzgV!%%5}xXHI-I(%P-x~3Jf%ruwU0NWq(e4 zy=!BJ!}=>4oPm9piflh7uZ+}FI=65V&)@hX)vr#UR=e79w)2tX-W#Rw(!P{w-MfFK zbD#P5MXw+IT(Nfx&$pY84L@mDZ+IR$wYFwYZpQDQa$icB9N2IDztYvkYPuo(=7sX( zX>Yjo4t@Dos9tq`4(IgE0_O~w0=oQL#hK6A{n&S-Ywq=TE$$oro@8e`{hw7!QFuer*r2Y)k}v-MZ=Ozh=70U$7Ch`Mx)S@s>E0#D6*b?TP4>y2 zm^&k&eOCVT!+JFZ_WStG%4a=UxqvBEUBux4|95%2RGv|36(;;>RXtTm83A zAIp~?-dbmTYugElve33$SMB0^q*XOud~a+{{N9{wCK=h6>ES+`m8SihvbTFZoz^~XMS z2|1l&*J-^89R_gi<~tv9VAM=hTG za1K~_$^5VH*Bk31c1qva%kC@Gu%GdESw)-w^{wK&Z>cJDJ=Egdc~$;Sbo^o8=dnGh z=KDl8IV_kHQvc^t{l>fO9M41E*q_a-+P5a`+_krpj!KxXV>0u2^ZG^Cc@^vL$1eq| zE5`rW@OeG|gN314N`~@M_iH5VcYSQPc>HC)I~yP4jZ>=vgH;%AHv4A3T39LUoG*Ou z*HhgcwMX;5EML4PXR1ZXp{hGor|p9TEPPb!O3KO{54D~8m>i%Jbfu2xP{D6z`D=TA z$lMFRnHyZT_L%(q=ypcV8^_=F|D5Wy)I%*XZLVwszxA~ox9P9u`j;o4-Bmk5Kx38} zuW-mDkxTm5qISfqgk?v3{yqQkL;YV2w>9R}{7sDrQe<$KJ-6$ljZP7x?dtglbo=uh z=7*J=?5%Nm^|npp_{HP;4c;CV=Jx&8a?$IhA|}sW{qe;7u!Z(hWzTuod+bh}b=P3t zlTWEBmg@F#q8jm=MB>+PWwu@Y;lcU1Fc!Y4_E)<8-}$X_@8!e|Q{~(8>(;9Eb;b() zGwD9D_utf%z2EZ>U%vm(UZ(ujQH#G<@*lOFo_~B>y}Wj(UOB9}u5#Udu1xW)mp5Cc-3dy`>%O?f$LO1h8{2=?ph;nCA2%7Y z^B?WM{rdXqWBs>hwLd;C{7P%fazCJcG*vE+%0(Gq1R-I8qM~#&Mn0z7t=iK ztLEL4(_)eQb%y)+cb2*w6p>wy5}<@~?>t zWE%<`b{q=x-S*D$@Xq(i$9oqZy8Lhp&w}?$*}nW{c&Ov}&}8<{pO>t6c!pX=Uwad! zQ@3Z@$H!L=|0t}OeRj`}kN!qFb#Iz~Pu!aE_Yn6DuE4UxCR2J?9%#7T?42C&f~jWp zwnY#5=ia(?N|5!0wot>DLz|bm?|xf(_r=cV#wPo2&7LQ?M_2x+u=T});GBn=E_Pmi zD;j(~PMo#A@FQdSt{+=B^RBJW@_x%Zspm`c7U^X-d5wQ*JwAR@$X?7!{!KjS`f-nE z%E6nJ+&O+rDyI1cZ<6Wq-^#TtM{t?X>SkvT9+Um;zuN4saz^C;_1dySb&1A-j+e_5 z_gk_r*i|IL#T{E9HtlezrSR6`a|h}k|Gs$d6(XI5q%uW)|1PUUyi#n(b>`QNoPvFvDCNB@P_?6 zC4KD}7ICPmmVN%5y0vKAnu&UCr$u*sc8s5Iz0WpSUH^dNRkH*4o67IqS|PjR!}i3h z((=j6+q%x|UoWcrS7^gdgXa%siiu_a*zoOX_=n2)Z!;(Di!=Yj;8Mux<&t%)e_`wu zkKfGpQL}HEG=&MReQnMvwkB6}#k!Ef?@lkISvp=czdQ3%ob%FtUjKW)EbLxQ+7POL zu+-i{jD23Msa|{l%gvvLb;Yl_Z^)#6G%5Spab~l0Ww1ecm>tWX8~?6(W!&$GSX7=L z%=IoRYm&TA_uY;;y(jL8nY?L!_C`hcZQDncnfl6ai!VLC>U73FhcCwI(C3%4EA~2C z`)+#cyyt7Hc+iu?ZwHGFl=zA#ZLmMPP18&4S8DL<*l&w#uk+>HzRJlT{zxdd^nzlw zV#|a%jw^VZ58DZUoOk-k&1nr?1|g?kovt{qTk>|sEGxyVSJBQ6Ez(*>p*8hFM-nI7Yeryc9Zm8k9Jm6!qrlCv`!@V{Q>&F$lFa8aSUtoGh&$;nd)jNlb z-IHqVe*A6Rb8HnaL;{l@+O^tRmJ#Je|EC@F+@)q3gPMXAPtJ1;PnY+LkH z-TGmt+P;@x4&2sfoXyPIKILHA%})~x_HW^?-Sz0Ws>Ynu<_4Gl(Yi1Ci=26PUgwSX zdVHMim*Xwo%Wv8~x||jd`6Oz2DDBS;sp9ObofA5Xvyb&Z)-^cR&uMt=S!C)*1NN&X z)1+F3ozA=qomAT=Vd8u7pHGTwJZJl(V9_^AKO5HmYt$%Y`1j8A#-_5p-=3`a?_IO= zRqmFrzZ6{Uy4>YkPI8|=ut)j)@k7ez5B}rscg%I=FRS0k_%A6vVd2`njPK@b4hj0Z zuB_{1S+X;C4MWb+WW#+y?(Ls{o2otk=MZ4{aLF&G=b{(&e;Db;hiN}=;pxAU*z@Qu z%TEn0k0-O4Tqmn1_3$>VXXW+XcVzRm@0@XQ7g^?SNq%&5`{VQ9<9of&Td}$8&FT6$ z)%Ds=;SKw_qqmzJoIiD%O2F?$8yHwMGwoNNOR)K-?q>YronyazL&2e!JvKAn-0Ru; z)sCU8=YGA^sVjBo=xIQDP-Y^j$3`pSH{&E{=fb3 z_Z+_c%kO*?QQQ~|b z7r3~t@REGBKqB;&*5NPWv-YOgEjw@TQ2(dm>;JaL$4%LjJ~dr7eBbeT!-tO48}$c; zdUW3(duJ;BQ2$hO!x0DfH$OIBFr33xZnetDwe@iDZboM>*-1V7%3nJ;J3P?t>YlJ% zyKYVH!zJe%O86{)iabA^^)zSZ$CaUvj`#M+M<>J_{;{zy?ZA(Xg;zJ#s!P?~<(eOV zpzw^&mAFv0-Cq{GUibCI4avo>U$-tSZe)ckyUv;AgFC`@c^vZWnKGa6Fqcr{ZSlj)YyzMG5Tl{$KW5asSSG z@%R6KE#rA1e)7TbdHerL?YDSRcc;w9GUrf#TX*PW$nL4ujdLlc`Q5keR8zvreiCFomaUq9_>Ex#s72Cl7fes z4~`aiatQv{TXpP-o65gfO$FC4-Xbb2E)jNzkGeWtG)nP^7F@>lT!mqw2GiC{0sGV! znZC-{uPi)k?~$wPCE67f*P6~;=R4_5zmhlW{-E0*JolOfrX7(`SpP@CXZG#_i@H6p z=C1gd%*c3iE8FaQ_j|i;S+0-@We*Sh81Sbe{;`$Gm3%kG!896S*n{H~Go@iYjbzk^Rf+U%kwT z`|_{IR7z%ZVC^LCO7=e2r;W+&r`*3)T-d*oyH?(O@$0E>U*36LH+8G~QJR;m-t{?w z|JceU=FG?U?)t0nwym;E`D^WrkI9SwWUl(V@1(KVv3^d)oyi|NT%Uy6O8b60O{`W3t7_1#5RZnu4V``__**;c~^+@YnD zC#o~t+{<`2H%_eFNceS1+v9bT7Vp~G!mfPPr{yojBZ}tgY@mu4z zQMdThRN0rEQ}4)?l(X-tOH6e9wJhx2+aI@c!yjyIPkXc?ng8IS$jJt|r!0EbuRX*O zF1qa8`a@TKvOk{Et#@RV{hhvSxqm!!WhO|tB?fMISH0_ks`2W-ORoQ0al2tz`1^z3 z-Jd>AzaQ1Wtha}=-mad(RyOv-jc$WQTNuh1J-+MhDZ9S5;)Ah&-goYFRka>nsa+?w z)_fA_Ia$yDHjnx3vDVHh{!&~<*?K`e57~8-&GXLr?M_r&lRBS${e|f-^6z*5+E!O< z`Z&)yUWV5sv3{0o%GUU_y~0jHTbx^#>}Fkc_qyd>-C&hVy-c^fTNzXemSr$qd3axF zRpogR#;h0Si|XS$E(nPUTF-ae#`g68**xu!Tmg@BO@dO(Ll?iEF>UUPNJ+tv#mg=% z?^sx5emwc)mhBq8&MTrjvW^;USe$SraK^eG`TB2hSAJ~V6wjG&eQW#vrN(t{F6UlN z4YAjGyvop<+dsH344?drzExpK1QOABE=M?*3xjRTtj&Xnn}SjBVUMCwD(w zbGrR*Xu}^?))Vmot()?F9q+&2e_&qwt%sY7em*(1rK#+2%d*2V4 zyKI>*Z$-HSqo1}+klXS;qC4-KeCYC=a+cYP_lw8crro)2Apco!FJrh|1mo=kd4FF2 zt1kS1dVXShd4@rF$ef1i_?=SiR>rFFX-kebX&>Ii{`G6_2l=qhOMyN+YUwiy@p;GaI(Ae&kzt0{IKW8KBEgq71(A7NQ=dbR9)3-Pv>|Cx7W{kl2rkL>t!))`ItRdsPw zuJN^+FM4rxWvutszP}t=9C=&cMNllJO!wUUcP(!+oTCdZ-OgEXZ;#m~_5A;{;=8$q zn`%BiSS2T2|MSF`zKf~l=2d?f-ZUIeG}l<67L?Xr@;lZ0M(^wPH^*Lozu)~k?w?JD zdCIjLyYl9mPXxkxw1>xFwb;#oZPe6S1ZFC zq=I^lsp=a)*>#9K4hUi_FWdFaQTlq%l2!s|XBPyCheXUEUj z*pJD359LK4W$Iabrg?%~$(smqF?+upkp;`U)91XnB6w!veeU>vN&5unhpE38ep*nI zut5CxyW0)drr)|KFLzzS6O_a5$OW!3m~t!_osb|K#U=<>zPH*Fc>4eE4c+$_6Ae#!2wn|Xcik|TLb zZ?Y)A zpV5~r-rp4Kv1QLMhP=vO!8Wj@!=@^rpGVXfw zdiQL%cd;*$75rx2xKE+WFw;vkr-(0M-`;IJA zD^fW3>7v9O@2z^Nam?S%-#gXzAK4>l7Sg|}g?H|)zkx?Mu1dcv@A-0CY?HLM+<~+H z>re6Sp7`nJgrjdZ=c}9Le01p3cd0C8ozw8~;Nc~IGPj*+D!!n<`5vdDri8kXP`tIs z;X`%`UK8}@8Aom1>V0l4+9s*83OF75 z{mRY6?rNG(iOJocMn<-O{~h2p$tkfEZ}89Tnw9F>P_p>*Gye-a@5fxJUCnYX)j06)L-&k|a)pDRJ|4b*gSR}{ z{LcT^4gXiVN?0D{ygo@#Ab)#A`MT?Ox*O#Y-uTV$&S%iQ_yQ;zP}uL;{ofZv@?g+*!;c!CHJR@ zyxDKYXi+}vBCR=rZtYjy=Xa)ZYbS*Nz0>$g^KpQf_UFI5HN0hI;1l1Y zb0qx^>}Hj(lUjd6zpO1amjQY%z{hXNk-sOK{Iqy5DZAibjJn;9_sf4gwHJzAV6r~` z#<4SpJ(tgE2;Nu7-*brqJ=dPLZ!oX?y4RC(b-GvB)nwF$;y>pwdjYU6a5>+vkhogEbu+!A!RVkFIFYkeL|KFYWO}y7ys(JNx^qQc_f~f*=+dp#qFYTITn)Q2nPvztn+a^myZaMrv zD14XWapfc#;ol0`KPQz~eM|ULaSN0eY7ciu>@KXH^fB4>wZOUyKR*6Ce?htT?5ZnT zPH)9CrOclm3{3715MoOUKYuk>8 zUzr71Pt2dWJ~RDI=+DdzMk~AJ=b!zt(bQ0<&PI6ioWPijH9Iq%zO{dR?9(fsoMO7F z&V;Sf?7;6!Zd>*|Zu`yu`ogYb>^Hgtel5<_kd&;=c{U@8r~1sNmyPM^1-b`Qw|}ep z;~@U)+D}Er2R568&S~ViUlBPVm%H+K#{T3L@o9f<*z8VRc+%+canQ7DPGeQN$gC$y zmzpvsiuuYbu5^*8l2F|F@Vt&dwa4_+=ZeZ_?tT>fJmQL;h3I6rsZJHMHD|(YI-AegadTf0(OAT>`P_fLb90|HOt6jk zdCP0d%!?oYtj)-o$dI#QrjcVTk8;e6>SG^gygjj?MskK+{pYBfsQ1h*%%9I$$a2R{ zd@h*EUGQ$@T`{wY-kme&0u>n9m3D3;!y%CQ9lbTT`5OP=5X{`Tlz)GRt-?dUGqFkfHCEJ%5Az z?(J{e)Low@n=X2;{cmE~zb54Z7uE;2|1jRWs~mj2ZcSGGBss<_3IA_C-Eh**Y@)nO0LRoipj z*}0{jd)|(>nrq%o1dS+uHJ9m@ir(~evj*qxiI225rdZ#rdK+Bg&3OFE<-)(Lmjl;4 zEAx8(;85!4iSkQ#OTR1U`F48RM(N4wY5jLM%-OtYR_(Nm+P|!8GCmv*t5ca4U(fSu z&a1jDIq!`Ad|7__WB2m+N3U{!Wfz$Ib@{Xn=f9lRly^^c-7DWPMO zYRjUpo4Edras6(r;db?xtmaywITyoMOg!W+d0gM)sHIcua-%12jA~T{+BrhkewmW* zF|#60C1pWwhN?ovzr@1qY3x5eCgsk~J#4djW|HD6z223fEh{{`0?%q)+p}@S-2c2j ztMnQ_m@Q2F`uWC=%||c%_}G!Dp7cpWoTchwV%Q&xw93dO_qnCJrujMquDq4b_axqc z`RU~xflJ-aU@a(VWj=VwS9M|QBHlVpg=KxtUs;#FvfH{vM)|yEf1NY?;=g?d zL9L@13FeoK^gBPvJwD!P!gBfT=FH0n556qqi<^J&hoPd&{QW68jRI>QGApVaznh|! z6egx@p1(rllwsAq>w(el7;17e?(GrE{i`Q3eP>e5M)`T`%y^E>I@u{S<@^t;W!FLv z@bQ1ktrU$eD}D0q!|D5t{o8sD`^)X;&Hwi^zM}qdo=F+!l-}8mhyATY(`7^3l@uRF z{??JJT6}rVrcZgtUgy6#wCVHlgQZuV?nvJ$%)f6BSG4r*#z|g1b1k^t=a;dan{lgq z?c2IDYXmeT0(&nmwv~91{{EQYzT-;UhX%6;mdxV@U3_mV;TJh?E@Q3r_@yDg#*Y%yP zzO`}v{k};PuS(cI513Q=FG$8V=)nE2mh-ApvwOOQg!JXB9R;~$4?9OxPc*J*_mKY7 z-Sx1jb!(*N#rxO0|4mu*?bqQ?p;IdMGB;=(eW)(m<#n;YKmI3wnaZSgmfQWd`#D%E zl~Oht#9aH95c%85O{C~Rvt0lAnBS94Y+t;YHep+lO#RobH~v1U|8R6(9?y?9?xXL& zE+~(e{`Mx*d3}_#+1hx92I1gkSJ~bx=^Ac$Xu4;Q*;Mnw4aslJ_qEIGtZVr2_NaIH zU&i-urS)bvu08+w8aw|1;nUBPo=lwnaM|VS53SF?<2xJPc9VDcvb!(3H%Px-Z{MkY zE~-O2O+5ME((;EVCF_r0USHF(_3Q5k`YVs@c-dX>$(*14+8VdpPnZ{07RN9C+jp_f za%tIO`%8Iyc5{y7f+Pc>Dk zw@fh6S2?zEm(L@|R~oT1pKY3Iw9CL`-ZNo~^AFxFXA%h7+RM4({U5E=7uz-{JylhH zv@TKd#L7pJFFt47=i0(=%9!=5dN$8$c8X3-HX2{V! z&HsE`GNHRY8jAq;Z=)Q}e{iM3&x97xlUaJ%D@=iY5&;H=$HEDZ0 z&fsk3kB`@_U7z&%ok~*sr7!w3`uEH4o!uSy`G`%4?Pl@4(p3-NG9B4rw8L+m^UuJe z8#p=t&yvlk-FttINyY9B@4v=Pi4Wkpeets4Gb!t+_`K%j2f3#_Ic%B9(lx#BaK}o! zid!mNZd@ILtS6-3Hoy6F;I{7Cnfl6?AHQ~cUM#Dze;v~|&Qgib9n87?Z(ZL{tMdqF zoKw8o;L(|hAM#(Ys7-mD*UwyS%h1KpE^9WO*=(!YtIvn;i!Ux-YEbvb{8<0wBL`ly zF&ut$T$}Co`IGFA_VwR8XeYb-Nby{&@W;oQ`hwGwt~{zaaJ{>>JkQmCxzg+CR~HNF zRgc9-^BoVoZ1Aeb@6A8&85tp79{LQ4&i}5bC;m}P-uS+C?~A(a%=2vJe%P4ZaDS$p zpJ(be$DVJU7vs&VZRhrvAKxPyvZyRn#6m$NoWDycx`5Z&LBuMd_$0?}#osj(5^K-> zU%xiPdNtG3-%l65_{1t`&ej zZ)Q-Jv-s|YGdY$eH79-){)tem>#_JHuJn6)zVW>iOJ5sH*sHZHNqlF3i1@83MFc=2XK$d~s=im%`6+TQn1^quWmuJ*qV_on>8Zrv6Z~%{(iBt*_W!2{Px(({gr&nSKsJO*W1gmKjJO7 ztWov$haaWuTR(n}>lHpOnt149`onhj`Abju>6_VAtFNnj&0tej^QA6x&3(gL`pa+S zt>N1$-G8^a{aMQFyBqFFTrK)0DKz)JZNurj50B=}_B(dwrFX&2v)%=fM-uI}to^5* zx9ea3k3He{XYzhrp1Jk>m(!hJ)}L8l?!<9YL?W)M{7mzL0|gtt9I`(~l>Qczc2duOZLMIvGlKpKi{z0 za%Oh-sh@r#y0cpsr6#U?@!s+Ir}G!L{$RMGceefYF6Rfk&hdYLZ+E1xeYfr`edWu_ z5C6WdGC4Q5|Kf4+gLbt%tKP{h{&A!KU--3z>!+lAEZp+nPkj-;k^S9f^~E0=Ue5S& zt>o+Cu>2#_@86PizH|0R;j<(CwbOd!-^YI3?(jRZMs1p3Oy}`!Ka+fZ?)00x`eU-; zM!v=SqZxO9Sp2`WHzUqcVB-A7^y>?MZeTWeWuV@*&sO;9{B=&Z)9O9!U;O|4e8qiR z#>ML-`yUl52b7)Um=e3l(E8mAhu{6z7S%2{Il1oE!(T52B{m;fS5(62cBfjz&1K7E zyDjmbw z_B%DMJZaC}4N^Vw$9rdfv%I!xWl6%pPwpQdT>A9m*Y(d6ucxo6eKWlx+=L2b8XJiQ#)%ZBI;UpV&B^p z|Nrp5d0DVIK}7h`|GRr-p4V1sowI(dA!D$V?I|nsiyM1c<@bHmnpg2FH|MSCcIQ*` zzWzA8ef@#w%jfkO@82cxd0Ee)4kpI(-*GuHTZQ!PKkEG3xR1N&ux-VXS6p*S19VT# zxpsc~!j~V-A8ehyuUl4rPUB}kOBU|s*B0pHGrYCF{&?>G|E&CfD^0DY>-1@R?pu5Q z;qU8K1!t$KKe(VdRpXTRA0x4y?`>`V9N!x8XYWmm@2l27+PXSCq5oVfcm3)1A6H$) zAH^S^-?TK|mZLkZ$1OCH@xtxCxwEf7m|MTEY5$&2tWu`=X%-E8-`jMqwy)v+En6zG zujosoMaBP4iQtz`3(t1%TUYkx);7-7_iClWgR+x3HUP3iJuc`?;%nXfN9lDA_1?fuW~cRanL|M8sV z^2b|}pC$gfVPtVv_Qu{+(|=#@#D6@qfBWIR9~fkh-Ave@ydmCi?Ol%EIVa}vf}-rm z^W}PHjdmw)e7WH18)Jrwi$CtO7u-wFf3)MW|B=G>^9RrDnkW&d^59*@k?Gm?hwH=k zG>QM;%UgAJRpLLBx!-2iS^oQX6g2dal-s|iV%od8*B31bO8p+ZHF=Ug``6mIRtdl6 zDO$IJgIQK6>FG|sGB^0EY{21Sy|$KMTK7Ysc6qP+&q7g+IYA87jSc(viqG?p-tfNP`ohjSh8r8i)`ngVs4Fnc zImdHi`oxzXzb|}!Tz=vIX3iBBONCr7b0wbtd^r4m=ezyy9bOyfevl0oj-Ryc&4GE@ zIV*mBlMwMg+1~r{vA`ztx<7NiJ~|%z{-L1j@1M_$Kx+)c4n{V8nytS00_%y`>I)_D z+BHFUz*Zt%bVzb)}Qdv!p;7mX=0wn9gXV@|9t zak!!KC-$$zja~e;@68hLd;1o=zJ2ay!0uTE+_x?_v=#5VSbMIb$6}id>()wvcXd2D zdB^vqzrOhKeclPzsa8Fk57r$|*gt2+eZei#J@V?FddK>kvn7I#C%XNKdSCVD;qCB8 z-NDlz^{n_>Xa4y3%WtP!BJvjMa$nC53M!kFsXTN06wU~XRlXdGYSkxZZsuR~R(V>9p#RljV`Y%qO%Q~TWEx$@OB^`{kodg6anmH)rc^m8ST=UVUUeyacO;k!eT-LlF4 zdqw^4ZQx*iJ^z5~berCZ60%-eBh*4DKSM^=)rg1I_dd~N?Bh%bwf9P#r(ny_K>ZcM7mb2y_LGj%W(RX zB9A4rcHL8dyoGlQw+eI3?2aU6k4t9Gr@3}i@8Tlk!Yf$I2iEH!UggbTW*4HH@?U&h~wfQZR>gy7<+WuMDpBdTf zRfIeC9h16gqk8&O(BB!^j4J20E!ur@!(9QVP2$qs4FZ!2E6g5mjFvyHZoAZ?=4bDY zlsrLw^AndGt3TfPe>nEE_`)r}jqlXIj-MnxZ_{6vz4fx^_B<5Qk>g%d^Tu({noSOz z443R1=3Sc`@%5DQj=wY4esDTqnkcg>=h^kzmsdJhh&6o4J9hyucs^#ZaiA!^9 zw5?;i9Cte!-JPE{t9IHru|;6gNs9=U zmL-|z0z;Z3jaN;S|L(^wXOefLa1cVC0$+05P@cJR*=kFRYtY);~{;lpVQN#PRC?f(5?KGt#><)zwa>Ee|bZq zaM|~wH}m4^XPx~PnO5^Z2{hEF$i~Or^0kepMPSmUOs?*R311RsR|w@*fAI0yaQvt1 zeLtJBhpIcu*XloaFM6vjf8^=u-ygc?&ux8wub$oQ&kM6V`!|WkoICNQEW`P#qWB|m zdt2t;iL!FBb=q=&7F>Stv9fQw{CmHge?<&M^MpU^{S#dGx>mw}-$uFJyPU79PSv~u|-~Ie&`Q>h{GRXCk%=xFc=kKHFjFjbm{Cn&slpSW-eek2d z*WNuJL1~=%4|qijhhdhT%9VNUXM~vkOAFO$-4jnd&wg~#!~3jC<$}DO@m&w!^UG!X zGOpToL+8un8%05!jDm3qQJ=$B?)FMvHfKUi%xj5PvWen;DtZoAx1^QmXl^s(+F9RX zD&p*Z#9&sZ`~)}qCC5LhSLZqTY!MUAHvF~lW5Kb#b+?+gao=ZmU7X75J3-_Pzt&2CP$vf>_w@|q9;O*?w|J3&Uz99SKqi}X`!Skr3-oQlxZ?-8f zI=^yhNKE_0Uu;hHGc3!R>)Hi=r8;q(JkVGubNrG<`pFQDN0luWA#LY7mG1NJpAh?Y z&&9gx6<=F(P1FxxQb_$`qI&I>>y?tW>CQ{$gs9wo?D8RgOR(pO1gR^mAx`1((+a;N ztW^HGg<0kB-#G!>**_ZQh_*16DOPiA4Sjbn&-q+bM2Jvve5l}IKCjx)S*pnj69cN% z*o-Tcj@cVavYMG&>D7z(%6mS`-q8BaTvS-j*rR6F+NU{7Yz4TaR~mhp(&d#Xr2CG`|Ceau5O22UQFjyT>1H}(k$^) z6L+S#U5oEK&&a9RGNIzZx#cZOIPc%O|9DGt-T5YkoOTu69p?Kw-p~DM$Y=L2LdP;g zEX_}<`Qp^28d@cX6l-3Te_xn2Pt1L5`-+M~B=4rH-JBQxhY4RtA!#XWPZ`qs)od>cxwcj^L6^pI>J$vJM zC50p||HaEd$S~{qKOUmha9diJez|V!M+An-DKRI3b^aKGXkF45B9k2RcOxKBSzsQ~naxLef zx&E9WcXwzxR|lPV&?+hz{;Dnhst*T9(8H{+i!*S-2|X^OHKv^x?gp?gkIve?n9H!H zcelq!z7-e0X-?t%DnBvhV3)@8-a8ldXMHGnk>kX}$>nn7zwsS8m5t5f>)TI;)~EmB zTfwwYC`8hx@SRt{*7BTlI|Tj0-nMx`tf^WS2Xf3wJ#&AfjmLKMd2%SWyl8wB3<^Af zMSVOmD{MsmU%GM3eU*)Ji-6Ok=JKg3EdrAw<+NVzoc4&_sbvM%)x|*pRu-z#w^&W5 zF_`|a?&Jt)cS$n}oS3=gam%^IP5-9{ZT!7b=3LE(tr9`Ex!%t8cfFDAYS(_+GN@`+ zOP+adZ>US|PNRQi`a2GW=Owl=g!<;qd@U5Ra6?4oGmTUyb^)+sCS49*e`2B0@v|WJ zDz22BBk07Ts3ImZUkEHM+7!5c0fXtQ#1;W3k3$_6cFQj-wg^nxHgjU-yNrMbmKriW zN*cU1ItpzjGlZPjTw(=}Cr6abdc(J3<0T17UTU(ju5dmSqu^6u^)A@L zqTRRxrhZc^FLyfoZlzr7ik1myBwuu&kS@GrBk06oSiNs)6_4i*jmVl70jEn(dsJ$z zK?!k_beBJ;qL}-6R`odx1f4o6FB}tc;_!StVLlW4q-|^`+uS)gMT^?@%m2G0uv##< zflHK8tF5JD)p2&;**;n9Av2j)OK4{D3O1ZNz_4vJ zCq3&FaOzk%uU#T)O3ZSF76GUIejd{l7wzMD+oH4F9kv#rN`^3}rktV=R|+^Op6R`~6hlSkIs%`RV#Z@BsFXitlPQ-|tbOU2CjUyfCQ z5{OEo`ReDkP8^EMoIh%+@165z(wUrX;AGx1VU6rJP)YXEP0MA0*USka!V8&>#l28d zt}p(P?=WrYox)J9`x0N4XB`SYx@*>kD^jyVYUO_Vtl|nt?J@Q~TmLY5LSk!P$;nKq zGAm!Nk}L-ymm3ki%-do%G+Es@iffp4rjqyk=7Z_m_k6kH)2s8AP4UR7eR|7&neZk% zfP(9YW&Y`h(*Guy9O^X%l^EW;6P!2{+a4weUbwtU{ z+8&g<`KjQf%^nV20k1{&aj#spbi%Wx?mOkwQXLp9H1^5V$O*7!o!+9frSsrtFG($> zDQVAC^LAU$skAiFo8Y){R?8HpiTaX%>Q_wBb=je%d|%#XcaOlVwmzpV$5mEpuJOoS z=@IuwbMcNR8kJ$&>?hscX0+!o>#y`byul7UUlYF0pL8lLf2ZK0fQ?!k-S$m;@08U! z<<>W)ubql50_zw-A>Q(Dc0_^RSv7BvpPV>O7HQZ$Z81NrzPoDCojC{7b7w!@$_|Nu z6xB(>3{D)1nI#UFoL)}slGSfNy6j<62&3Yn2V^9*!J1n&R0pAKI zO;71*`&+}8%-Z3rnHkJ=r_D{8Ng#;Dp4;O|P^8YnuS+I;?R;`;+qDSq7SZn$EW)*G zWu{&XTXl01hvbgFZFYB7Fa9&fXCi~?zKY4aLN8j)=a}Z7^{X$Sa@p;!qh2YCl0u|- zK`{gJMr7ZsvmbX%aD)1SNyF~!Q^|GLo*OwEFD?`RKY`z(TOHyJ0qw()(uyqtLN8?w zv#t)3oB z_-X2?xnUDu{gv`Oc5CT`ej(8XZ2#o5#jhNkcXDFhnpYRssif-nYq|Jl&*?R5hdSCL z?XajRsLJu&GHvI}1Wv=mC#TL$jV)dI)v7Sr>!arEkgyb|3x7bh5~vDF6MA~6)bAB2 zW^&6dH8?`wxvl(W<8okyh-KD~gs0_B=cbz7U!&^4o03r>9L z1k}DB`JlaUf5nzhQs-@LnBKbbUEkaHSBm3e-ZZ1c#*8(w0qwdDuT)mdyzwiUGr;+c z?~K%|79DC0P^W?{b?P|TvNl^g-fL?z=Sh<_G9`&N7O!W`oHo;!!Tnb7gl|r|E`?|7 zBtnfDm!>K|ICHxB!_JHMuXnAxmYZ>NE2HdQ=3RcN`tv$o-I}>##TutXN5MBQjyLRP zzN;I3aZk4Ft?FOKYqp;3c`vSFeSD&fF{BQjl*(M&_ZHMFosk#Jc6Zq-4pWUJ9>G37 zxz$^@i8*&zZCSiZ=3nf}vPm=k-MdlP%=0sKX^59?!18Ie3)SDM_4~KE9!#vBcTCr6 zs^Zqkb37s#43B2KITS4$F4V1zc`lapqx8gYt>rQ? zkG~t z*3|3L@xos2o|;FWu}D_d;LlY@t~%Vww?aefBn1W#LQXjvi{MJSCPwq zgrvkPYtLxXWUmpO>S}i2y<7feD-%=mLvO!1Sa}D8SaDu06%KeJ(D26b^z-vc#m@a% zH=kUs5&iw%Ui7Egf&1IJeZNXyyt$P>?#bauBfhJT(-v*H!1rVKg-=I6-?(%kx3f)U zOIH7*;7Nvl)BO4niF3k)twBdWuV4z9x_Tko^}-H!i$V7cMpBr$zr2eY?<8 z{*!$+1l%t)y}Kwl^|nBu_}$bRrIbmw$Bu4r-sIadYfh-g-XA7Atvq@Kt}?Z$s)Hsd zK&9e@H*=2{Gamo)sW01K{+jz6v+Rea%#$9O9k2qew99@h*X7^2^|?l0jBY^sQIRQP zHyHATrR=Ijt)q51cdgx=Xe%WxmiUa3eespRo{7TgiRF*oU-0TjAGf&TJG-ey`oZfT z64G|H^1s}wmOizA@nPA15fxsxjW#*$(C7d;>xc_e zkwKq;h$feyrVo#xm6yiV8Hc?KnFJ0__LLM+)9P>C_8_pfeMi95*9!^?4RnoElT-zd z-%RPaaJfU&YvDozQLD+Sq1(I+To|N;s=MSmCIv}ED5)&&>1GT%cOY_-_4I}dnhsOB ziqn?ylm?vBEM64O(fWBpmG4@gH9nWq)14k4uePri{b~uCcm_v=ic!DgCSfJvO9`!& zVSEDFJDXkQch|nsvfq{pa`2NwH%@RR%l2*Wu==*@)vf4BvlpbP?OV4tBk%QLhu`Wq z?p|4X%XP_e$++wPBqAR*ocO#j{khtgA5N!L^WR*YVY7?J$t>~v^7V^vt}Rll7vJ^m zW`Nx`v7eQqCyMhOPVf8oMPkXCm0k<8-+}rYVE2FsOV=CcmY>@1JU?^I+P3#6HLuu9 z+zK@PvvA^^1uuL)Mzzd4{m1p*1>65eE@TV3>ZCUO30cAIfB3XRw@2c-D;4%T%N9k7 zMZHWoV`$FnEhNAC`w^F*i8BrwM7PX3@pCWpu_K(HKh5EcI`rhzYVGSzA3JvM?M(5T zU;y$}*6U{T<&Ta-Vr)XoGi@iAnfsO$=_&JAsWrb=I$C`E$f>E^S*uc)U+itm3TY7M zc+DV9v2W)#uJ4s-ezaxEo_Qy8*?h}Vzs$KPFzHU4w>~5az^S2|=k9@Ew@My4>zbNR zuf4Qp*Yee?g_NbV{>m2aR{s&cYE7SZ>+)BZ?nKNKcZ%Jk{YY#slj5Ra=4m@!TRwzX z$F4dQthe>~Hn8u*=I)u>8UH48A5Z9#;@r693|A`zvtHD#P@1>4fcJ8Lmx!HAq!_FO zJ!1S-VAkh}7s@MMPWxFp@tUuHXQ!xl5&u&wQSk+wiY+O-&nMsN2wi2g&nlfm`;>}W z{u9R)Ys;KY)RkOa?->50H}mu9zy|^he?EM9+a37j@Ntgg93s!Sxwje2th9By?z=dH z1KO+s`_{5e=H5$@4m}6nN}f}jc;drESFK<4wqw?+CMmJSu3Y|)HQO3C7#q#sSY{n6 zK9?;x?aHOS9Qx6Mp#rP*Y@SA0cV1L@EVe*O(aHCXRS#Ed z(!IY4U$g8ld#yX#53+UjWI<*QCy#5h6c`ncT(~t&KuMN6+A{64^88i%k5`?zVrRM~ zL6arhSpDHIW5t#UF`vp$?Kf)OFPm-bJn8D;RVu4)9}Hqm(06i7bad#8kr-CVZibvnTfJy}7+xPIhk`L&JS* zfgNVfJ0{H6Z?G%7^rX7QW5acUL;oBhX&+RP7BwtjDE&|+tI2%6y`+Un@$?ENCau}| zYF~B-PG8QVAo3_ektM|-Q1PYlHjO4vDUmsxy^FWZ&wS?kv}R-3&I_j&^W5BZjlm`5 zl#9$uBO6;4Yo2b#*XJ8ItJLeI{_l?Wv--o!cwj~8*Mr5L-R1Kf8COlL4AX+21S9C_3tz{JwBT|;)Ou;r*JzcF7-gVR&H4VRkV?R}s8{M^@!moEa(&(+o6QMx9+ zaG{^(s`U9CoT6nM42!jMBL03%|KP!JN#3TP+00tqd*{7(9EtxyWehY>RwfnjTHpGb zpLIQ5b*VM)#VIFG#B+=9YvT?O_HD@OV%jgMWi&ak|5_-M(x*!+A{GVf>MqyZ-QBjt zpJ!_Bnlhs~YFz%FXXdSY{q{w=;k&dhr9{E39Rk8_OFUB=7)*`cryVy?*1u$yA|96L zp~y4;oT)kUqvI=s9)a3+VJ+8Vp)Feu#g+*6uP^vLO`lEKtvuI0?`_%q{za!=uK4oP z@WD?W+1h<4lHZiwP`Y=fUHQD(m0XuNI~fL>h4C#LHhaR_XrKt@@YMAZT=nUz09)*S z>m}PSUYWvbC*b7d)q2HSv5)tS7$dW@$V8=(+T*JiD7})Y5_9EVqHD#<(|@$Xqf@+f z`H_U~MR^uN0t=*cYkcBbq%_0*-J>oAFE&!SyV7CpJ6^#h$7Xj#*r(6@VR+OGoXuJ$ zxTNiBiP+g&v<}?uTfL}!j#8wX;QK)+V-w&2P1g&S&w+^SSA_;$lqKg{gkd z^(7b5%GVuvbv>Nz{`SKY<5y|d>G<}_cmFU3Rp0_n94Gf$RvtMsZGun6sZ-l@ZgznZ zYLaad-|n4e{+qD<|v#&0R%sZ8lnz!mhh>P#`u&6Va4o}K)f1Gr^rQA_e zt)%xznS$&&r%y^D6BEVdmSn46ad~BGv-g--3x8a>^{#JqNm+kxESI!@_6}4{biCVX z^4zFpf{5?5C8v7#U)sLR>GAQT6L++P*SLT}AVNyEv3i|*LBl-e8xbslA54?aZ(IAp z%R%I<%hwZoF06a-&S^i3Le2*3Hyh9PDeDWQOu74^;>JXB1_YptPTsQxP1A==P&=bK}Azp==kl6=T&^)oKwnET)NRVEG6Tu*Xj3nq|#>c zW*<`g5w+-8|3sHRJM5L}bQ~UnMhcTQ=&QE~F!T2DR9}!-y5dEuj{F4QQiT#bqYX-_ zZ*C>!D}fT;$v2k5C*?HkdapjIj=G@E$f4d9vvlEQ6MyzQahwO*{v5g_5o{sN)pXn= zU;USc9a5L2MZn18Mjoe=hFpM+%Ze8!s*8Li-!2T8)>i8tS|U|gG35xiporhH@CL1r zvP~R2*LeF@tP1OKmNX9z5uf=jveO`G*yh-RMFXgayB*!Do# z1vL1a#x~RLYHYw#ImTBTdd*`Rw3zlQI=wq0b9?!Th5t`q2*1SCtL3#yb^TqXl`r3N z)-JhwUg!GEO{-V&>^Npz6Mp4L`TD7b|5Ru0H;}pNo_y_2<%%`7Y{tv{UH19@b*TOL z_-f+EmRH?zf;-V+`QUJh)IQ!=~R%z(Y=AIm7G_vT^tqt zRwO$*H+$#Bi%bUIL{`~oOVwd?&W6S5~u3vUn zIl0&J`v}S*<1=|z!5+GH+e7x^tqTv& zYJIauM`AMf#NYsiW+n&2LlfroUil*_VgFX;$x9R&q`lrF{Zn*7*L2R>kVn52^YN!@@!vID8NXFsc^lLF_v+b#pEc7MpB1Jjep=FL z@Ulkc_|2|mv8w|rH{3g4*wN8($VTE>$MlX4kLG=*0^jz!OkCT&rrAZL);Ih=-|_cd_co{A}kx6V`^^X@vZd)BFk){1Rk?zOIubLM%e-z59|>)S)> z%5&QqFR!a_k36Y2QOW3=&??`xE0tb96%dp6c(P-B*7F@bkG80($+TbM?v7+RHaW{S`+5Z<({l5 zX>}vveWt7XV>uIuXD;vnl&#h_v6@5w@1I_>tjyFYyEGPz0D=x=u6gk zfumJq_l|e2E-o%2(vJ=MPHUXYc1mKOFC-{f$Z)1nUr=x&+ut?!eUII|E>w8N+vUm4 zlAk5gS5|0 z>pPPi`S#VkE$LD?&T#4Ro}}Ujn(c3lq#vxXYYJek`rPHLB6YJOTIm7bVaGfN9mV7_ z_K>eZAw2nux189N@y5i>^tkjvlfbrxRXs0qHyf&fVjhAov8_KCoYej3LGZyYA8@F- zxFjky)$px%6c9XGx>>&W>>in-ETaR`LQ3DZFPYLHGVfqY5Zf)*(2AdNY%@<@I)DG< z!}C)v&dMqJAj`sWL-yp2W6=Uy%mJDSx3!uz>lgDo`MzPe^6>5a53`)K_V)CAa}sa9 zd?;`~uVq*BCP8&2r6hY#7nh6Oe+59rf}m?$&YK#kOG&0+o?xKJ!#`6yIy9i+j2_~G;Kd)B!_#4dUi-SZN;D>|h^Xwvor z!TR$Rdn3f{OjdaPvf#J;F{4GI!;#lti0gdG=ihZtUPRyhXCkqSTdT>w_u`Wroje8W zH4>~_nX_Kx2XQRAd z-8s*m2S0O;bV3tPhmgC*b%Dya6FM|5x@LY@$?-4q&1s07hE(A`FOh{^#{-y^KAo#& z_K0^}amjXtW>4+T>eo-}_?&*-d*H)&^J9ot?s0`U^9x@tzWT=2!*%|+yKs-y2JTf7 zM+>~$zO9LnJ$>@t*@AY~1&88AvK}zqpFjKE`67M?(HFI`eT|wc+FU*>gtRT_+tDlk zDfoo$_KpKGmUnLIC|8`j^K}ZuB@ptEPS3&R&UrWGUd@L@w4k6M>l1B;sq$ykyfO~G z-hOz#+Arp>hwfy3F^&DZJLDH{Qz^I6)Pm|f3n9af1Htk8r^ht~rgmhi*!mr=U0u1* zOYDem_(NR=(S{fLcj7K>)>|2}`aadV6QpP~fuklbkdg-$_yyKR@g;AWq^kj3bvqT>pq0}(!K z*Q1XlZ-1!FAR71BKlMcA%SfA}Cz>y6Fg|lwXu_kMvx7NrlGa@>?cRO<0(DW*lJ{Nh zf*$ipc8aSiDLtx~K0hB+9Vsa-`f*TNKu2IrOSN!1A ztAhMr-NRjzRxj>eo#vfY`rtw5M0?-9Uokg~guyO>5EH*CNz`bW)>=Whf)`JGP+}1b zj4^wgbYuJB=z7Vg?+-o}NuBX~<3mmH90n~W+x7X|gDp#x{TMkq_TArH-`Dm_SmL|g z(tz%M4qJ{=6W>D`O#zQrtvdF_$2Y6+!h_C$PYa955ox}UQfvh5frsNe5k*8}{ zUzcaE7tMHU(4r8M&)X++Fq1uNhsG+eNS87zS=XNeQFDVOf@UEM_OR_?RqiU4dROx* zUof(*Vorg%QPPy>K8y90p-IEV#YJmUgGeK@itT>I?^h)6G;A>!Wxo_u;cu3|F|m;; zpmCo_3chr8||6B6m`oTO)Ew*{u?(r4En~ojxkrz7dscKq{F#cl3$3-b`Iu9Q3 zJ*ea%!vE!A<;;wH(U$G?d+d&WKKCx??G;VwJAV-cw^GCO3RCZhm(%t!B}FK_atK&? zduutPzT>LD{ruccuJHm|${nVUw*_wyIHdc1&yyV~zk)xUT_^Er?tLeY9y<=x#8qoL z4&6!Pw*B>y<9ZOh+N$9$dD|1Nt~u}Y_TR-RZ|2%LZ|X>DJEZdA`aaI}`yc+AcPphq zUrFiwG>hzWSAX2zouB;pcl{xMzY}TcZh0jq=KhcU^ZD=gjUVr}7apF&GmRe<%t}g& zI3`cnd$9A8af46NgK)Y1>}~OL#pB8XOZod$L_6<&dB^`-*r{dG%_#>=ZEtLPAUR3m zPt}AEzg30y-0I?Zy7S9t`S4#M>%(1Ko@`cs^2_k&v9HM>gBMlI<7fLWvrbL$s8_G* zB8|2CMK3=qyt?YWuvW8tgycRKZQK9Xzc)&#&8@FG^YiKEiloA6-?_J+bFTPhef{yp zw|;7&d#p>?CgT3i*4WYqFbWFqTNemmVV)~+5Jb$C-BwBL%rb-|Ml`+->SM|OFi|uzY|G#tbY|6sKGos!fPb|Kk)R!qgZ}(5}ii%q8>Rgcfl#~`} zDBjUK!T)Z}%YQr6zgyPUZ&+1QJ)v4@)eQ5b2tU>s&S{6Q`Dt9t-f{kv%r8N=KRoBn zT-*XrefhT^)O$!)n;m@kpPkC>Xj5V16YMT3{%)yUlk%+vk9POoyFYcau(v^@_TJ|z~65i*PXo87d+V+G-Ha~mOCFfv+TRuHyx@nyd^j7^>GoN zb@IZ3g1tFwM0Z*)?fCF#YDdztxm;C`gSW|xoUbi3nO69)_@oD)b?!C)MH$P}tLN}| z9}GMpZOoXN`O-j&N8p^?jVh^&7kBXUhQ=@6divh(#l;75=YI9jvtt(xR#RAMzv@h> zK(&31>{c@|Go?irji%@wVg4T5VieiAJa3=y`5&tN-ZPY~3HHlczu0^t-NA`TE_qr`57P z60k5<_^ssDDlp+iY|fM-gAW`3bNL0FUdg!rcJPIk>GDpTHmO{fKAf^!G{aJIMMYc8 zme%y&!V_PqK2q@(Ub3t^CE`=R)4drV=e<6DxA#THo$g<&)?d7o%Ks^$YDV|DV^b1e zAJ6|0VV{=ms-%MZo0O?tU}p@Qzo&w2N{B-NTFmt9Fp5kK#e{ZuPNE~nx0`x}Qlrf@z_^r{r> znNVOED_|AdWIly2=hxx#f>X)!ykB`84gGQbvH0Q{U;88U*_h-Lu>>U0{@#|55*whIo90(SK>X9L+!KRv;3bx9#W@=*TW^C3q9_o;b_ zia#@&B2&BS{ny7^l2ZC-w@$mOy>WN`-y7!2I*-K@iY~l9-Z|lv-WQucoLc|i%;ZYS z(meJz-moXfMN@HOT#v-{e$68vdB9=i^xnR+BZ>3y<<3RrE{aUo;;zLk%2=lI#@c-9 z!Y?y62TqvBazd`;THdjLxvMu6KhD0f^J}fljs5(we4GotosTW~Y-o7@&GUql9=f{) zf=_oRvhB?>tO3F$W9saxeG@H6`dxU<3zSEm^UE=o}vX`kX%)J}D zAgk_J2yZ`IgB(X_?;9O|Gq+HXjyV=wyh8R5?r7G}+6~PGR0J{nDoI z%4}iwQ`;5ojW3?aZ|pqf+!~|ZR{!(2{;%kz_sYy~{7+ghDjg^{^HhMA9ab{);$zow zl&LA5&|l=TN_=C(>*FRuG4^UoN?rdXZ3P1_Y|h-K=3*F;T)DGb!%X#ssR?6pnB*lN zt_Lfe&pvy;G52)T6`7mO)1GNDhW=^T3dGO8xH3kTC;k8Yw)ERaZBRPdHEnLOEz)Q?V_migC?qGezrh}!6icVadWaNGKTL1s%+~{kMPE6dJk!ja6 z?bh5C_qHzuBF?o8*ZXU?J&&>HYj}Me z96g0r(n^a~9G-ns=x8qsuiexQq5FGv=ht>H-wuE1;Jo~L+nKA|SlwUc?(JVHqTp)( zB+|=j({kM-PYQ2dIM}sqZ+_D8bF~{bhCX@F*AbFy`sw^$iS!hvv+wseO#k+2-qyb_ z7a99HRpwdUzREDC`u-vNf7iKE=5~0WKl$`-Hl%*kxD;H~KS5%>2mV75)|r`My@3+nZ6RP0>H#(nQ-*MK$s7>*Tk;uNJm0d-HvB zoeuM!;I4I(++8jP$?vRtV;j4pPDTb?gbQXGrpwh;8!Re#B$~8HV$Ga2J6sH%=bu9}iE}?|NOu))&8fg}2SiV{l`r(&+k-@vx=R=2P)y#S5*|?&c?6-xu{^(l)b_ z&3Q*&`^WVduJf`fJj(y^y6wIE=$R$o-u`%SPk3U=?T+1gKSbj)KiyN-%oHxXb%?v* z-pR{`xlVRQXB)Pz6=W~ZJ3MRZ`o~ANmoK*DDL)qCwf?~7)9Vk3ES1y0Qz829|DA?O z!Fq>6z5R~f@l2kOyJ_LhEPk^+yP3}a`K|os?WccrUpD6*$<|uN-y*51KCjvPoGoAR zvR?NsGmBZ^+c0mO*Eygb<}&@6~IY|9n7L)*4ye|S|N#!_mxc&)fnHltkaXSF#A zTORJcE%tEQcimS{b_ex*)|=6$ak3G3$Nu^q|YX^Sj$rPJo}%F42Dcz=QY$CuOQA3~!$zItza_}Ki~qK|7>XZ-EG z9Qf(e=NsZ#((9i*cp`tlD_&=f1K+F-e|yynUMtUEFs(cgGz?YBR&BRFRzNUt&ek7F zAHE0i{ktRoLcQgGtixm1e1*j?YWLSwd48L4i^u)QhC46Lay(Q%D_P;yn6>4)l+MDF z>E}}#t|eAjiv8h;iJ5MD-?oG2!}h*wxhwL%ewR^y^Y2>!Awa?9X$1-lb)-KC9hWCYx!gaKNV+O&>4*sJtI6Tct%M{B+%} zU8-5);7>s|NOx_#cCo%og~_!oyPkGiPR<2yMs`ZpbzkleteKF2rghIaIY zpMkcw!b}dyefd==G-XY5`YmtqDmbi~e3ST~X)1-fv&=-yQ4! z6#t#^`goy%Aa7O-XtZnN&E?$Ro{N;}6uMjtQ+Ay&b@JBf8n<4~WVv^1-93ho0}PXI z-ubPa&AcmTp7-@l$=qeR7ZZIx)rEwbHeTmXPM$Q`^10WY`tPY0X3@_LpBkq09=#%b zEa}z9^rVlh{)snr^&g&IXHb^nrPlZV<=lz~vr{+l+zB(3WKG>%n0QlX&gKWQcRn7r zfACiMR+|NPv8CSb-+X_*EQyh@dDgP>gxu_|Hya-pd^yQoaCK|+hxfnbj|j_OJ^b){ z?bAnJ;_tUspVx2M_`l+qj?au*sdaNr<l?cv{d-Sw(fUluES<>&p~?Dg9P+?Q(SrCM?Re7sz- z{*TF=!jr8Le?QFK@pGkL`H>_}1m=2{n@*1->^j>N~ckXR+bxBt^5ee@&;ozrh~O;l3^JpM<=r z?tw#}DreX~v%e888ufdfkBzu_Oqt2C7mN!0#^Uwd;(K@T)vru>@9*N`vRJyD^}B`s zCLzJ2(VOqf$5?$>zddhZzOCQ4+W8ucD;nPL9(dc`Hs#-ZDT4<+ZuV{y?LKvA%=jg9 zj^TU6JU$w+-Z!@E3+_ir8xUHbb3^XvSwC4*qtzIL~UT>!}{o%Xs zCB^CqZ|*pJvaLsBWzMP;pE}<*c5=r8O~2&fV@iTz=)?yGvHJB?fx)x(?0$obV;$ z`&CCx<3j<{IayE zt7}GmhIZEf*RN|>N{ZFl)`&|kyu!WplWdHAUr6-Hua6bek9|!JeLgpCedmW?78hT< z7JJPv*t++wqSB%h6KwRAE{Qbz|CTn@RJi;8jV@#Dw-}LUQVL6W-?Hy_*`58N+3v55 z@9csOP6=z)x<{%%{x(m4EWv$YV5i)2@h9xu|EIHv47UpF7tn180_v=N^E`0^z!kt2TSr}dR*0eT#HUd{&@Sh zedG6C&o|y)cePUG@eJwu-caCT|>}xIC<*LQr=Ucbz;$yv;di=p5?dcER7#Sba z{lQtcHC4Ut&;2NS?%c(`@{M~~?T`Qen`Bqi!fYyi?}&YTM04-%*B3fPo=iP|;O2C_ zqmPo0KUx!ihduUs|A+3WU*pcXuYJ72yl}frwXIxzfua|$!|QWbfBe25cX;=Fd56We zlB|>akFs8mY1Mu%{^(8g`{ql3mGA6Ym3ZUlig^7ir@r4yUV3g`t7g@KeV?^!QvDyW z`Mf)By?##r_q*4xBpm6v9Di);&D&qG#q|e9o7+Q6% zYnxi}`*Zk)pC|0LSWcce)mXeZJ+|BUxM<=xPkzT6`}>z`ziysC?M7MhX+LSPbNYwp z+{}!KyDD{QirWj`d5k}u_?zd6pNEV@X-t`!e}8{olY|8CVx zhU)olpLBOkKd4YPcOt{}PR%E`WONx<)OnRMu`T4{INM}=IR21{^$Ll3d2MSdHKaDx z*?f5~<2$>s;EF6`>sm7(okKU;j~&iooU=Ro!Y3b7t8JwR?=imMx;$Z11=FVU{;hR! zmdEa0>HPcMeK$-#Si3wpeppB_p|Ib-guDcSsoeOJQX zGW#{N)-HTG;ZO6+6V@kLEOuSoSz|xzex8&6RNf%13s09GsPN&tG+pFS(6rVy?0s#2 zzPXu%dChi=&sgFG4 z-O9@We@@4|XlQn9>vV)yPM@k!+$Xtm{~XqfUnN(Cf2pXqUnS#i zdumRRh;2xZ3iE?IfxXA}%eftYE?aP;)WGMY+bh$hC#){^T)Cab7%N?nGWDwWUX5=n z#Lu1&SzH_~{zg`4*P)UnIKxq@^0tE`AR4ACOlf!AS}4jGK_m~ZsG?`h8JfHRA(<>Xh>=~IHmQ<9j+(6 zvdoJ&Ec$$5_l?pGOU)g;HYxT$)$EEZS+s1Qv~K)A;rqLvioPj}-ky<_b>N@=_63)I zS;)oPu(5LM9h&K%b7Zw|;)!fk=HtFAkM*yw5t5F&8<&6Gujbo5>xkOBwiSo}fuSHCQ%j@QommV10w`28cA_WK0Y z-~G^@clYs!+ec(#ueHpt`|Y-+z&lzdE>bYIUq@OAs1u2YR$y`=eaEBXC(elx}2|L1N~P-k~8;#=&T zeede_+}1K(C$9ChI-j|>^XcOR0X>;DHWJGcKD?OgU@_OWplZqV><{nuU*em+SN+BA zoxA4PZrCa7U3la7t6o0KRPKqv^~VpDf9;#35F)6nzBud`+eL{Z z-VCeM+SbaaSFMpR|FTxTKkwxX`Aa=r?;aFeA!#_V%b!M z-)pi$)^ErxmRqK?MBl*iKJV&z015_ zZoi{G{Z>Hf(XbM;>V50inXWDPSFC1qOgdp-3D2asyWFdT7k@cug>QR! zVei+19judY^OrA3_to81XUg6xu70?vSTg8(UFSEkjAEIqpR|QL&$YF8)-Jyl^ zWt&P9{@!4{EpD2zXQkvd>%OBmK2M(bYjaV_n%_ci*ZzBTbfMzcMSR=zXD4nw=X!Bc z!s}MApZ9J%6#u=E%X8ps@;dqBkDm(n`FC1uSBP^~Qj!YXeXvnQP%v;pu}lB%I#$=j zMNEf`goFF`%NRe4?~^>Pf9y)+^2Iw0xWCQ%dSmm$`!}{F+vn)*s6ExZcyh$m&FP|f z`(N$e@n>7OEz=ve;|pYO{CLHF<2_5uMj3biORbr2vJd}ydj8?&F#S~TvPY+v|L;jJ zw^nfF>a+h|k&0$4;@ek(f*Rk$qDS6y?Y>mvqz+W6akp+f+X9Wtj*0da#k9{v@@aovrmVUWfuJ>EL zG$hp%Uhe$qEad^pOYIXXe<{^0_Fyl`J0|>n-!rj_S9Ny1KkhI7f9UvJA+KjOF=cTF zH+&A%DwNbJv--5&sUpei&`h(vbQn=#2Me#&5nA zuNQ~k5#zhd9l*S8UA@%pTp^{ODRW}%)LKsW>TTJ!&DqJ(?_|W1mRo(dz9s$SUw_1s zdw=&)ZvDee(s9T1q`SEV1qCxJ&bqf0Id*h(B(0qJp5IEA!{+O^tKWABykUE^Gl1vy zyY{++#4bPWxc^yxTQ~GAf%Q4k`3!dGc|L8#OJjSx-sb~7$g=ZxcGaZ`2 zb$N+F?GdM47k1X{PfvJyAerxr%~s*FyJIIf^-p27ypXebFOM)!8lwmMn)tF`dhhz= zO6>NqZq?q!6vEm0E}XA|P2pR1zT0K)+y)jGPqs5Vofdx)yf8nU$Gfc|XQlJu#q$^! zH@6;cJ7*uhXm6-f$`hqz$4?uMIn8~%!rd}i=2ExFg3X+~-(||UZA$IswXObb;h#HK zNXb}S^0|8TO7W|WuaB;7{;Fh|us1;SKI1xh_a*U9er*hou@C#2bn=3vR{Lrf7m@ty z`5hjw%@k+oD=8^SX|m1#CFR$lGNV{cG5t--5_N5viX*{w(%SP=PU|m zJbZb>KV({GW&hE=CVPNAd)0#`hf7;BR~TdzORd}HW^zMiL4?8I9bFgn*YVpcNxh!+ z;8Wmdsq!~Yb6FOoDC)akRI7E7>a$%ZuI@73R@zE-Q*v6DSWqVP)L<%w!0 z7JXTh472~0M6|S&UaqcKe(d~DliUOCw`C?AYREk9>)v)@7c{{oZ2WTX_NLvt+t(IE zSQI2Ye|;mJ|9Q6B;w=?wlN1wI*RjvO9b0$n!`B;OuNe{?JU{wGI8{u2w@z*cL&ubm zC4EccyrgIG%OALRcs&rgyOjEg3`ZR+`fcCpb2~l# z^SxH%q^*Ewa?sS}8TDnIUmI2KJy)1=#H-1&TBwLiUGeUc?uwbJqNS0E`Cl(PUyFQL zz$8%hBIxi{jhhcweB9hTZ!xp1d>ONVz~xJcmoolJtPQis5eoQXAUmHg^$KrW%jR>> zJ{ulCXLduCL6!4YPVXgmi3B@6Q74ZRXTQG4`TG5z^u>)QIWR!6mDgk{NmmDkGD=m z&DptvL3m#!|2+NQ^7sA}XqSb^9cg3^U6J*s$@%E?($bPemsuSQ4`qnlTGF2_VcTORc|iOAcEzkO}zID4|E$mb~{J~l6NVk(YpoMF0@#kKO~h8evV zw3Sxbzk5((!FJC6>>`E>iww#hUbes2x0}cQxbO4niwfQ`)#Sfx+7~>bpu{ZU{yW_iCEDWqS zFUud5U(WtB-E*Zudw{_&@6B)CIr10JYRXvsXS>ZG4`xBZ){VCnl@{$#PWtO&smkU5 zse2zo2xDopm4(K_40(q3pnI*`(k*`oU6gOJ+I4Im@9zJH9<&_3)v|4t+Lo)bF5fp! z|FTy8yyNd(TVw3|+RZ#K9xd zHU^)wkvr})x5G2_aX`?NZXR#FQ|V6^)m$sw@#5C|gwOZiA3R%svngz*!%Jb?r91QQ z=_O{{H8uNgdl0mIIpR%KL2#*`hQkcs{-$frc{=h929eE z^f3EAb>X?PEt?erC)9EY3JUI4R8rz{H`Y(NziwJ>|IT{XCD{Uuc1B9S&b9xYYIRcg zP~;~jR}tf2O{r6lIiy1t-kr%OXIEz*a{TpsM=`c^+rAxZ<)5eLJ4DZI&J;ea^YX;6 zza>x3c)!~Fu=z4)dMtmAd(4EtuT!jSd4wnLWq+aCG>>n~-#pt}|KqKK&YfzloW<(7 zRMS9A-7(!zF>@QI=jP&xb+MAW{%_;G>Th;f^Y3=^KMk9vHCJ%nyu%xvJYoC9cN=-{ ztD4Sw&3e6Gc)88@(tR=Zem$CvPi9QhKe)F5o_VV$`ug?J(SeIoqW9N5Z@{Q0|hg0Vj5hVq4PH_pwd z*($lMPtkH#XvZQ^Q4d46o6*<5?=76pe9lkzQo4ufifq^8pTbIbWTF};rMG=tp|d2` zicj+RjD&sfG@jILOt z@%Q_f>$7ANf6G1n>QwgV!9leh&z=|jwP3rIzE1wKMq5ncelaH(mrm>HB8<;I_E@Vb zDJd&oX~r z;Osmm`oGy4$_TBn>=wtxNPmOq9s1tx5Gf3vyv-BIVYk5?S6 z8*n6U%Hm=WnfVM_STMJcZk8V5*Zz)2gi*Ut?@0tRmD8NRZ{IS$8GuR zjxt$Wm;^Q~Ny#iu=b6~lnYuGziEOnt|G|@Ml$Deg?U?T=EEs6A{YlWb+MV_K?9Be{ z|LoS-HhuUL$Mf^iQpvZcyRQ5Y-Lv=Df%lK{ZYVZY^t4*NJGLum_o*k95t5I>OO~mo zOD|NPB;X~pR=$1roK+{Dy^>Yew0aTbR>4zi736R3$iex%YklDFoXZ~=c6XE||NCv| z?D)QG>6s!56F?(wNmF?~e&45>@nI#O=TG%T zdlvB=W7y0T`z%6*o8eO5ymMu7*SkU{=I1yp=59FQcyx-7JZrduwfX7tg<+Q_Ox0u9 zaUteD$L{qfQ;Lf6=e3uz&F>JF)`eX?`2~Y z+wH_RmRG7@-c2#g-rxEux_Eu#*4$e?bNLP!q-rgbTC~_V z=-9aHxy_g8yl&F)Y;&0|a_PXUqxrJJd^sZH$ zSo_h#uHePWviHU^>jnRp7(6}eUg^5>`LB)BpIq6!UcUUur(cCR(?xGyU~cDbFi>2n zbn7K+ds?Iw$4jU4 z%XJI9c>5MhvG20WY@Nb%>Q2p)CBM%z9Og`(XcZ?O{dLj$w~u}mPT77w#(vqv9_K&z z_?sU`D=A&7`ls4Xz4sXa{EtSF6C#npM%bPD+@Z*voicY$NhOr+9%A7*q$XjYYE#+ zB0sf%n3dLeJuHkq!v?7pb#>FXaGT%Ar@NZS86 z7?V=H`m>kXv;PmI=1f$4kQLc39(L^jt8U-oIQ0uZ&ed<+bc|K?bBfOIr;-}qcKu!H z@T=!^;rF|zKRo#4UU=DX*^QOrf0sx6m9$$|;&gIe`{i_1SI6!p3tpVbF8rOJcPPKU zR=BSE_0k!6Z#r)jwU_KvnkBU z-YQ1m-`eMPT|#&YUd5@zUY>DK-mG?0oU~b&aPd+D`oFe%WS~?)jh3o@;!X!P?MLn?L=V zYEH;Y<%bc49J0DXO3Lz<_GcRJz23E6P}5$+ISVxE;C{O6UE)`dxsO*I-}y`7R+frO znp{!7Zo|bFe=B!M3I`PAvmX0X&G)JA>QTSFFYH~{$^XuOxU)`1WSzYG=?WD$wr);e zmY=RJBLCMa3I>++p6%%9IOIORBmY+9en$4}?tp3ej;D68&X~7Vd~0a+#e4VIb_)kg zx-@Z8WY?ZUA3e-C4qRNB&($Rc>XkMDQ)+QDo$w~?1V_enM!ctZ;w^XOBW}P3} zcX;mq9o+A2_e;&Mi*3DC*7&6`xZn{hci~ITqXyiZufK_Zc(Qx#Vg0qMCfZ$M-Ry5ijQY)3$kJ- zxXrZN^wasz!~W%uX563G@NxPdw(}x;`|AHZSFVY>+2A*0Vze1^di*XH@8{1BE6o1* zPyT;Xd30O+fw0#W_g=N;seE0OEiAV`pY@qdjh)xIKa%q#%XQ{e|BJ2J^j1JB*Da-Q zX2Z?p^V?7B&1*fRvf%matrhw1{%@{yH~z5)E%G?NHF(+ME%|4TCQI9K)tW~py8TU?o|#hn^QiJn^Xtl$KLB?>n!zSw$NyouewZ@X``(EPmrOv~q0@c2k} z7u;=K8L_ugbYEUp+vyqIf0`y6)Zem+klxp%oV@FOV|%Ugy@=0jYICa0rR(O2YmD34`Zp}yr+(s(|KU#YISn$2hmV>6Z)aAH z%I{rPqYfGYTkF6r_{V`?aH3dBJ+}^{<{$Iz?+&hH)-|5}{D+Q!;uQ9v>NC!P_oCXK zFMYJ-#Fu4@cwY5#ZcSq}yccFEWq0`Ct)wYWmn$r-U|g2|&NcRG+?KCv!B;t2a~?h8J&?=1DZB}`G zSUvg8Su2x$*I2T9nLT`)5|h|;x{oO?zQdV4xkWSDA!SB_#N(En?T0QdOpMx<^WxUr zrl$0?MSpiHzqoai)!ka**wVvAiH1i0o{dT>G4XN^kFDeE$``o(^5A^Qpdg}Bo2=#4 zr|)vRzJI~v$zlPEuC5J^R8hxAt#KbGE#^9Mk^GT`FOp zvG_4p_vDz1i6(aO?en~}=Ui}%pVoQhwATbneMzUNi~l@SZ$&S-Ss1cfJhnGu$8xS` z_9BNWu9@^`pLF|NZ2IEPE!O3}jd?w+C(}igiWAj%JR7ppZEx)_Y75ct5jLJ6w6e-@ z!vA-#j~9Qq(bm7S&L-mL&N`Wpf5m@iXgsOh%3-oaWKV^w%f>sWe%A6un=5sl3-jKp zz1zjbrLlTpSLSD-&Bp^TO$@CwQ|mk3e(?Oi^_SxMcgU^SJB7dN&Fv5|w258Ae*dVf zeGN-~_-~G{A&RvO%*W?R{I$Q+csu?M z_x5*By`V-2PZKd;YaZbHV%Z z|18$&UuN9IJ^xOzZrz`(f5MuB?D;W`)B7t<>Kn2hpYzXPUuf8i)WQpWzt+D$B;0=fNN)NZp1sA)^P>M1 zuX#Hy?ssnwr}?AZ%XN-e#NVEDxbxer=O5o#*B=g#J-GGMu1ook^#fcyf7Z>F>!7bNUwy&4(czW!4&D0L3^+AX3pMSSiyUBVU zm;H0IH-B!3WQ57JJ+r+Wb=I!uZ&b=B$E+Fkf_ip}uU@_icxrL-*_8!lL85i{Ls-6f z^^W)z>TWej>(|E%flS^dI_SjJ=bXR{x@)^O|dJ_qm16P_x#Q;VYk>y;mNk^7@#gXAo`ae0z!AN@BX7^Tkau z5;g07mo0ugQFle38-roLun`Lf*C>0y5Ngeht@Yvgx7`0+>~t8OFvT;8}# z?rW$Xr&iP+B)9$RA5r>XC->tNqAXX_6irT-tC ze7?T%+GYRG)f_i>GS~lq*n4AFf#I}ywLEFlo+=+!xp29LB|bl{{rbF0#{9P#?RS0} z{F_y+tT#8jr6hUBy?AB2stn0>x3&m`>sqoFpW>R3xoPpzRYKDDVjI(^tv@(VZ)N5$ zhBBF-KjL>}9@dg6J*8>!`pQm=cP}_4W+yvtdgM@EZOr%nZtL0kYYx6%U)wWxZQ>f~ z#lG@i7JNE-Kk?=A;=+@ciVJ=f1{)aKGoO6nR{Yj6=kFKcJs%H6|M(HGz&deNsmxZ3 zfZqrIKU}5z{^6XX&mYebUcPvdg|uW^6d^z{G%4l!Tb$WipxLNDG?(cs+ z?b%_;->z^M=A85qS)QtVbisjp!OgRFoxKtD)5`8AvPgeW^~x`&bQ-LjfBnnCnb^Y7;twNu!a86Q1wp)|$e%7e1ESGMr>JUHE6x9FhBOQC)5+VqtJ zT^4ODEZ({(^ZDtF)w4S8EGkM#DsgM?lipf_L@-XCpPJ{&xM&RF=t~pZKXgTls9)Ch8*6MS67RV|KE4) zpnl(hO-nd3)l(0I%wd@;S+MoXfo*#wWwlpb_!Vb8XPv|v@xSjUy*|D#TlaeZ-^afU zCu(iBomQ^Y#ctH$ZJ+ZVG~m%8RQWu3k;a3Ko1a5A5~*=b)c1V4lb=d&;87PH^OYxc}<%B6(`58r=SAKl-YdE9u%w_i_h zB&O~QKErd_xk9h~vx|#J%6%oK??&?){oW*7h&_yG(NGHYbNg3glUJ#{XHMLbvQ*zI z%cf__wEgShl>N7*e_?EZsRirSGCR|mx~ul^p7q+l-oMc8@VVujflqI)JF4=1u5JDg zmaX%TM%#5gcx782usEUM?+mA7Uy~P2_?`Q(`i9=keBnTuErm=Uc7M)%Z(8uOOm|MM ztf1?Pv!6QO3JD5k`X>qr2nPCWcz5jb{@?6&?|lw;p3Xb`)%c9y51THBsGlrPI329M zJ?IVJUd*W3rGERFWcZ`T)ZrAsQ*Z**7G3m1O11Z0p_0<22ANNyyw4y1 zTm0qEr;0hRZ{C{PoS`M`vZ~L*-RRSli;?b+SN!CxE);Oyr{Tvg>Y|)e6H%iX5o5nh z;Imfi>*Fr7&VT9XNGh&VYCpS-ec$vs3j_i~OhSB^l$5$OY$rEpm>h~}SQ-3jg2*S| z%WGHM-N_vqE5jhvJEit~{m1UxTpyk|i$A*6p67nN|J{-OWo7Ljc}g^N^&8_nzSQg! z%70UA7`$johH2ur#JCi zMXt*f*-__n(8xcsrF};o=s*DHWip%UzXxwu2tGNJQ}Aezvzv>H2pf-`D%V7#hfH_A z9trBX-uj~*X}g=!MGZBtv#;kJ;61(TZ|{k}-+KJIsgllVOD{dOsY{&; zw+$(Ow=GW+K`L%|LAK%-RCVmCgJ zt?ukN@jRr*mPN2NGob51)Lac7ht}!A{hu7JEL?tS+dc1lh0*Fsq_9T_g%FR1MLItJtnwVGWkf^gCPI%cCF)vGj)3& z2W_tCjF5X(6eD+W+WQqnJ@rvbA6&k~sZqI3L~SX%u6a$J^#dBYsbozOtTwEH5Y{Sf+*RsOCDM7EtNrv2^F$^VM#}K9FNMToUIkZu)$=AP_Vk z;o>6lHkc8#8@iFFrm}bXeXxe9jmuxP+!lA=?3mj4Z9>hFL2+$AGrDJWZL#I(%c=+PAG&-wM8ky77%?e_KH zvAsYm0Z=y-)Dz`>__6=|@&c~al5C)}K?DO!eEAs8G0fm|aarOyU#YEB_tNv{-)^#R z+ymO=w$gCk1*2ORuWM~$V_c!+*XH@~#Iy|Qd8Z=IY6$k{_kbJ^#U9c;4p(`a{XxzE z2?;e#_n+lme;ypRmlAkZtukO+@T+=f#96WU_l7Yy&2JTle$HQ{S8SmVR-&Y&#Fg`+ zRXZ+NQAx>biy%XF{aeEy;H|lfSla))xVXG22AQogfOqMnOep{Uf(j9kYL~^wcOMW8GEIYEI;CV2}j;?nv zP1D)HN?crA3SE?H^bEe`nCz}5oX0_Av+F-l5GU02!-WD7)aSnq-8*I1l~=BJb-$*0 zuC1M}!=3EACt(9K-vgd#H35Y*1W2Zi7H7uIcxUjsc>UA#d!G`*Oy=%)NdEEq=VtrAPi-!({rvK! z#&Z6q4eQjlppvwgvu1C~I=f8g{kwTe^)}sm@-I$1w>t04tIW^G51-n->V&*L&(CBA z1_rHzy^k3f#GIV{?R0l-dv+^Y{?x3eZ#CVH&-0Caneo=^_$S`T%CoYT-!7$p`gG2D zrqS2yyUfDxe_EFlvD3siI5++9TFWngmVbVA@3Cazor?z3p3J&kZ!Ev#`#Bx$Q#^dU z%eF4{-3SUR28P8Ur-K9Z_lQe{Ufh}*_Ve*${aQ8sw>CDu|0;U_82WhqlVD(I@G_dl z&R}p~s{B*t@oPCdU(b!ad38$9m#1eMpBH_&(D>!+*X23U)7Cwmy*cafv68Ji{^!5G zKl$um|Fflk)7A2puT;;@ul8TJbCa#B<&1mI=bs(;XKQ);_WVt$nY+SbrkhHeE!(_Q zJ^bz$Tgi97Kkq3kIWW&r5IW;dQ-~9LLpketA+sYS5WvnXd^Y*-cr;{5w@oMz; z)c=qDm!99V=9PsIm$<+g|AXt!`11d`{pZKo=u7kNz4`eq|H*gxN}aRY>*jA-8U6HV z)x{&h3=9l2*3LY(?8`<*1~DzY?D-Sy?Tpo=toPMd^S#;sI_ckz^vk_3tv>X6emZ{t zr`x|DPyN$=^Zk50%Sz};|MQgzPx~1eGWOIxd-GC&iGktj>XnA}WiuQ1&Od#*zh2XN z{@*t(oy*00=G16a^M9Ma`~0U%rjfU-_T}%eT5Z0@w|F9te5H#1elxSeii00M=0E$& zy!ZLG%X=-uw|GZ{Iv?M+G`IHM&PAvHuGWrQ9W&Q@|7Yi)CueV8V!Qm)tL=5B^8a2b zTjtd)S@-(N$$B;h28Lx}XNqJOhclQ=GCDRha!vC3`uER2e|a2#YF)a$b>gF!tjg;1 z<)+)qZNK*8&&Sp6Px`Yp?55k#Q~z|Ffx#rRe_8*geE%)i;dG_UGvgY;DWh*15^_^4d zEqs0JTg`Xd{WI^!S)WV{lRND$_j7H{hZ7#tbaw0hKYh*oxvci}=d-?@+hVTj+-^Uw z-2T_pH?x<_n04Fi$!;^-3E$V;o0J=SH}amzgvWc?KVLbx{L}sTT9bH7YYWf#x?H;t z*XrlhU%G4a(mFT#>%W?x@AuVz+FSl)a^-vF_;c?9-!FZ7>ibh;{u=jndf%Uv@Bgy! z&%c!uPkJZZ?SFo8cb@0(58wX$I{aT#Ub=Wf$hw-YZ@)kP&abbR%aJ?veEyHEe-7i- z{d=+U?aS3Sj)gy4`~OS$XYKd5r%kn-mHz+J|1<0V?Oy-vK*uQ=1_p)|h2nZx?7+ReVu9_Pl>N*SjbE>SFu>P35Eu(urnKc z>_EC1b-NO**1ml4#%I!$zwO0k2}%C>Oa43b?W;;?dpkw5y#^tk>gx3S+gdm~sMp(s7U+r2hHQ0-au5T}XHR-dkZ|3WmvUT$#=J~|uFD^;@ z^?9dyoo>9$)%n?R-^xG5%h$NC)1S2H?X*9iboo<0f4Eok@$1{lXKzl@X(=IMo* z^Rl9KpMGwentgwE{H{kK|Bio-KXLdt-;)Ok!Run`YWL;8zWwRlQ`wzmfBBzX?|*md z{2QBDKRtI&wcP#v{HO5h=MUH9Wcp?sK5N~wZO3Oz1_p+J#dp5SFf0q~%NFU*oObvS zOa9vMd(jL36mI_Wv31e}`+3VhRW|=IbjUp>yP2!>^u>=x454wW-Pi6FP_?;hq{`30 zF#XVz%PN`gyxh~>XH8nNQdd{jHga20blCdn+1nP`FE6*9Grdf1_m@2P%co*?zUmV3 zbn|<6rt{yimj`(Id6txy1oHFG_m2>b-2d-jO!1fGpTGU>roDAGp5poW*`GIS`P00M zXC|}T&y=tKlmGeBht^i-o26em|Gayw|NQ6e|DONu{+hSv@w4yG-nRcUnZN(XmRm;7 z%FL40{~t^=pVag;psM}YzU#BJ<_9kSvi7v!v-JIc=6{}g(f^h0PUC*L3f<%Ke_sCi zu<6{M%FBCq=3P(Uy!RO2(TB3}r_}d-T=!>lb@io54`u#eOaI&|d-#9}}T)W3?lQ_q!tCO6#reC)_&$>;Op z<{V7X5_VX7^-ESRDA=}wg6-&~+r@|XmM`0!d8IqG-tT?2&hB#i`G=36k8vws?D2b- zdHUH)N}AQhCD*@wd9_>RsAy%u%gI06xLpB0nFmPyPPxdC`v_kv|`IiSPPT`1Dk|3CPbm;_mM2CZBQAJ#D@y=5q!} z_Y8O6t^_XE>Rn-R^QVT#&wqFBnYaFfce^)#-Nl=!d5TA_N@e%A?^?H2P8Q6&`PF0I zoY15-y5;L{Ol%FTBdA4Os`SRkU&(_?la1UEouW)zu`m^uy|Al^= zBQfW4+3e}}C%%5S!~AsAq=}dBpF4ftPXA`%#tY}4Ee$@NRvvycDKzg*p8rIn_VY3) zS7wI4JNxh6zbToXw=ZqId1H!ykJtSkNM>`Wuii?jOD=CU&|Ff_QD-etbg zqs(-G$>hl5ld}z8y|DP0G4Icz#n1VBpKaNq?|;4PY^14Ty^YE82f0cAepvo|+})~I zAG7h(Oy}!KCI5EB{*zdcC9=3qV_8JpF=cv-E{e5KrE`8V0KE1Rt^SAYMWepvMNriat2i(g$_|Llp*dzD+aisRSqe)~=*U)!iC ztvc@Kv-{6}G(4(39Plf>I{aFa=eiv0^5s*%M%U^2=gxe(F6XsZx$>0rbNcdYGeLe? zWptP2O1Cxx1NUW(_y>n{+~lPWOTMz6Hu?9w6P`aGSE_)WoqToqamIkfJ}VekH2+(s zG-LX=!0MAuas@}9v?o|Tj43x@V%U26$>oq&WL28OF|{=}-6{uW#N z;`krF&x>X}S?=>Isc)CcUv5#6 zGOJ*TuD4lTcwWV2(@br*OZ6YLD?iR$UR>p28TZWZ#Kwb0nf~A2{`07NuygLpWlFj+ z{0EK3=9j(&X}xpmFH(zwS4cqb!V4d>^UJHesHB`J&(iQSKV_rzalltc@;7$?Sfk zxPd`7`SAn>28L3v<9rNR%g^fV(SOpv`q75z_G}9rmCk><FKd43|T9~*k45( zzPcZnzCUs~chI}b`r+Rg0ysepdCRw}@6XAu`j-Cu+jL_C-HB|}!+L(X&Jt>&v`|@1x-P4y!zErrWaYlug=~&ONSr#;F-9Fp< zwdZe{h-#fz&yqVOU;o$n=iI}W)dk$$-1IWzd%x_RrS8}NWZqNVoyCuD z7oC4yKXE;8-`${#WwHMrno8Tm?N~Hx)4#X>HU7VvA6LIFrak_A{m+y8&xwojfP#YI z!iHzXK{=I@>q8&?-?d=I_48Nuyvp5K==5*Lj1T6Yj$bW4b6UQ*?~h@?{)cy^{cUuY z^GrVF)tbl<@S6AelE>^)o&|ChySN!boSdJTw(-~6?&e!_{@PXV%}-{PKfg9l)^bC- zyWd=^nFk*(S-IERJ1pnqs#598H=|UPmlr>2UH|mOgC7+suGjAUySFC(;v^pVvkRxo zoxRw&H1g8klD2Y#3IBrKjV*%yr{2ADXX3iR?RmLbnU?kH*OhY5%0^zZdiQT%>deN6 z|GxD1e{PFAv%mh=#XHsSnQvBn<$wA=vdY=+(<}2&PZzTnS1eJrots_!{g(N2_jP;q zUeBJq@A3I34<8%f-C3sc`j%yWPG>)XzA_n&(%AiLab{SMXl_bZ&w&AT!4VCwA4X7`^4=Zbn?Kei_N zn&~^E2Bo{+=k|x`oIN$wJniueYk}#KR=c&U{pQY8JClF<+Usk}fByN^eA|BZ{)#dW zUp{bb=uB9tm$Byh`H0;2D`!kUuUfyS;7R|}e)sDOKOJYd+^&~u_}S{J^nS($L*4>A zhAWGl?s7dgdFE?+da~u8GwMc{zMsq4msT1zJ@@1;>1{syUOiYSbLZdBJ=@-2QSrWg z`PQ|Xby=D3POg&PZ@xP1^Z))gr?caKR($(;fi|EJxv zUwEMZsdE3HFuRJB3MbXtM-S9L_0N+ySHI)!!8=!K)9b!{v;MqU_+Oohdw-4L{$EGZ zKR@ZQTskqQ{_pF`vd7<_T$}p-^z!?E_jz8IviWp!&-aP?>ECa>NsOz1yZC3XsQiil z+uohhdA(2l|DSi&Zn|=(*4>pq$U*Ye^Pm1@?sQ< z`^)T|@_o{o>rc+S()zse*U{-8|2^#&?*Mh7LRO!UXZDdwp0+u5{?XtY_6!W6veC>T zoBG*%S1wJo|9PTQruJd7<<9crby4N9VPDpGg{Ox{%{s-y|83d-FO73-J{9r3y*bgC zxp%_c8M&%EXE@#{`1by{OWltX!j<2bnLpnho_n&_d)MYgOFiBnxcJ86ThYI?^U6Oz z*H#xNP0KI-@kIRd=ldDw*54_pzqe_RwfC&9o95zAC)T`*{%^Nlwob!-GfBx9s|3Zv`;lhEg$aTtD zY%BIx#ogs&xSDMCwrC^A`{f(>pLzY;!FE#K+~#MpLyhy%m{Tf2l~N1}o{`IR)cWM7 zJfChj-*B^MQj%Z9iMqtawP9bm7Wd7_HNX43Lt(4o&na%#i(cEGJO2N}@6G!%Ro4H% zssEJyUw^vMf{2VMyLQg--MXfajp47wUyFugD<5Bd&k(RWw1FYy zf+!Kj0PWs8pUiVlty0o#k2@J(_bIZ|S?Y9(d8W{1MypR+&I}6PGW%DJ04%g`Y8mNRenOS_9aGyf*cILyk>z}n?|S5n~1 zV}>gqUsW)yaIW2(uC-}y-#Jw-VFm`hn=xwr(>{Or9&q@%kKyIScQe=-62y$-CeFae+)y-I`Yv`^vL%NbhBEO(p=S})DO z(BNirQ@HS$e)F$%9}WhFthM^DPcfyPe-eBwlut__LFVyeh7ia5VV9YIWiY&|oN=(n zf4NT3l9H4{&*N8GJC{%Pbws`Ujs(*qvn zFfnY@VJJQSBp5W5w!!B<>x!wnvVD#@vxfaWw|wQPo9nn47(|lNv?>gItv+s%xPH`b z|GgRN^IsJ)GcYiGPFl9ST5>`JkC!Y1!-9V^Yq%I3?#?PW`}(N(o%+qcramsaQ*xS- zfni0({Hi-gE_3_a>K-dUtLI}Qd;jgVT#yNR(F-|Nd1g*$U|=wjn(WWWu)_MNiv8|q zTc_QuW?(RQ?RQ~DWPR(2S*KqI&!3-DRro0L<1xXqkH1$OURyE&GzQ;&Xzm8FGf$lR zlczH>Fa((U*s(siB%uT9Pc{51ulx3L#`5`nQqnqizj8LXW-mxvRLI28a7yy~jo^o7 z3=9s=20uj_R`yC8v#jWTb(+_ok)grr4a-z_}7M&oBkFT zF3P-D@#*E!&gGW&54T)7&XzDy`kJJ4IIk!JL&&rrQVa|WF3za&nmRLY+U!Q|2oXP9 zP>!2raJ9FB=e^FRq+b)?XVn#C7|w3yV_3CzqS12^P=bBdxKoay_r#OSRhRdu%Kx~` z|9ts&v;NEz?reUk@3-%t^Z)hsI{W!mxeJalO}zM;!)w7W3;jl|HPg7Z3NtWV*b%$v z=H3%c680arNSNQ;BC~tVt#4O2GtKUmml4!KELmui1@r3tEb1ASDgG64VqK{xnUC9{F_g8AD&o!$qe3WVVj&lWr>Ftygpzaj|1H%E=UhAJ*lC!tn`Fd{6 zn=CK4Uq#Oj6kArjaQOA>SMWAn@9Uq=Ms7_^-W4@%`SV}jQ;Pq)f4=n3c=J8K{P=pK zlVz~^gTu3Dw|g7kx_x<`%HO||1y4a8X$FSg1rpzjckakvC^kjB>(!sj{-=vRZQA|g z%jJ*40Z$bgqD;^Kd~BJYzVB+_za2hX@1J92XlU)^Vg${oWM4SB-1Sz~wzNw3V51U) z-}8T!l*!rIru}$$U8SMSG$g0|SH3GPb!jQE3V9pMUyt({|^ozT)wzoPrb4~S#80qK4#P0g`bZb=cdmy zb@~@E8&obZFod+O%nOf|KG`$v*xf>Gqy9HrF5JvbFSt@RYj#(wwL{msJ3o#0&ynB1 z&{SRS=iZtR!t6=!G(pLVfj99>vis?y)%>Z3l~yZl?5m68?nfDR8_oK%ckb`oO3CUo z{dRIru4%B!FcCAVxA|Q5Y<294$$tthU89%VGJ%a)g85@O{U!K)>?p*Qi z4gU+y@lBZ?bLQ>lJAM-{`rGfVi7o%{^6x8u?Br?9^^^bqHMg65z5Q({*Z?VyNZI!b zV|uxctw@g~tBgz2M@8;XqAB5KFM;rK+d3 zk^5Kax>`;M-o0;bu=4c%b1zTdGuQj#yxsRd2V67df4;N--}ai19;WKoRsMl(TA}>( zjoUu)q>?=|-fc~qmS40=zoE_0{^#T1PsgX`F!Kd%axMbiqpOyuFSmtk=3Wzbot`Hcl7e|w6YT1 zJs7~@6X1SoiB4J^dxO?yho6rl^OqONuQ>*qzhPi-D4lSDX~m31+g626_Ma@`oqwM9 z`@NaxE}n1H{asvjKl$d~-#=yS>e9k~mmGUL$71(^`D@Jk|6ZNG>3i<`Q(yl-nEpxo z_&`Dmie&sO(y*Nx9+X1@1(-gP!|@5jD1G5;NQ zg~!jnd;ibsHCPhG z>SzK)!X&!t{YWNd94bwJ~pYmlgl< zoTVl=J1Xi)W362XYVa{Il&+uiWAzt?1F0(#{_Rk@J=6FnXtKQFSb)#R zS?X*|48_TxUhv9?a|7Mw_V?k|f?wb#Ayn)vX| z?VaX-%hVaV7tJ^<4)U95=(!K92kxx8%JsBgd+Xet6Tx0tQNQje3xn42CzoeBtzY!B zMp4u=FeJ@dbCW@M)t6^G^WUEdxH)OI+%EgiyY)%qBnD+_i) zW9h&l&Get4d!JMKoVe0yg4#5aF_ z$Um=tBkOtH)_!9B$M5U>Hg6VdIBN2Xak*R>7sz~vP)JBKH2ezCVp_4FZBEUtJ+Btt zDY^YNa_7VMPugCaFR$$i%0LVXF| zb~KRxz$1-kKdcxS7-IGmPdul5<*#O(#nZ;4%Jn=T8yU7P*mLITff&>HtyzEf=j~Ya z?9D?Sy}Og-_%;kqBqPN6uJ!WGcYhDoU8R(kmvs~ z^ZC40Oe>O|ots5(`gv#1KD0*QXEG$heIM-S)Zna=X%1>%aTBZo7POr%PhkBuI>w zx~}7W@aeVRSB)(uZ`9>2Coa~n(NX`NcP{kxy3<|rLSMdmR zZlSGpQCdREzwO57+xXs`KR7YP)!)Br)+7%(aEZ#$y=u;*^m0Bnu|}v3M^!W%c50?= zjJfOeI5YE2e|*}DE7~`=|DF0~b=TW7ix)2BQS&S=o+b00L8oT&>sgKr3=Ab|jVDDH z2W@>iWBStkM%I3NSUFW6{Pa=k^M;L4B96_HGN&d4F)Wz%Vle{)!-C5kyh|ni22T`u ze*UYHXXJNdKklzG0kO|?>tj0JF35V!UkjSOYB&~hrbsr~<$$!0-CA>B>CegX|IYsT zaIEnA^4xbm{>3xziEm3kz9ESzL2%0BU%J0k85kH$kF{tf$eEmR?(2@+vo4PH*}|?if_qPR>-c?~~UspXd)ID(Gz{)q3 zkMuu1y#MpHj8vcxgU%Gsb#glCZ$OJz0!q6ywPtIcPc9=7z%FQcWK`s}tybbkI-bv`7;T6V6th}tXb1w{wLU&^pDEa3V*^=Qdm z&yCro@5FzzEy#NPDM>7}@^HW4*;f}gTnMoF398T=PR+b3v8FRCz+TI{1dYGzxi~tg4)009xY&%8JX9 z&TP*NHU(Batf~T4ehuCMXNn>ttMmUKDoSn--P-+zkKtAK zG+sAjh$AW=K06$sueN)$`hln6x=(*BQ0$en>6it|&z{ zNaEE*W9fjo3=CJ2UZk#RJEhI?o8f@cQH4jm)l3aLrRslYmRcChRfBZu4}3W#S;x-M zaP!ENM;nJu_nAKR`QT)3z@F$$uv`x*1_u|G74I94+UR#j&YO2G@mcUg z31)^g@!eek**W@*0mY)02V`c{fJ#J%qmrvZRnH1Bw=4#R6$>pc2H%viWH^)j)^@d< z*aIa{Csu0GIc0_o94(R{?=vtQ@Ns)CYU{AK>YJzG^||a0rRJL$j6p%MV4=w7829Hw z3^Tev&pcK%X@heFD6AP67|xthF_t;K@>+6W89xI9@6jiqWjhR72{B4L=H!8Tm7o-T z@`U;=bq0nIZjhY}3@ZdY-60l6#1xe=FgT=|Xo3R*A_yY&K0FCtp>>q!^xa;NU$QpW zulEO~O$TLTJ2nOe2V0FVwT*2_#B|p5GcTXj-lx3%PHnW+dHeXXCm-%VneA^g-SN0= zF_*)!_38?s&d06Sk6&MAW;pQX@$-*j2Gge5vo%<1rDxpk?F9AKU!VETAQg_j^lUpT z)}?2X^G+X|9hUl**L?Y6k5fj;+xe#pO`gIe1RBox+qd7Yw)Wlik8jc$X6!FByLGSX z?*5~X-iQ56X4nz)$cTY~;nj@xc}%=33f1SA<(!?i``*l{vA!og;?K!c=&|$5dc?=q zpW2rCGHRdYYO@@l@YA2Z#QdL^^X`8}+^zbwY0~*#$G7I6y?T09@VrVj_H%isXNAfc zola#@5}(HH0SeiyhDMnM(_XLtcqRRSQi$#1cztn=eUrd7J41rj=6UZQRxvKvXOiKz z8p~p^koW4}?B_H8et<^}F+*rm5~My4-uS_`%0Hb6uqaO76|@ogKE^a(U5%*5k#W zUgbtUj!5PUJnKsJWY*HUNS*vHJk;PCYKf?u;40(QUs5ps%i|7m$}@7rLq zlOO}{5?4W=<)*T8=Xy@s1nL=`DQFBl{VQk3yI)&U4b;nPRNH?&``onTrdhaN7t?}? zyRuu&1Q;4z!~BG{clj=S^?SNsG{cHh*LLlBvVV^L)j9U-ChzbG0A*qZh5%C^ySYIV zuW7$O{VOyVwBYW}*SB+|X71CNo>P+@RxYaPUuSGxF28liP5 zIQ!+wR1F4(5ZCwfj@`W8n!G^n_l&ks#v^ezHcw{Z_&U*k-7^KKB_Z~Ur#UDa{xtEN zwfoY=n-iC*WM+ALyZcXDduQ6!*VmSKhRpnw}(9xJH;9$$%=bKer?{B;y<~6vr0?G*tlaV?? z%L4VM{k7cte&d^ae{1;U?Tu@#HorKxO8VWYOUsP@?%qG?dOyGJgW2;RmH+&9%lK-u zQPO;-Gdpub(m}<>nS-qdr*JcCvqh{}mb^KDhc|>fw0qV$NW278KC5QnJ@w@BN|CoO zqbh5|`1(^e{9h^aUUpvA(Jkw04Wz4XP5LLk>GRZB$#q@d?RPO2PxLtJqF5#jN-7N9 z%VfUGu6ns+NnUxrtNyi_$4{QxIuDXrRvk!5o^kA8c3Ui~iNa+6$y3zjPEL-mcv2I6 zZ_c!D?@HF)m~&P7{fSdw`Il6G-Foxy+5M;H2{#M>-;rCquJ-b=Ez9)XbcP12jK|uZ|0JY3xSbo_Ry=pB6w&j+V%GHod4!#X3ovwKAXAA;OO?1rnB;C-y`aoG$2T`M+CCl3O zX4w6&xWQdsv3o;;>#k|rmS{{mmwj*c?sYSdZmZg-yxsnb>~p5p%lA)gm#@@Wu5a#O zQC~ad^b&>)iOZ%{R`&u9I^3vaW8kP$(-Y>onywx!z!M<*c8%3^Da%ExZR>e-Ji4ES zu)Z=4k`KPV^M`B$Yi8rKjR$A0+j#jHV`u<3*G|S2tiHWJH_pDi@7KXSnYXWPIct!- zx$@}MmpYTCG{3YiUbRa4d(jM`eXAakaCC`1Q?cE|Cz`AC=8Jq|UzpWIP!JYuDlb=&PrbjQAz#ZCu4W%|FJ_8!#{nBueZ=Y|7ZWw=hx<+ zD$R}#lKVHi=5yzBqlk(AhFTZH{3d^#(9gVJozJxmJHKCk8d&!^c$sO;H@54bYWC-o zjfEi#f1QwLcG${RdwH$00t>@4O}&D@+yP5ZRd5(HY+b6TKA%tiS5=v8#Qe3Zr>C7X zeSdDPt#wht`Mx<;rAEz%J%g*ur>(g$DfG43vdvpP-29%O;Eq3iG3vyxP6vjJ6YDHM zNig7RmuH>%9(U0hTJ<%bYX0rmIqmatkc301p$?xxbn(u`9k)vNnLK%Nd5U`RkD2}{ zOWx1DS#$Q)7QNe(O3ia-)?7X4Y`Np_=gQpsn(o{T47|5pC4Qi{=MZ9uu+vT1F9pD3#reQE7~`sCi(omqEF zBQI{&ik%yqnW<%Lb7S_u%j`v;PMo&flJ0(vr{{{plE5=XwhRk4E{3e(S6i|Ak0FDO zTBR35!n#vGZ>DVA@L%=77ST&3Unf~{CI}s!k$-vZBDuNGZ8yGM_FJTI@7xF_L52iB z&)APmo8-UVdtTx%e4LNrLWbd-AM6ZztLM%&oO)FvH#h$M%&wf}i;FuCb0;X?+7KDL zVcq_Y;?!l+m)V8RvFF~m|JfuVowv#iVhUv|Dx#BZxK_08^8e3~5LWtJWZ~T-6Z~YY z;-f?yZ3`DMFa$JCxWu~>9I**^7#pH;_v_`eu1GGPQQ;MOH9PfTVgZ9rT0^W(%<9E~ z%&V5YV}4L1GWpNCvRDbwXy_Hy@K2y-WI$_5Bjbe($G=*0(ziyP_N_X&>@Ksz*<-iX z&1Pa~@B+1f7c4v}Vf3#;Lq?2&fx&@w=Z*fVAfMtn%nfNp$2LrO)p`E(&3AIv>vs9; z{bqNNL&e7=26?U>XG-=jL$19yO*bvny9>qG7_Fidw6*=pfq$I8GED-B9_ z2}Vbs?3ZF?X|Oc7$fT#qr<=wRcz*|bm-Ipgovc>dkGG#F1{(fi|7ynI;L5T3+1!)M zLAn@X79~x4E%}z6;g$BQnH2~38! Date: Fri, 18 Nov 2022 17:28:26 +0100 Subject: [PATCH 0092/3265] docs: remove readme png from version control --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b65d2be83..bf09b69f0 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The goal of `nvim-treesitter` is both to provide a simple and easy way to use the interface for [tree-sitter](https://github.com/tree-sitter/tree-sitter) in Neovim and to provide some basic functionality such as highlighting based on it: -![cpp example](assets/example-cpp.png) +![example-cpp](https://user-images.githubusercontent.com/2361214/202753610-e923bf4e-e88f-494b-bb1e-d22a7688446f.png) Traditional highlighting (left) vs Treesitter-based highlighting (right). More examples can be found in [our gallery](https://github.com/nvim-treesitter/nvim-treesitter/wiki/Gallery). From 8a261e32ec50979c367448598844af2be0ed05f7 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Tue, 20 Sep 2022 02:03:08 +0300 Subject: [PATCH 0093/3265] feat: add jq --- README.md | 1 + lockfile.json | 3 + lua/nvim-treesitter/parsers.lua | 7 + queries/jq/highlights.scm | 329 ++++++++++++++++++++++++++++++++ queries/jq/injections.scm | 31 +++ 5 files changed, 371 insertions(+) create mode 100644 queries/jq/highlights.scm create mode 100644 queries/jq/injections.scm diff --git a/README.md b/README.md index bf09b69f0..f06792b93 100644 --- a/README.md +++ b/README.md @@ -231,6 +231,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [http](https://github.com/rest-nvim/tree-sitter-http) (maintained by @NTBBloodbath) - [x] [java](https://github.com/tree-sitter/tree-sitter-java) (maintained by @p00f) - [x] [javascript](https://github.com/tree-sitter/tree-sitter-javascript) (maintained by @steelsojka) +- [ ] [jq](https://github.com/flurie/tree-sitter-jq) - [x] [jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) (maintained by @steelsojka) - [x] [json](https://github.com/tree-sitter/tree-sitter-json) (maintained by @steelsojka) - [x] [json5](https://github.com/Joakker/tree-sitter-json5) (maintained by @Joakker) diff --git a/lockfile.json b/lockfile.json index 20c60faae..64e349d59 100644 --- a/lockfile.json +++ b/lockfile.json @@ -176,6 +176,9 @@ "javascript": { "revision": "936d976a782e75395d9b1c8c7c7bf4ba6fe0d86b" }, + "jq": { + "revision": "13990f530e8e6709b7978503da9bc8701d366791" + }, "jsdoc": { "revision": "189a6a4829beb9cdbe837260653b4a3dfb0cc3db" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 2860dee53..0ba47880e 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1307,6 +1307,13 @@ list.arduino = { maintainers = { "@ObserverOfTime" }, } +list.jq = { + install_info = { + url = "https://github.com/flurie/tree-sitter-jq", + files = { "src/parser.c" }, + }, +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/jq/highlights.scm b/queries/jq/highlights.scm new file mode 100644 index 000000000..0793e159e --- /dev/null +++ b/queries/jq/highlights.scm @@ -0,0 +1,329 @@ +; Variables + +(variable) @variable + +((variable) @constant.builtin + (#eq? @constant.builtin "$ENV")) + +((variable) @constant.macro + (#eq? @constant.macro "$__loc__")) + +; Properties + +(index + (identifier) @property) + +; Labels + +(query + label: (variable) @label) + +(query + break_statement: (variable) @label) + +; Literals + +(number) @number + +(string) @string + +[ + "true" + "false" +] @boolean + +("null") @type.builtin + +; Interpolation + +["\\(" ")"] @character.special + +; Format + +(format) @attribute + +; Functions + +(funcdef + (identifier) @function) + +(funcdefargs + (identifier) @parameter) + +[ + "reduce" + "foreach" +] @function.builtin + +; jq -n 'builtins | map(split("/")[0]) | unique | .[]' +((funcname) @function.builtin + (#any-of? @function.builtin + "IN" + "INDEX" + "JOIN" + "acos" + "acosh" + "add" + "all" + "any" + "arrays" + "ascii_downcase" + "ascii_upcase" + "asin" + "asinh" + "atan" + "atan2" + "atanh" + "booleans" + "bsearch" + "builtins" + "capture" + "cbrt" + "ceil" + "combinations" + "contains" + "copysign" + "cos" + "cosh" + "debug" + "del" + "delpaths" + "drem" + "empty" + "endswith" + "env" + "erf" + "erfc" + "error" + "exp" + "exp10" + "exp2" + "explode" + "expm1" + "fabs" + "fdim" + "finites" + "first" + "flatten" + "floor" + "fma" + "fmax" + "fmin" + "fmod" + "format" + "frexp" + "from_entries" + "fromdate" + "fromdateiso8601" + "fromjson" + "fromstream" + "gamma" + "get_jq_origin" + "get_prog_origin" + "get_search_list" + "getpath" + "gmtime" + "group_by" + "gsub" + "halt" + "halt_error" + "has" + "hypot" + "implode" + "in" + "index" + "indices" + "infinite" + "input" + "input_filename" + "input_line_number" + "inputs" + "inside" + "isempty" + "isfinite" + "isinfinite" + "isnan" + "isnormal" + "iterables" + "j0" + "j1" + "jn" + "join" + "keys" + "keys_unsorted" + "last" + "ldexp" + "leaf_paths" + "length" + "lgamma" + "lgamma_r" + "limit" + "localtime" + "log" + "log10" + "log1p" + "log2" + "logb" + "ltrimstr" + "map" + "map_values" + "match" + "max" + "max_by" + "min" + "min_by" + "mktime" + "modf" + "modulemeta" + "nan" + "nearbyint" + "nextafter" + "nexttoward" + "normals" + "not" + "now" + "nth" + "nulls" + "numbers" + "objects" + "path" + "paths" + "pow" + "pow10" + "range" + "recurse" + "recurse_down" + "remainder" + "repeat" + "reverse" + "rindex" + "rint" + "round" + "rtrimstr" + "scalars" + "scalars_or_empty" + "scalb" + "scalbln" + "scan" + "select" + "setpath" + "significand" + "sin" + "sinh" + "sort" + "sort_by" + "split" + "splits" + "sqrt" + "startswith" + "stderr" + "strflocaltime" + "strftime" + "strings" + "strptime" + "sub" + "tan" + "tanh" + "test" + "tgamma" + "to_entries" + "todate" + "todateiso8601" + "tojson" + "tonumber" + "tostream" + "tostring" + "transpose" + "trunc" + "truncate_stream" + "type" + "unique" + "unique_by" + "until" + "utf8bytelength" + "values" + "walk" + "while" + "with_entries" + "y0" + "y1" + "yn")) + +; Keywords + +[ + "def" + "as" + "label" + "module" + "break" +] @keyword + +[ + "import" + "include" +] @include + +[ + "if" + "then" + "else" + "end" +] @conditional + +[ + "try" + "catch" +] @exception + +[ + "or" + "and" +] @keyword.operator + +; Operators + +[ + "." + "==" + "!=" + ">" + ">=" + "<=" + "<" + "=" + "+" + "-" + "*" + "/" + "%" + "+=" + "-=" + "*=" + "/=" + "%=" + "//=" + "|" + "?" + "//" + "?//" + (recurse) ; ".." +] @operator + +; Punctuation + +[ + ";" + "," + ":" +] @punctuation.delimiter + +[ + "[" "]" + "{" "}" + "(" ")" +] @punctuation.bracket + +; Comments + +(comment) @comment @spell diff --git a/queries/jq/injections.scm b/queries/jq/injections.scm new file mode 100644 index 000000000..5b3913967 --- /dev/null +++ b/queries/jq/injections.scm @@ -0,0 +1,31 @@ +(comment) @comment + +; test(val) +(query + ((funcname) @_function + (#any-of? @_function + "test" + "match" + "capture" + "scan" + "split" + "splits" + "sub" + "gsub")) + (args . (query (string) @regex))) + + +; test(regex; flags) +(query + ((funcname) @_function + (#any-of? @_function + "test" + "match" + "capture" + "scan" + "split" + "splits" + "sub" + "gsub")) + (args . (args + (query (string) @regex)))) From da90af1a910234078d60795e8f8bb0735c1a15f5 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 19 Nov 2022 06:42:43 +0000 Subject: [PATCH 0094/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 64e349d59..eb31b707e 100644 --- a/lockfile.json +++ b/lockfile.json @@ -144,7 +144,7 @@ "revision": "b7bd6928532ada34dddb1dece4a158ab62c6e783" }, "haskell": { - "revision": "bee6b49543e34c2967c6294a4b05e8bd2bf2da59" + "revision": "aee3725d02cf3bca5f307b35dd3a96a97e109b4e" }, "hcl": { "revision": "45ce22c16ec924e34517cf785e23c07952e45893" From 37071a2e973ab2692bc260842c85e8e16e613ad7 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 19 Nov 2022 15:46:51 +0100 Subject: [PATCH 0095/3265] docs: add `@nospell` to contributing.md supported as of Neovim v0.8.1 --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5a6fd71ec..e5d39e426 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -231,7 +231,8 @@ Used for XML-like tags. #### Spell ```scheme -@spell ; for defining regions to be spellchecked +@spell ; for defining regions to be spellchecked +@nospell ; for defining regions that should _not_ be spellchecked ``` #### Non-standard From 24caa23402247cf03cfcdd54de8cdb8ed00690ba Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 19 Nov 2022 15:32:33 +0000 Subject: [PATCH 0096/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index eb31b707e..117750ec4 100644 --- a/lockfile.json +++ b/lockfile.json @@ -243,7 +243,7 @@ "revision": "6b71a810c0acd49b980c50fc79092561f7cee307" }, "norg": { - "revision": "dfac5ad2740a79b18ae849590a924e7bad3f1b23" + "revision": "8ad20059c6f128861c4506fff866150ffee1d6f4" }, "ocaml": { "revision": "cc26b1ef111100f26a137bcbcd39fd4e35be9a59" From 596fd673f59d13ead68c65c38b9c32fc94173b6b Mon Sep 17 00:00:00 2001 From: Luke Swithenbank Date: Sun, 20 Nov 2022 16:32:52 +1100 Subject: [PATCH 0097/3265] Add Spelling to hcl comments --- queries/hcl/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/hcl/highlights.scm b/queries/hcl/highlights.scm index f6512148c..658369292 100644 --- a/queries/hcl/highlights.scm +++ b/queries/hcl/highlights.scm @@ -78,7 +78,7 @@ (numeric_lit) @number (bool_lit) @boolean (null_lit) @constant -(comment) @comment +(comment) @comment @spell (identifier) @variable (block (identifier) @type) From 126a271363ff5307c943e89ff27d0a13e0260f8d Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 21 Oct 2022 19:48:15 +0300 Subject: [PATCH 0098/3265] feat: add mermaid --- README.md | 1 + lockfile.json | 3 + lua/nvim-treesitter/parsers.lua | 8 ++ queries/mermaid/highlights.scm | 177 ++++++++++++++++++++++++++++++++ 4 files changed, 189 insertions(+) create mode 100644 queries/mermaid/highlights.scm diff --git a/README.md b/README.md index f06792b93..a72c5e20b 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [markdown](https://github.com/MDeiml/tree-sitter-markdown) (experimental, maintained by @MDeiml) - [x] [markdown_inline](https://github.com/MDeiml/tree-sitter-markdown) (experimental, maintained by @MDeiml) - [x] [menhir](https://github.com/Kerl13/tree-sitter-menhir) (maintained by @Kerl13) +- [ ] [mermaid](https://github.com/monaqa/tree-sitter-mermaid) (experimental) - [x] [meson](https://github.com/Decodetalkers/tree-sitter-meson) (maintained by @Decodetalkers) - [ ] [nickel](https://github.com/nickel-lang/tree-sitter-nickel) - [x] [ninja](https://github.com/alemuller/tree-sitter-ninja) (maintained by @alemuller) diff --git a/lockfile.json b/lockfile.json index 117750ec4..3b13d6063 100644 --- a/lockfile.json +++ b/lockfile.json @@ -230,6 +230,9 @@ "menhir": { "revision": "db7953acb0d5551f207373c81fa07a57d7b085cb" }, + "mermaid": { + "revision": "d787c66276e7e95899230539f556e8b83ee16f6d" + }, "meson": { "revision": "153d22588fb5c1eee16a165a084f9ea30f29d941" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 0ba47880e..0c22f27b2 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1314,6 +1314,14 @@ list.jq = { }, } +list.mermaid = { + install_info = { + url = "https://github.com/monaqa/tree-sitter-mermaid", + files = { "src/parser.c" }, + }, + experimental = true, +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/mermaid/highlights.scm b/queries/mermaid/highlights.scm new file mode 100644 index 000000000..2f3e31b90 --- /dev/null +++ b/queries/mermaid/highlights.scm @@ -0,0 +1,177 @@ +; adapted from https://github.com/monaqa/tree-sitter-mermaid + +[ + "sequenceDiagram" + "classDiagram" + "classDiagram-v2" + "stateDiagram" + "stateDiagram-v2" + "gantt" + "pie" + "flowchart" + "erdiagram" + + "participant" + "as" + "activate" + "deactivate" + "note " + "over" + "link" + "links" + ; "left of" + ; "right of" + "properties" + "details" + "title" + "loop" + "rect" + "opt" + "alt" + "else" + "par" + "and" + "end" + (sequence_stmt_autonumber) + (note_placement_left) + (note_placement_right) + + "class" + + "state " + + "dateformat" + "inclusiveenddates" + "topaxis" + "axisformat" + "includes" + "excludes" + "todaymarker" + "title" + "section" + + "direction" + "subgraph" + + ] @keyword + +(comment) @comment @spell + +[ + ":" + (sequence_signal_plus_sign) + (sequence_signal_minus_sign) + + (class_visibility_public) + (class_visibility_private) + (class_visibility_protected) + (class_visibility_internal) + + (state_division) + ] @punctuation.delimiter + +[ + "(" + ")" + "{" + "}" + ] @punctuation.bracket + +[ + "-->" + (solid_arrow) + (dotted_arrow) + (solid_open_arrow) + (dotted_open_arrow) + (solid_cross) + (dotted_cross) + (solid_point) + (dotted_point) + ] @operator + +[ + (class_reltype_aggregation) + (class_reltype_extension) + (class_reltype_composition) + (class_reltype_dependency) + (class_linetype_solid) + (class_linetype_dotted) + "&" + ] @operator + +(sequence_actor) @field +(class_name) @field + +(state_name) @field + +(gantt_task_text) @field + +[ + (class_annotation_line) + (class_stmt_annotation) + (class_generics) + + (state_annotation_fork) + (state_annotation_join) + (state_annotation_choice) + ] @attribute + +(directive) @include + +(pie_label) @string +(pie_value) @float + +[ +(flowchart_direction_lr) +(flowchart_direction_rl) +(flowchart_direction_tb) +(flowchart_direction_bt) + ] @constant + +(flow_vertex_id) @field + +[ + (flow_link_arrow) + (flow_link_arrow_start) + ] @operator + +(flow_link_arrowtext "|" @punctuation.bracket) + +(flow_vertex_square [ "[" "]" ] @punctuation.bracket ) +(flow_vertex_circle ["((" "))"] @punctuation.bracket ) +(flow_vertex_ellipse ["(-" "-)"] @punctuation.bracket ) +(flow_vertex_stadium ["([" "])"] @punctuation.bracket ) +(flow_vertex_subroutine ["[[" "]]"] @punctuation.bracket ) +(flow_vertex_rect ["[|" "|]"] @punctuation.bracket ) +(flow_vertex_cylinder ["[(" ")]"] @punctuation.bracket ) +(flow_vertex_round ["(" ")"] @punctuation.bracket ) +(flow_vertex_diamond ["{" "}"] @punctuation.bracket ) +(flow_vertex_hexagon ["{{" "}}"] @punctuation.bracket ) +(flow_vertex_odd [">" "]"] @punctuation.bracket ) +(flow_vertex_trapezoid ["[/" "\\]"] @punctuation.bracket ) +(flow_vertex_inv_trapezoid ["[\\" "/]"] @punctuation.bracket ) +(flow_vertex_leanright ["[/" "/]"] @punctuation.bracket ) +(flow_vertex_leanleft ["[\\" "\\]"] @punctuation.bracket ) + +(flow_stmt_subgraph ["[" "]"] @punctuation.bracket ) + +[ + (er_cardinarity_zero_or_one) + (er_cardinarity_zero_or_more) + (er_cardinarity_one_or_more) + (er_cardinarity_only_one) + (er_reltype_non_identifying) + (er_reltype_identifying) + ] @operator + +(er_entity_name) @field + +(er_attribute_type) @type +(er_attribute_name) @field + +[ + (er_attribute_key_type_pk) + (er_attribute_key_type_fk) + ] @type.qualifier + +(er_attribute_comment) @string @spell From 370546d2833982c3082f4ac4c6e2dc111a5baf23 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 20 Nov 2022 13:04:59 +0200 Subject: [PATCH 0099/3265] ci(readme): add experimental annotation even when the grammar is unmaintained --- scripts/update-readme.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/update-readme.lua b/scripts/update-readme.lua index 2942a8ce6..c2a1eac9f 100755 --- a/scripts/update-readme.lua +++ b/scripts/update-readme.lua @@ -25,7 +25,7 @@ for _, v in ipairs(sorted_parsers) do .. table.concat(v.parser.maintainers, ", ") .. ")\n" else - generated_text = generated_text .. "- [ ] " .. link .. "\n" + generated_text = generated_text .. "- [ ] " .. link .. (v.parser.experimental and " (experimental)" or "") .. "\n" end end From b6e4f544860651b5ee4f2c43e909674c57355b52 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 20 Nov 2022 11:26:00 +0000 Subject: [PATCH 0100/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 3b13d6063..75f671d68 100644 --- a/lockfile.json +++ b/lockfile.json @@ -111,7 +111,7 @@ "revision": "127f5b56c1ad3e8a449a7d6e0c7412ead7f7724c" }, "gitattributes": { - "revision": "cee9f8865694b29bb9e85e0b90805f92ad3fc47e" + "revision": "577a075d46ea109905c5cb6179809df88da61ce9" }, "gitignore": { "revision": "f4685bf11ac466dd278449bcfe5fd014e94aa504" From 505ce656606284a20a9b0f59dc454da8872faf77 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 21 Nov 2022 06:46:14 +0000 Subject: [PATCH 0101/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 75f671d68..a4fa651d1 100644 --- a/lockfile.json +++ b/lockfile.json @@ -354,7 +354,7 @@ "revision": "52e122ae68b316d3aa960a0a422d3645ba717f42" }, "swift": { - "revision": "25f8de356e3c33099ed691bd3b8b5c0fe3a11e15" + "revision": "cff1c9a62df89e8900d53ff48bc42862e6522dcf" }, "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" From bbe90e9318861c5e3cad67d7fa05bff58cfc5622 Mon Sep 17 00:00:00 2001 From: Trard Date: Thu, 10 Nov 2022 19:21:10 +0300 Subject: [PATCH 0102/3265] removed switch from keywords --- queries/ecma/highlights.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/queries/ecma/highlights.scm b/queries/ecma/highlights.scm index aa490b33c..768b8d7ca 100644 --- a/queries/ecma/highlights.scm +++ b/queries/ecma/highlights.scm @@ -239,7 +239,6 @@ "let" "set" "static" -"switch" "target" "typeof" "var" From 4f885f2d07a4a0f49f0b56f8c052a6e2e09b4134 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 21 Nov 2022 11:00:23 +0000 Subject: [PATCH 0103/3265] Update lockfile.json --- lockfile.json | 2 +- queries/vim/highlights.scm | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index a4fa651d1..fe97c8bd6 100644 --- a/lockfile.json +++ b/lockfile.json @@ -399,7 +399,7 @@ "revision": "2f87b9d973597e69552ecf6a4fe16470fbd8c44e" }, "vim": { - "revision": "4ae7bd67706d7e10afed827ce2ded884ab41650f" + "revision": "55ff1b080c09edeced9b748cf4c16d0b49d17fb9" }, "vue": { "revision": "91fe2754796cd8fba5f229505a23fa08f3546c06" diff --git a/queries/vim/highlights.scm b/queries/vim/highlights.scm index c3ce3dd94..239b0a0b3 100644 --- a/queries/vim/highlights.scm +++ b/queries/vim/highlights.scm @@ -36,7 +36,8 @@ ;; Function related (function_declaration name: (_) @function) -(call_expression function: (identifier) @function) +(call_expression function: (identifier) @function.call) +(call_expression function: (scoped_identifier (identifier) @function.call)) (parameters (identifier) @parameter) (default_parameter (identifier) @parameter) @@ -104,6 +105,7 @@ "ex" "visual" "view" + "eval" ] @keyword (map_statement cmd: _ @keyword) (command_name) @function.macro @@ -197,11 +199,14 @@ (integer_literal) @number (float_literal) @float (comment) @comment @spell +(line_continuation_comment) @comment @spell (pattern) @string.special (pattern_multi) @string.regex (filename) @string (heredoc (body) @string) -((heredoc (parameter) @keyword)) +(heredoc (parameter) @keyword) +[ (marker_definition) (endmarker) ] @label +(literal_dictionary (literal_key) @label) ((scoped_identifier (scope) @_scope . (identifier) @boolean) (#eq? @_scope "v:") @@ -237,12 +242,16 @@ "%=" ".=" "..=" + "<<" + "=<<" + (match_case) ] @operator ; Some characters have different meanings based on the context (unary_operation "!" @operator) (binary_operation "." @operator) + ;; Punctuation [ @@ -252,6 +261,7 @@ "}" "[" "]" + "#{" ] @punctuation.bracket (field_expression "." @punctuation.delimiter) @@ -267,6 +277,9 @@ ((set_value) @number (#match? @number "^[0-9]+(\.[0-9]+)?$")) +(inv_option "!" @operator) +(set_item "?" @operator) + ((set_item option: (option_name) @_option value: (set_value) @function) From be5ed65f7f4a2266447651d480215bcda04b8842 Mon Sep 17 00:00:00 2001 From: Viorel Craescu Date: Sat, 9 Jul 2022 16:54:21 +0300 Subject: [PATCH 0104/3265] add golang type definition highlight --- queries/go/highlights.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/go/highlights.scm b/queries/go/highlights.scm index aaa6fe6b1..69e4a75f7 100644 --- a/queries/go/highlights.scm +++ b/queries/go/highlights.scm @@ -5,6 +5,7 @@ ; Identifiers (type_identifier) @type +(type_spec name: (type_identifier) @type.definition) (field_identifier) @property (identifier) @variable (package_identifier) @namespace From b8800111e2fac2033b7ba61a86c88a568f730027 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 22 Nov 2022 06:44:48 +0000 Subject: [PATCH 0105/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index fe97c8bd6..730b98ab7 100644 --- a/lockfile.json +++ b/lockfile.json @@ -153,7 +153,7 @@ "revision": "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" }, "help": { - "revision": "49cdef52ded4a886bf34bc474876b09f9270d48f" + "revision": "ce20f13c3f12506185754888feaae3f2ad54c287" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" @@ -411,7 +411,7 @@ "revision": "0e36bed171768908f331ff7dff9d956bae016efb" }, "yang": { - "revision": "8e9d175982afcefa3dac8ca20d40d1643accd2bd" + "revision": "2c0e6be8dd4dcb961c345fa35c309ad4f5bd3502" }, "zig": { "revision": "d90d38d28ce8cc27bfea8b4e0c75211e9e2398ca" From bf5ea2ea9928dc0ee11a2330b8fcfa9f96d93b5d Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 22 Nov 2022 15:22:56 +0100 Subject: [PATCH 0106/3265] help: update queries supports injections for codeblocks starting with, e.g., `>lua` --- queries/help/highlights.scm | 2 +- queries/help/injections.scm | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 queries/help/injections.scm diff --git a/queries/help/highlights.scm b/queries/help/highlights.scm index b2ed39033..c0d88301b 100644 --- a/queries/help/highlights.scm +++ b/queries/help/highlights.scm @@ -17,7 +17,7 @@ text: (_) @text.literal) (codeblock) @text.literal (codeblock - ">" @conceal (#set! conceal "")) + [">" (language)] @conceal (#set! conceal "")) (block "<" @conceal (#set! conceal "")) (argument) @parameter diff --git a/queries/help/injections.scm b/queries/help/injections.scm new file mode 100644 index 000000000..feb354872 --- /dev/null +++ b/queries/help/injections.scm @@ -0,0 +1,3 @@ +(codeblock + (language) @language + (code) @contents) From b86d6f865e39c5737e20c91c4056a4ca28d5b6f3 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 22 Nov 2022 15:26:45 +0100 Subject: [PATCH 0107/3265] fixup! help: update queries --- queries/help/injections.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/help/injections.scm b/queries/help/injections.scm index feb354872..09bbe44e8 100644 --- a/queries/help/injections.scm +++ b/queries/help/injections.scm @@ -1,3 +1,3 @@ (codeblock (language) @language - (code) @contents) + (code) @content) From 4f07518fb9eecb59ca51f168ce5d890d0ad352e6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 22 Nov 2022 14:29:34 +0000 Subject: [PATCH 0108/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 730b98ab7..4b4789f63 100644 --- a/lockfile.json +++ b/lockfile.json @@ -363,7 +363,7 @@ "revision": "1ae8c68e90523b26b93af56feb7868fe4214e2b2" }, "tiger": { - "revision": "eb1d3714998977ae76ca7c6a102b10ee37efc2b5" + "revision": "a233ebe360a73a92c50978e5c4e9e471bc59ff42" }, "tlaplus": { "revision": "deaf0e5c573ad4e2bbfc9a29abb7b6dcb572556e" From 18cc1216e128b2db1046cf7b3a46851c7c4e4073 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 23 Nov 2022 06:42:04 +0000 Subject: [PATCH 0109/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 4b4789f63..73b84ba7f 100644 --- a/lockfile.json +++ b/lockfile.json @@ -159,7 +159,7 @@ "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" }, "hlsl": { - "revision": "384b26ec65e10f26cf147bfcde772c50ca5ef0d0" + "revision": "329e3c8bd6f696a6128e0dccba34b2799dc3037e" }, "hocon": { "revision": "c390f10519ae69fdb03b3e5764f5592fb6924bcc" @@ -303,7 +303,7 @@ "revision": "09cb27a06415bce529a26774a842f5a80d50d362" }, "rasi": { - "revision": "12391343979463a2484e6353e5afb6dcb8c31e8b" + "revision": "5f04634dd4e12de4574c4a3dc9d6d5d4da4a2a1b" }, "regex": { "revision": "e1cfca3c79896ff79842f057ea13e529b66af636" From 770066ba01b0ec276c5589145d28697c77255477 Mon Sep 17 00:00:00 2001 From: figsoda Date: Mon, 21 Nov 2022 18:18:11 -0500 Subject: [PATCH 0110/3265] highlights(nix): highlight parameters --- queries/nix/highlights.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/queries/nix/highlights.scm b/queries/nix/highlights.scm index 25f192b05..3885d5d90 100644 --- a/queries/nix/highlights.scm +++ b/queries/nix/highlights.scm @@ -49,13 +49,18 @@ ; `?` in `{ x ? y }:`, used to set defaults for named function arguments ; I'm not really sure what group this should go in, but it should probably have highlighting, so I'm putting it in @punctuation.special -(formal "?" @punctuation.special) +(formal + name: (identifier) @parameter + "?"? @punctuation.special) ; `...` in `{ ... }`, used to ignore unknown named function arguments (see above) (ellipses) @punctuation.special +; universal is the parameter of the function expression ; `:` in `x: y`, used to separate function argument from body (see above) -(function_expression ":" @punctuation.special) +(function_expression + universal: (identifier) @parameter + ":" @punctuation.special) ; basic identifiers (variable_expression) @variable From 07674600c99e6775429e2f4c7dbee63e52ff17f0 Mon Sep 17 00:00:00 2001 From: figsoda Date: Wed, 23 Nov 2022 12:32:02 -0500 Subject: [PATCH 0111/3265] injections(nix): add injections for code blocks based on https://github.com/cstrahan/tree-sitter-nix/pull/31 --- queries/nix/injections.scm | 89 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/queries/nix/injections.scm b/queries/nix/injections.scm index 4bb7d675d..e2fab69ff 100644 --- a/queries/nix/injections.scm +++ b/queries/nix/injections.scm @@ -1 +1,90 @@ (comment) @comment + +(binding + attrpath: (attrpath (identifier) @_path) + expression: [ + (string_expression (string_fragment) @bash) + (indented_string_expression (string_fragment) @bash) + ] + (#match? @_path "(^\\w*Phase|(pre|post)\\w*|(.*\\.)?\\w*([sS]cript|[hH]ook)|(.*\\.)?startup)$")) + +(apply_expression + function: (_) @_func + argument: (_ (_)* (_ (_)* (binding + attrpath: (attrpath (identifier) @_path) + expression: [ + (string_expression (string_fragment) @bash) + (indented_string_expression (string_fragment) @bash) + ]))) + (#match? @_func "(^|\\.)writeShellApplication$") + (#match? @_path "^text$")) + +(apply_expression + (apply_expression + function: (apply_expression function: (_) @_func) + argument: [ + (string_expression (string_fragment) @bash) + (indented_string_expression (string_fragment) @bash) + ]) + (#match? @_func "(^|\\.)runCommand(((No)?CC)?(Local)?)?$")) + +((apply_expression + function: (apply_expression function: (_) @_func) + argument: [ + (string_expression (string_fragment) @bash) + (indented_string_expression (string_fragment) @bash) + ]) + (#match? @_func "(^|\\.)write(Bash|Dash|ShellScript)(Bin)?$")) + +((apply_expression + function: (apply_expression function: (_) @_func) + argument: [ + (string_expression (string_fragment) @fish) + (indented_string_expression (string_fragment) @fish) + ]) + (#match? @_func "(^|\\.)writeFish(Bin)?$")) + +((apply_expression + function: (apply_expression + function: (apply_expression function: (_) @_func)) + argument: [ + (string_expression (string_fragment) @haskell) + (indented_string_expression (string_fragment) @haskell) + ]) + (#match? @_func "(^|\\.)writeHaskell(Bin)?$")) + +((apply_expression + function: (apply_expression + function: (apply_expression function: (_) @_func)) + argument: [ + (string_expression (string_fragment) @javascript) + (indented_string_expression (string_fragment) @javascript) + ]) + (#match? @_func "(^|\\.)writeJS(Bin)?$")) + +((apply_expression + function: (apply_expression + function: (apply_expression function: (_) @_func)) + argument: [ + (string_expression (string_fragment) @perl) + (indented_string_expression (string_fragment) @perl) + ]) + (#match? @_func "(^|\\.)writePerl(Bin)?$")) + +((apply_expression + function: (apply_expression + function: (apply_expression function: (_) @_func)) + argument: [ + (string_expression (string_fragment) @python) + (indented_string_expression (string_fragment) @python) + ]) + (#match? @_func "(^|\\.)write(PyPy|Python)[23](Bin)?$")) + +((apply_expression + function: (apply_expression + function: (apply_expression function: (_) @_func)) + argument: [ + (string_expression (string_fragment) @rust) + (indented_string_expression (string_fragment) @rust) + ]) + (#match? @_func "(^|\\.)writeRust(Bin)?$")) From ace038e1e71e97069794740dbc6192b4cf091e87 Mon Sep 17 00:00:00 2001 From: figsoda Date: Wed, 23 Nov 2022 14:14:31 -0500 Subject: [PATCH 0112/3265] injections(nix): add injections for builtins.match --- queries/nix/injections.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/queries/nix/injections.scm b/queries/nix/injections.scm index e2fab69ff..3b32b0eae 100644 --- a/queries/nix/injections.scm +++ b/queries/nix/injections.scm @@ -1,5 +1,13 @@ (comment) @comment +(apply_expression + function: (_) @_func + argument: [ + (string_expression (string_fragment) @regex) + (indented_string_expression (string_fragment) @regex) + ] + (#match? @_func "(^|\\.)match$")) + (binding attrpath: (attrpath (identifier) @_path) expression: [ From 554260cdbe7f8f86b42ae1a9bb77a87fe299ebcb Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 23 Nov 2022 23:13:49 +0000 Subject: [PATCH 0113/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 73b84ba7f..34349e941 100644 --- a/lockfile.json +++ b/lockfile.json @@ -93,7 +93,7 @@ "revision": "517195970428aacca60891b050aa53eabf4ba78d" }, "fish": { - "revision": "84436cf24c2b3176bfbb220922a0fdbd0141e406" + "revision": "6675b56266b3f615fb112205b6b83a79315309c4" }, "foam": { "revision": "fdb7f14b885abfc4df57728c9b2a2f2ad24d3cb7" From b79c763c03a236833a60b4865b02412b3e4a9799 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Thu, 24 Nov 2022 01:23:08 +0100 Subject: [PATCH 0114/3265] fix(fish): update for upstream changes https://github.com/ram02z/tree-sitter-fish/pull/16 Co-authored-by: taekwombo --- queries/fish/highlights.scm | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/queries/fish/highlights.scm b/queries/fish/highlights.scm index 10d54dff7..838251201 100644 --- a/queries/fish/highlights.scm +++ b/queries/fish/highlights.scm @@ -7,15 +7,21 @@ "||" "|" "&" - "=" - "!=" ".." "!" (direction) (stream_redirect) - (test_option) ] @operator +; match operators of test command +(command + name: (word) @function (#match? @function "^test$") + argument: (word) @operator (#match? @operator "^(!?\\=|-[a-zA-Z]+)$")) + +;; match operators of [ command +(test_command + argument: (word) @operator (#match? @operator "^(!?\\=|-[a-zA-Z]+)$")) + [ "not" "and" @@ -103,7 +109,7 @@ ] ) -(command_substitution_dollar "$" @punctuation.bracket) +(command_substitution "$" @punctuation.bracket) ; non-bultin command names (command name: (word) @function.call) @@ -116,7 +122,7 @@ ] ) -(test_command "test" @function.builtin) +(test_command (word) @function.builtin) ;; Functions @@ -150,7 +156,6 @@ [(integer) (float)] @number (comment) @comment (comment) @spell -(test_option) @string ((word) @boolean (#any-of? @boolean "true" "false")) From acb65eedc5d600a96e9b639cd44a7de2c898000d Mon Sep 17 00:00:00 2001 From: kylo252 <59826753+kylo252@users.noreply.github.com> Date: Mon, 14 Nov 2022 10:43:11 +0100 Subject: [PATCH 0115/3265] fix(installer): ignore globally installed parsers Problem: `is_installed` is picking up parsers shipped by neovim v0.8 with unknown version and compatability Solution: only consider a parser installed if it's available in the parsers_install_dir --- lua/nvim-treesitter/configs.lua | 2 +- lua/nvim-treesitter/install.lua | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 6db2935a0..7cc5c8aa0 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -574,7 +574,7 @@ end ---plugin first, followed by the "site" dir from "runtimepath". "site" dir will ---be created if it doesn't exist. Using only the package dir won't work when ---the plugin is installed with Nix, since the "/nix/store" is read-only. ----@param folder_name string +---@param folder_name string|nil ---@return string|nil, string|nil function M.get_parser_install_dir(folder_name) folder_name = folder_name or "parser" diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 48810b1e2..0f5dccb3a 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -91,10 +91,18 @@ local function get_installed_revision(lang) end end +---Checks if parser is installed with nvim-treesitter ---@param lang string ---@return boolean local function is_installed(lang) - return #api.nvim_get_runtime_file("parser/" .. lang .. ".so", false) > 0 + local matched_parsers = vim.api.nvim_get_runtime_file("parser/" .. lang .. ".so", true) or {} + for _, path in ipairs(matched_parsers) do + local install_dir = configs.get_parser_install_dir() + if vim.startswith(path, install_dir) then + return true + end + end + return false end ---@param lang string From 58db1d6340e9b543ae323d7bb14251d19b760eeb Mon Sep 17 00:00:00 2001 From: Vir Chaudhury Date: Sat, 12 Nov 2022 12:38:53 +0800 Subject: [PATCH 0116/3265] fix(astro): make the script element use typescript instead of javascript --- queries/astro/injections.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/queries/astro/injections.scm b/queries/astro/injections.scm index 8b68bee23..95869e27c 100644 --- a/queries/astro/injections.scm +++ b/queries/astro/injections.scm @@ -5,3 +5,6 @@ ((interpolation (raw_text) @tsx)) + +((script_element + (raw_text) @typescript)) From e2021ba943cdd2bb0b8f69dd35ab18e13e00d30d Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 24 Nov 2022 08:29:17 +0000 Subject: [PATCH 0117/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 34349e941..5d333559c 100644 --- a/lockfile.json +++ b/lockfile.json @@ -123,7 +123,7 @@ "revision": "abcc9970da0ed0645741bf52ea70232374bc9e52" }, "glsl": { - "revision": "a743ada24fa17da9acc5665133f07d56e03530be" + "revision": "e2c2214045de2628b81089b1a739962f59654558" }, "go": { "revision": "05900faa3cdb5d2d8c8bd5e77ee698487e0a8611" From fb4058448a61ee52e18cf2d2a12de3d241b33201 Mon Sep 17 00:00:00 2001 From: taekwombo <88032359+taekwombo@users.noreply.github.com> Date: Thu, 24 Nov 2022 08:23:09 +0100 Subject: [PATCH 0118/3265] fix(fish): "test" command capture name --- queries/fish/highlights.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/fish/highlights.scm b/queries/fish/highlights.scm index 838251201..505726819 100644 --- a/queries/fish/highlights.scm +++ b/queries/fish/highlights.scm @@ -13,9 +13,9 @@ (stream_redirect) ] @operator -; match operators of test command +;; match operators of test command (command - name: (word) @function (#match? @function "^test$") + name: (word) @function.builtin (#match? @function.builtin "^test$") argument: (word) @operator (#match? @operator "^(!?\\=|-[a-zA-Z]+)$")) ;; match operators of [ command From 118a87f7e7fecd91c3661c29d4014d529a27b86d Mon Sep 17 00:00:00 2001 From: gbprod Date: Thu, 24 Nov 2022 08:54:54 +0100 Subject: [PATCH 0119/3265] feat: add gitcommit parser --- README.md | 1 + lua/nvim-treesitter/parsers.lua | 9 +++++++++ queries/gitcommit/highlights.scm | 33 ++++++++++++++++++++++++++++++++ queries/gitcommit/injections.scm | 2 ++ 4 files changed, 45 insertions(+) create mode 100644 queries/gitcommit/highlights.scm create mode 100644 queries/gitcommit/injections.scm diff --git a/README.md b/README.md index a72c5e20b..5c49edf80 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [Godot (gdscript)](https://github.com/PrestonKnopp/tree-sitter-gdscript) (maintained by @Shatur95) - [x] [git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) (maintained by @gbprod) - [x] [gitattributes](https://github.com/ObserverOfTime/tree-sitter-gitattributes) (maintained by @ObserverOfTime) +- [x] [gitcommit](https://github.com/gbprod/tree-sitter-gitcommit) (maintained by @gbprod) - [x] [gitignore](https://github.com/shunsambongi/tree-sitter-gitignore) (maintained by @theHamsta) - [x] [gleam](https://github.com/J3RN/tree-sitter-gleam) (maintained by @connorlay) - [x] [Glimmer and Ember](https://github.com/alexlafroscia/tree-sitter-glimmer) (maintained by @alexlafroscia) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 0c22f27b2..2844e8e38 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1253,6 +1253,15 @@ list.git_rebase = { maintainers = { "@gbprod" }, } +list.gitcommit = { + install_info = { + url = "https://github.com/gbprod/tree-sitter-gitcommit", + files = { "src/parser.c", "src/scanner.c" }, + branch = "main", + }, + maintainers = { "@gbprod" }, +} + list.blueprint = { install_info = { url = "https://gitlab.com/gabmus/tree-sitter-blueprint.git", diff --git a/queries/gitcommit/highlights.scm b/queries/gitcommit/highlights.scm new file mode 100644 index 000000000..c44428b0a --- /dev/null +++ b/queries/gitcommit/highlights.scm @@ -0,0 +1,33 @@ +(comment) @comment +(generated_comment) @comment +(title) @text.title +(text) @text +(branch) @text.reference +(change) @keyword +(filepath) @text.uri +(arrow) @punctuation.delimiter + +(subject) @text.title +(subject (overflow) @text) +(prefix (type) @keyword) +(prefix (scope) @parameter) +(prefix [ + "(" + ")" + ":" +] @punctuation.delimiter) +(prefix [ + "!" +] @punctuation.special) + +(message) @text + +(trailer (token) @label) +(trailer (value) @text) + +(breaking_change (token) @text.warning) +(breaking_change (value) @text) + +(scissor) @comment + +(ERROR) @error diff --git a/queries/gitcommit/injections.scm b/queries/gitcommit/injections.scm new file mode 100644 index 000000000..4da902920 --- /dev/null +++ b/queries/gitcommit/injections.scm @@ -0,0 +1,2 @@ +(diff) @diff +(rebase_command) @git_rebase From 54028a819af7e08095fcff9418f2bafe1e8a5c4c Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 24 Nov 2022 11:26:48 +0000 Subject: [PATCH 0120/3265] Update lockfile.json --- lockfile.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lockfile.json b/lockfile.json index 5d333559c..947b686ba 100644 --- a/lockfile.json +++ b/lockfile.json @@ -113,6 +113,9 @@ "gitattributes": { "revision": "577a075d46ea109905c5cb6179809df88da61ce9" }, + "gitcommit": { + "revision": "c8bf78407447de06e270c7fce596c696e3803110" + }, "gitignore": { "revision": "f4685bf11ac466dd278449bcfe5fd014e94aa504" }, From 1b3f93dcb90e1c282fe9259e5a15f34d504fd5a1 Mon Sep 17 00:00:00 2001 From: Raymond Ha Date: Thu, 24 Nov 2022 08:27:42 -0800 Subject: [PATCH 0121/3265] highlights(typescript): add satisfies keyword (#3852) --- lockfile.json | 4 ++-- queries/typescript/highlights.scm | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 947b686ba..ea4a10acd 100644 --- a/lockfile.json +++ b/lockfile.json @@ -378,7 +378,7 @@ "revision": "8bd2056818b21860e3d756b5a58c4f6e05fb744e" }, "tsx": { - "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" + "revision": "0ae382803abce0807e90f498105c713b9233e0b2" }, "turtle": { "revision": "085437f5cb117703b7f520dd92161140a684f092" @@ -387,7 +387,7 @@ "revision": "035f549ec8c043e734f04341d7ccdc669bb2ba91" }, "typescript": { - "revision": "0ab9d99867435a7667c5548a6617a6bf73dbd830" + "revision": "0ae382803abce0807e90f498105c713b9233e0b2" }, "v": { "revision": "66b92a89ef1e149300df79c0b2a934ad959c8eec" diff --git a/queries/typescript/highlights.scm b/queries/typescript/highlights.scm index c06f03561..82151ef40 100644 --- a/queries/typescript/highlights.scm +++ b/queries/typescript/highlights.scm @@ -14,6 +14,7 @@ "type" "readonly" "override" +"satisfies" ] @keyword ; types From 37767540e5c7f920910b9daa4dfa1f891b4cd85c Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 24 Nov 2022 21:34:23 +0100 Subject: [PATCH 0122/3265] fix(installer): don't update that are not installed (exclude global parsers) --- lua/nvim-treesitter/install.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 0f5dccb3a..d7fdc4a51 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -115,7 +115,7 @@ end ---@return table local function outdated_parsers() return vim.tbl_filter(function(lang) - return needs_update(lang) + return is_installed(lang) and needs_update(lang) end, info.installed_parsers()) end From cc2268e1c72acff09b4b03ffeddbb71471d698ce Mon Sep 17 00:00:00 2001 From: Trard Date: Sun, 6 Nov 2022 18:36:33 +0300 Subject: [PATCH 0123/3265] highlights(ecma): distinguish between "default" in export and switch statements --- queries/ecma/highlights.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/queries/ecma/highlights.scm b/queries/ecma/highlights.scm index 768b8d7ca..5a15267a1 100644 --- a/queries/ecma/highlights.scm +++ b/queries/ecma/highlights.scm @@ -207,7 +207,6 @@ "else" "switch" "case" -"default" ] @conditional [ @@ -266,3 +265,8 @@ "catch" "finally" ] @exception + +(export_statement + "default" @keyword) +(switch_default + "default" @conditional) From d43de223c7676626e961c8d56e466cb4d02e827d Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 24 Nov 2022 20:57:03 +0000 Subject: [PATCH 0124/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index ea4a10acd..f5b51fa6a 100644 --- a/lockfile.json +++ b/lockfile.json @@ -114,7 +114,7 @@ "revision": "577a075d46ea109905c5cb6179809df88da61ce9" }, "gitcommit": { - "revision": "c8bf78407447de06e270c7fce596c696e3803110" + "revision": "f6e7f24fd12e1d01f9bf23f7625800ace134030c" }, "gitignore": { "revision": "f4685bf11ac466dd278449bcfe5fd014e94aa504" From ef24c633f6945e87e8d5717d146ad6601cd7e99f Mon Sep 17 00:00:00 2001 From: Raymond Ha Date: Thu, 24 Nov 2022 11:12:38 -0800 Subject: [PATCH 0125/3265] highlights(typescript): Fix as highlight --- queries/typescript/highlights.scm | 2 ++ tests/query/highlights/typescript/as.ts | 8 ++++++++ 2 files changed, 10 insertions(+) create mode 100644 tests/query/highlights/typescript/as.ts diff --git a/queries/typescript/highlights.scm b/queries/typescript/highlights.scm index 82151ef40..3df859058 100644 --- a/queries/typescript/highlights.scm +++ b/queries/typescript/highlights.scm @@ -17,6 +17,8 @@ "satisfies" ] @keyword +(as_expression "as" @keyword) + ; types (type_identifier) @type diff --git a/tests/query/highlights/typescript/as.ts b/tests/query/highlights/typescript/as.ts new file mode 100644 index 000000000..b1f1533b4 --- /dev/null +++ b/tests/query/highlights/typescript/as.ts @@ -0,0 +1,8 @@ +import * as foo from 'foo'; +// ^ include + +export { foo as bar }; +// ^ include + +const n = 5 as number; +// ^ keyword From faf78ce12a9cb50dd19bad8f2a99ab6fb22b6e9e Mon Sep 17 00:00:00 2001 From: Raymond Ha Date: Thu, 24 Nov 2022 14:54:41 -0800 Subject: [PATCH 0126/3265] Narrow as @include query --- queries/ecma/highlights.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/queries/ecma/highlights.scm b/queries/ecma/highlights.scm index 5a15267a1..198d247e9 100644 --- a/queries/ecma/highlights.scm +++ b/queries/ecma/highlights.scm @@ -212,9 +212,13 @@ [ "import" "from" -"as" ] @include +(export_specifier "as" @include) +(import_specifier "as" @include) +(namespace_export "as" @include) +(namespace_import "as" @include) + [ "for" "of" From c8afa9fd3fbe2dbc190b9d0a247488038497fb73 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Fri, 25 Nov 2022 00:37:12 +0100 Subject: [PATCH 0127/3265] ci: fix check for valid capture Arguments to vim.startswith where swapped. Prefix has to go second. --- scripts/check-queries.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check-queries.lua b/scripts/check-queries.lua index 96bfe7cf3..083e951ca 100755 --- a/scripts/check-queries.lua +++ b/scripts/check-queries.lua @@ -73,7 +73,7 @@ local function do_check() local is_valid = ( vim.startswith(capture, "_") -- Helpers. or list_any(captures[query_type], function(documented_capture) - return vim.startswith(documented_capture, capture) + return vim.startswith(capture, documented_capture) end) ) if not is_valid then From 5e055d81e0d740cde4c3bb4ff13e40e89ae6175a Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 25 Nov 2022 09:28:26 +0200 Subject: [PATCH 0128/3265] feat(gitcommit): add spell checking --- queries/gitcommit/highlights.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/queries/gitcommit/highlights.scm b/queries/gitcommit/highlights.scm index c44428b0a..ff0c4ddb3 100644 --- a/queries/gitcommit/highlights.scm +++ b/queries/gitcommit/highlights.scm @@ -7,10 +7,10 @@ (filepath) @text.uri (arrow) @punctuation.delimiter -(subject) @text.title -(subject (overflow) @text) -(prefix (type) @keyword) -(prefix (scope) @parameter) +(subject) @text.title @spell +(subject (overflow) @text @spell) +(prefix (type) @keyword @nospell) +(prefix (scope) @parameter @nospell) (prefix [ "(" ")" @@ -20,13 +20,13 @@ "!" ] @punctuation.special) -(message) @text +(message) @text @spell (trailer (token) @label) (trailer (value) @text) (breaking_change (token) @text.warning) -(breaking_change (value) @text) +(breaking_change (value) @text @spell) (scissor) @comment From 5c86b95f8d50ab2236dccd446be875ef7ad8211b Mon Sep 17 00:00:00 2001 From: gbprod Date: Fri, 25 Nov 2022 10:50:45 +0100 Subject: [PATCH 0129/3265] feat(gitcommit): improve diff injection since last parser update --- queries/gitcommit/injections.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/gitcommit/injections.scm b/queries/gitcommit/injections.scm index 4da902920..eecdeee47 100644 --- a/queries/gitcommit/injections.scm +++ b/queries/gitcommit/injections.scm @@ -1,2 +1,2 @@ -(diff) @diff +((diff) @diff (#exclude_children! @diff)) (rebase_command) @git_rebase From cffe9c28b8372625720966288daefb958ab98a04 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 25 Nov 2022 09:59:23 +0000 Subject: [PATCH 0130/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index f5b51fa6a..93f9b9ab1 100644 --- a/lockfile.json +++ b/lockfile.json @@ -114,7 +114,7 @@ "revision": "577a075d46ea109905c5cb6179809df88da61ce9" }, "gitcommit": { - "revision": "f6e7f24fd12e1d01f9bf23f7625800ace134030c" + "revision": "49763bd695cbbae0d860d4e8c291669d9d484d0f" }, "gitignore": { "revision": "f4685bf11ac466dd278449bcfe5fd014e94aa504" From 41a59591a534d3b901e6a1039f04d91bf83a356a Mon Sep 17 00:00:00 2001 From: RubixDev Date: Sun, 2 Oct 2022 18:12:30 +0200 Subject: [PATCH 0131/3265] Add ebnf parser --- lua/nvim-treesitter/parsers.lua | 11 +++++++++ queries/ebnf/highlights.scm | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 queries/ebnf/highlights.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 2844e8e38..fff6540e2 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1331,6 +1331,17 @@ list.mermaid = { experimental = true, } +list.ebnf = { + install_info = { + url = "https://github.com/RubixDev/ebnf.git", + files = { "src/parser.c" }, + location = "crates/tree-sitter-ebnf", + branch = "main", + }, + maintainers = { "@RubixDev" }, + experimental = true, +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/ebnf/highlights.scm b/queries/ebnf/highlights.scm new file mode 100644 index 000000000..416aaab68 --- /dev/null +++ b/queries/ebnf/highlights.scm @@ -0,0 +1,43 @@ +;;;; Simple tokens ;;;; +(terminal) @string.grammar + +(special_sequence) @string.special.grammar + +(integer) @number + +(comment) @comment + +;;;; Identifiers ;;;; + +; Allow different highlighting for specific casings +((identifier) @type + (#match? @type "^[A-Z]")) + +((identifier) @symbol + (#match? @symbol "^[a-z]")) + +((identifier) @constant + (#match? @constant "^[A-Z][A-Z0-9_]+$")) + +;;; Punctuation ;;;; +[ + ";" + "," +] @punctuation.delimiter + +[ + "|" + "*" + "-" +] @operator + +"=" @keyword.operator + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket From 4b2cd221beb76784abe6a70da2eb53d7b67aebac Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 25 Nov 2022 12:25:59 +0000 Subject: [PATCH 0132/3265] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5c49edf80..c5337fea9 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [diff](https://github.com/the-mikedavis/tree-sitter-diff) (maintained by @gbprod) - [x] [dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) (maintained by @camdencheek) - [x] [dot](https://github.com/rydesun/tree-sitter-dot) (maintained by @rydesun) +- [x] [ebnf](https://github.com/RubixDev/ebnf.git) (experimental, maintained by @RubixDev) - [x] [eex](https://github.com/connorlay/tree-sitter-eex) (maintained by @connorlay) - [x] [elixir](https://github.com/elixir-lang/tree-sitter-elixir) (maintained by @jonatanklosko, @connorlay) - [ ] [elm](https://github.com/elm-tooling/tree-sitter-elm) From 9af6ea8eb6ccaf475dd70ac88dc96d82c8ff9a82 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 25 Nov 2022 12:27:50 +0000 Subject: [PATCH 0133/3265] Update lockfile.json --- lockfile.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lockfile.json b/lockfile.json index 93f9b9ab1..d976d2686 100644 --- a/lockfile.json +++ b/lockfile.json @@ -71,6 +71,9 @@ "dot": { "revision": "9ab85550c896d8b294d9b9ca1e30698736f08cea" }, + "ebnf": { + "revision": "ef241bc09f2f105c35f5e4f2ccd8a522dd99071c" + }, "eex": { "revision": "f742f2fe327463335e8671a87c0b9b396905d1d1" }, From 8ef39cf69145a418b28fa25026c9155acbe103b3 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 25 Nov 2022 13:13:41 +0000 Subject: [PATCH 0134/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index d976d2686..069e8b6ba 100644 --- a/lockfile.json +++ b/lockfile.json @@ -117,7 +117,7 @@ "revision": "577a075d46ea109905c5cb6179809df88da61ce9" }, "gitcommit": { - "revision": "49763bd695cbbae0d860d4e8c291669d9d484d0f" + "revision": "d3c15bdf0165c89872cc1345c5f8815be3cad9cc" }, "gitignore": { "revision": "f4685bf11ac466dd278449bcfe5fd014e94aa504" From 795508b773c46e08b191346ef067345fb6e8ada6 Mon Sep 17 00:00:00 2001 From: Nikita Sklyarov Date: Fri, 28 Oct 2022 16:20:40 +0300 Subject: [PATCH 0135/3265] improve php variables and $this highlights --- queries/php/highlights.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/queries/php/highlights.scm b/queries/php/highlights.scm index 8627bed6b..9f589827c 100644 --- a/queries/php/highlights.scm +++ b/queries/php/highlights.scm @@ -96,8 +96,8 @@ (const_declaration (const_element (name) @constant)) -((name) @variable.builtin - (#eq? @variable.builtin "this")) +((variable_name) @variable.builtin + (#eq? @variable.builtin "$this")) ; Namespace (namespace_definition @@ -142,7 +142,6 @@ ] @keyword.function [ - "$" "abstract" "break" "class" From e7808349a578d5a8c027b1d390242c06d6542cba Mon Sep 17 00:00:00 2001 From: William Mathewson Date: Thu, 22 Sep 2022 12:57:55 +0100 Subject: [PATCH 0136/3265] Expand locals to include properties and methods The previous locals were lacking a few locals related to JS classes. This expands the locals to include properties defined on classes (e.g. `this.foo = "bar"` or `static #targets`) as both vars & references, as well as private methods on classes (e.g. `#bar(x) { x }` and `#bar(y)`). --- queries/javascript/locals.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/queries/javascript/locals.scm b/queries/javascript/locals.scm index f4f0e92de..098f18af6 100644 --- a/queries/javascript/locals.scm +++ b/queries/javascript/locals.scm @@ -1,5 +1,20 @@ ; inherits: ecma,jsx +; Both properties are matched here. +; +; class Foo { +; this.#bar = "baz"; +; this.quuz = "qux"; +; } +(field_definition + property: [(property_identifier) (private_property_identifier)] @definition.var) + +; this.foo = "bar" +(assignment_expression + left: (member_expression + object: (this) + property: (property_identifier) @definition.var)) + (formal_parameters (identifier) @definition.parameter) @@ -31,3 +46,18 @@ (formal_parameters (rest_pattern (identifier) @definition.parameter)) + +; Both methods are matched here. +; +; class Foo { +; #bar(x) { x } +; baz(y) { y } +; } +(method_definition + ([(property_identifier) (private_property_identifier)] @definition.function) + (#set! definition.var.scope parent)) + +; this.foo() +(member_expression + object: (this) + property: (property_identifier) @reference) From 1656f67f261ab51525288d0c4b38e1577f79eaf3 Mon Sep 17 00:00:00 2001 From: Mamrezo Zare Date: Fri, 16 Sep 2022 17:09:23 +0430 Subject: [PATCH 0137/3265] handle `opts` as number, #3323 --- lua/nvim-treesitter/statusline.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/nvim-treesitter/statusline.lua b/lua/nvim-treesitter/statusline.lua index 82be06537..cd75fcb00 100644 --- a/lua/nvim-treesitter/statusline.lua +++ b/lua/nvim-treesitter/statusline.lua @@ -13,9 +13,9 @@ function M.statusline(opts) return end local options = opts or {} - -- if type(opts) == "number" then - -- options = { indicator_size = opts } - -- end + if type(opts) == "number" then + options = { indicator_size = opts } + end local bufnr = options.bufnr or 0 local indicator_size = options.indicator_size or 100 local type_patterns = options.type_patterns or { "class", "function", "method" } From 7d7feb859a95079c569015c3c4c3e74b070a2277 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 20 Nov 2022 13:56:37 +0200 Subject: [PATCH 0138/3265] docs: fix contributing guidelines --- CONTRIBUTING.md | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e5d39e426..a510f0e7f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -162,7 +162,6 @@ effect on highlighting. We will work on improving highlighting in the near futur @type.qualifier ; type qualifiers (e.g. `const`) @storageclass ; visibility/life-time modifiers -@storageclass.lifetime ; life-time modifiers (e.g. `static`) @attribute ; attribute annotations (e.g. Python decorators) @field ; object and struct fields @property ; similar to `@field` @@ -232,16 +231,7 @@ Used for XML-like tags. ```scheme @spell ; for defining regions to be spellchecked -@nospell ; for defining regions that should _not_ be spellchecked -``` - -#### Non-standard - -These captures are used by some languages but don't have any default highlights. -They fall back to the parent capture if they are not manually defined. - -```scheme -@variable.global +@nospell ; for defining regions that should NOT be spellchecked ``` ### Locals @@ -265,7 +255,6 @@ They fall back to the parent capture if they are not manually defined. @reference ; identifier reference ``` - #### Definition Scope You can set the scope of a definition by setting the `scope` property on the definition. @@ -300,7 +289,7 @@ You can define folds for a given language by adding a `folds.scm` query : @fold ; fold this node ``` -If the `fold.scm` query is not present, this will fallback to the `@scope` captures in the `locals` +If the `folds.scm` query is not present, this will fall back to the `@scope` captures in the `locals` query. ### Injections From be2b89edc8e8a0e3a192ae23495f776e7bd61c42 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 17 Oct 2022 17:14:31 +0300 Subject: [PATCH 0139/3265] highlights(ruby): fix captures --- queries/ruby/highlights.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/queries/ruby/highlights.scm b/queries/ruby/highlights.scm index d40013270..cf253a474 100644 --- a/queries/ruby/highlights.scm +++ b/queries/ruby/highlights.scm @@ -1,4 +1,5 @@ ; Variables + (identifier) @variable (global_variable) @variable.global @@ -51,8 +52,8 @@ (constant) @type -((identifier) @keyword - (#vim-match? @keyword "^(private|protected|public)$")) +((identifier) @type.qualifier + (#any-of? @type.qualifier "private" "protected" "public")) [ "rescue" @@ -60,7 +61,7 @@ ] @exception ((identifier) @exception - (#vim-match? @exception "^(fail|raise)$")) + (#any-of? @exception "fail" "raise")) ; Function calls @@ -77,7 +78,7 @@ (program (call (identifier) @include) - (#vim-match? @include "^(require|require_relative|load)$")) + (#any-of? @include "require" "require_relative" "load")) ; Function definitions From 54ca5ae2f024769d09e764a8048c2289a71328b7 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 17 Oct 2022 20:06:19 +0300 Subject: [PATCH 0140/3265] highlights(gitattributes): fix captures --- queries/gitattributes/highlights.scm | 6 +++--- tests/query/highlights/gitattributes/test.gitattributes | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/queries/gitattributes/highlights.scm b/queries/gitattributes/highlights.scm index ecd410972..73ec71438 100644 --- a/queries/gitattributes/highlights.scm +++ b/queries/gitattributes/highlights.scm @@ -1,15 +1,15 @@ (dir_sep) @punctuation.delimiter -(wildcard) @punctuation.special - (quoted_pattern - ("\"" @character.special)) + ("\"" @punctuation.special)) (range_notation) @string.special (range_notation [ "[" "]" ] @punctuation.bracket) +(wildcard) @character.special + (range_negation) @operator (character_class) @constant diff --git a/tests/query/highlights/gitattributes/test.gitattributes b/tests/query/highlights/gitattributes/test.gitattributes index 5b2e12005..1d398db41 100644 --- a/tests/query/highlights/gitattributes/test.gitattributes +++ b/tests/query/highlights/gitattributes/test.gitattributes @@ -8,7 +8,7 @@ vendor/** linguist-vendored=true # ^ punctuation.delimiter -# ^^ punctuation.special +# ^^ character.special # ^^^^^^^^^^^^^^^^^ parameter # ^ operator # ^^^^ boolean @@ -25,11 +25,11 @@ vendor/** linguist-vendored=true # ^^^^^^^^^^ parameter "_\u4E00\t\56txt" encoding=UTF-16 -# <- character.special +# <- punctuation.special # ^^^^^^ string.escape # ^^ string.escape # ^^^ string.escape -# ^ character.special +# ^ punctuation.special # ^^^^^^^^ variable.builtin # ^ operator # ^^^^^^ string From 53c26dd4af08d0a8cb59d8deb34049bf4761d707 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 17 Oct 2022 20:09:56 +0300 Subject: [PATCH 0141/3265] highlights(comment): improve note tags --- queries/comment/highlights.scm | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/queries/comment/highlights.scm b/queries/comment/highlights.scm index e516c6037..66bc99cc7 100644 --- a/queries/comment/highlights.scm +++ b/queries/comment/highlights.scm @@ -7,27 +7,38 @@ ":" @punctuation.delimiter -(tag (name) @text.note (user)? @constant) +(tag + (name) @text.todo + (user)? @constant) + +((tag ((name) @text.todo)) + (#eq? @text.todo "TODO")) + +("text" @text.todo + (#eq? @text.todo "TODO")) ((tag ((name) @text.note)) - (#any-of? @text.note "NOTE")) + (#any-of? @text.note "NOTE" "XXX")) ("text" @text.note - (#any-of? @text.note "NOTE")) + (#any-of? @text.note "NOTE" "XXX")) ((tag ((name) @text.warning)) - (#any-of? @text.warning "TODO" "HACK" "WARNING")) + (#any-of? @text.warning "HACK" "WARNING")) ("text" @text.warning - (#any-of? @text.warning "TODO" "HACK" "WARNING")) + (#any-of? @text.warning "HACK" "WARNING")) ((tag ((name) @text.danger)) - (#any-of? @text.danger "FIXME" "XXX" "BUG")) + (#any-of? @text.danger "FIXME" "BUG")) ("text" @text.danger - (#any-of? @text.danger "FIXME" "XXX" "BUG")) + (#any-of? @text.danger "FIXME" "BUG")) ; Issue number (#123) -("text" @number (#lua-match? @number "^#[0-9]+$")) +("text" @number + (#lua-match? @number "^#[0-9]+$")) + ; User mention (@user) -("text" @constant (#lua-match? @constant "^[@][a-zA-Z0-9_-]+$")) +("text" @constant + (#lua-match? @constant "^[@][a-zA-Z0-9_-]+$")) From 7ce62670b2e0946e3f586f3f07a584f642b02b9b Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 11:07:47 +0300 Subject: [PATCH 0142/3265] highlights(c): use more specific groups Co-Authored-By: Stephan Seitz --- queries/c/highlights.scm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/queries/c/highlights.scm b/queries/c/highlights.scm index 594826366..e9eee2ab7 100644 --- a/queries/c/highlights.scm +++ b/queries/c/highlights.scm @@ -2,21 +2,16 @@ ((identifier) @variable (#set! "priority" 95)) [ - "const" "default" "enum" - "extern" - "inline" - "static" "struct" "typedef" "union" - "volatile" "goto" - "register" ] @keyword "sizeof" @keyword.operator + "return" @keyword.return [ @@ -34,7 +29,6 @@ "switch" ] @conditional -"#define" @constant.macro [ "#if" "#ifdef" @@ -45,6 +39,8 @@ (preproc_directive) ] @preproc +"#define" @define + "#include" @include [ ";" ":" "," ] @punctuation.delimiter @@ -139,7 +135,12 @@ (type_descriptor) ] @type -(sizeof_expression value: (parenthesized_expression (identifier) @type)) +(storage_class_specifier) @storageclass + +(type_qualifier) @type.qualifier + +(type_definition + declarator: (type_identifier) @type.definition) ((identifier) @constant (#lua-match? @constant "^[A-Z][A-Z0-9_]+$")) From 79705a1f80297d1f3178d2b30423760c060afa4a Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 11:09:47 +0300 Subject: [PATCH 0143/3265] highlights(cpp): use more specific groups --- queries/cpp/highlights.scm | 28 ++++++++++++++++--------- tests/query/highlights/cpp/concepts.cpp | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/queries/cpp/highlights.scm b/queries/cpp/highlights.scm index fb7ee2e5f..858781337 100644 --- a/queries/cpp/highlights.scm +++ b/queries/cpp/highlights.scm @@ -24,6 +24,9 @@ (field_identifier) @method)) @_parent (#has-parent? @_parent template_method function_declarator call_expression)) +(field_declaration + (field_identifier) @field) + (field_initializer (field_identifier) @property) @@ -31,7 +34,10 @@ declarator: (field_identifier) @method) (concept_definition - name: (identifier) @type) + name: (identifier) @type.definition) + +(alias_declaration + name: (type_identifier) @type.definition) (namespace_identifier) @namespace ((namespace_identifier) @type @@ -127,28 +133,27 @@ [ "class" "decltype" - "constexpr" "explicit" - "final" "friend" - "mutable" "namespace" "override" - "private" - "protected" - "public" "template" "typename" "using" - "virtual" "co_await" "concept" "requires" - "consteval" - "constinit" (auto) ] @keyword +[ + "public" + "private" + "protected" + "virtual" + "final" +] @type.qualifier + [ "co_yield" "co_return" @@ -175,4 +180,7 @@ "::" @punctuation.delimiter +(template_argument_list + ["<" ">"] @punctuation.bracket) + (literal_suffix) @operator diff --git a/tests/query/highlights/cpp/concepts.cpp b/tests/query/highlights/cpp/concepts.cpp index 07e2313ea..27aed7a70 100644 --- a/tests/query/highlights/cpp/concepts.cpp +++ b/tests/query/highlights/cpp/concepts.cpp @@ -2,7 +2,7 @@ template concept Derived = std::is_base_of::value; // ^ keyword -// ^ type +// ^ type.definition template concept Hashable = requires(T a) { From b9729e42c0ba4bf40c055b497e4d5c4d24e71814 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 11:10:21 +0300 Subject: [PATCH 0144/3265] highlights(cuda): use more specific groups --- queries/cuda/highlights.scm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/queries/cuda/highlights.scm b/queries/cuda/highlights.scm index 7897c4144..20a753be3 100644 --- a/queries/cuda/highlights.scm +++ b/queries/cuda/highlights.scm @@ -3,13 +3,9 @@ [ "<<<" ">>>" ] @punctuation.bracket [ - "__local__" - "__shared__" - "__global__" "__host__" "__device__" "__forceinline__" - "__restrict__" - "__launch_bounds__" - "__grid_constant__" -] @keyword +] @storageclass + +"__launch_bounds__" @type.qualifier From 6aa4e8e75b8a023a0291ddd4db975482e80e2f71 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 16:54:58 +0300 Subject: [PATCH 0145/3265] highlights(glsl): use more specific groups --- queries/glsl/highlights.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/glsl/highlights.scm b/queries/glsl/highlights.scm index af2a049fb..4e5e57f47 100644 --- a/queries/glsl/highlights.scm +++ b/queries/glsl/highlights.scm @@ -25,11 +25,11 @@ "noperspective" "invariant" "precise" -] @keyword +] @type.qualifier "subroutine" @keyword.function -(extension_storage_class) @attribute +(extension_storage_class) @storageclass ( (identifier) @variable.builtin From 48a6fd29a1c08998174b256c54df381648a46186 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 17:09:09 +0300 Subject: [PATCH 0146/3265] highlights(hlsl): use more specific groups --- queries/hlsl/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/hlsl/highlights.scm b/queries/hlsl/highlights.scm index b93a90da8..68e9e44bd 100644 --- a/queries/hlsl/highlights.scm +++ b/queries/hlsl/highlights.scm @@ -24,7 +24,7 @@ "triangleadj" "lineadj" "triangle" -] @keyword +] @type.qualifier ( (identifier) @variable.builtin From 1ba1c5c1a7860c6f5945ee3d0c07dfc887ba2219 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 12:24:11 +0300 Subject: [PATCH 0147/3265] highlights(vala): fix captures --- queries/vala/highlights.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/vala/highlights.scm b/queries/vala/highlights.scm index 22e58489c..9a8fd59cc 100644 --- a/queries/vala/highlights.scm +++ b/queries/vala/highlights.scm @@ -51,7 +51,7 @@ ; highlight macros ( (method_call_expression (member_access_expression (identifier) @function.macro)) - (#match? @function.macro "^assert[A-Za-z_0-9]*$" "error" "info" "debug" "print" "warning" "warning_once") + (#match? @function.macro "^assert[A-Za-z_0-9]*|error|info|debug|print|warning|warning_once$") ) (lambda_expression (identifier) @parameter) (parameter (identifier) @parameter) @@ -64,7 +64,7 @@ ] @constant.builtin (boolean) @boolean (character) @character -(escape_sequence) @character.special +(escape_sequence) @string.escape (integer) @number (null) @constant.builtin (real) @float From 68c647f13bb18d5aa9850bcf4500106412983e56 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 12:25:51 +0300 Subject: [PATCH 0148/3265] highlights(c_sharp): use more specific groups --- queries/c_sharp/highlights.scm | 38 ++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/queries/c_sharp/highlights.scm b/queries/c_sharp/highlights.scm index ca327c596..3c9b7756f 100644 --- a/queries/c_sharp/highlights.scm +++ b/queries/c_sharp/highlights.scm @@ -79,6 +79,9 @@ (using_directive (identifier) @type) +(using_directive + (name_equals (identifier) @type.definition)) + (property_declaration name: (identifier) @property) @@ -304,6 +307,7 @@ [ "using" + "as" ] @include (alias_qualified_name @@ -316,7 +320,6 @@ "nameof" "sizeof" "is" - "as" "and" "or" "not" @@ -331,23 +334,9 @@ "params" "operator" "default" - "abstract" - "const" - "extern" "implicit" "explicit" - "internal" "override" - "private" - "protected" - "public" - "internal" - "partial" - "readonly" - "sealed" - "static" - "virtual" - "volatile" "async" "await" "class" @@ -369,6 +358,25 @@ "fixed" ] @keyword +[ + "const" + "extern" + "readonly" + "static" + "volatile" +] @storageclass + +[ + "abstract" + "private" + "protected" + "internal" + "public" + "partial" + "sealed" + "virtual" +] @type.qualifier + (parameter_modifier) @operator (query_expression From c2d9cf9926cc24b3e044c157f3b8c8ed310d2e92 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 12:30:05 +0300 Subject: [PATCH 0149/3265] highlights(css): use more specific groups --- queries/css/highlights.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/queries/css/highlights.scm b/queries/css/highlights.scm index 18bf7f9b4..bacc5bd26 100644 --- a/queries/css/highlights.scm +++ b/queries/css/highlights.scm @@ -1,6 +1,5 @@ [ "@media" - "@import" "@charset" "@namespace" "@supports" @@ -8,9 +7,10 @@ (at_keyword) (to) (from) - (important) ] @keyword +"@import" @include + (comment) @comment @spell [ @@ -40,6 +40,7 @@ "only" ] @operator +(important) @type.qualifier (attribute_selector (plain_value) @string) (pseudo_element_selector "::" (tag_name) @property) @@ -48,15 +49,15 @@ [ (class_name) (id_name) - (namespace_name) (property_name) (feature_name) (attribute_name) ] @property +(namespace_name) @namespace -((property_name) @type - (#match? @type "^--")) +((property_name) @type.definition + (#match? @type.definition "^--")) ((plain_value) @type (#match? @type "^--")) From f30ae4da0d593810544c10667b1b9c3e0b438082 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 14:00:03 +0300 Subject: [PATCH 0150/3265] highlights(d): use more specific groups --- queries/d/highlights.scm | 48 ++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/queries/d/highlights.scm b/queries/d/highlights.scm index 9a0887f3a..8bec1ca10 100644 --- a/queries/d/highlights.scm +++ b/queries/d/highlights.scm @@ -114,44 +114,25 @@ ] @repeat [ - "__gshared" "__parameters" - "abstract" "alias" "align" "asm" "auto" "body" "class" - "const" "debug" - "deprecated" "enum" "export" - "extern" - "final" "goto" - "immutable" - "inout" "interface" "invariant" - "lazy" "macro" - "nothrow" - "null" "out" "override" "package" - "private" - "protected" - "public" - "pure" - "ref" - "scope" - "shared" "static" "struct" - "synchronized" "template" "union" "unittest" @@ -219,6 +200,35 @@ "try" ] @exception +"null" @constant.builtin + +[ + "__gshared" + "const" + "immutable" + "shared" +] @storageclass + +[ + "abstract" + "deprecated" + "extern" + "final" + "inout" + "lazy" + "nothrow" + "private" + "protected" + "public" + "pure" + "ref" + "scope" + "synchronized" +] @type.qualifier + +(alias_assignment + . (identifier) @type.definition) + (module_declaration "module" @include ) From fe2ee54f3bf4424b6049e8e63e79127588116671 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 14:00:28 +0300 Subject: [PATCH 0151/3265] highlights(dart): use more specific groups --- queries/dart/highlights.scm | 38 +++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/queries/dart/highlights.scm b/queries/dart/highlights.scm index 9974d4095..19991c66f 100644 --- a/queries/dart/highlights.scm +++ b/queries/dart/highlights.scm @@ -104,14 +104,14 @@ (type_identifier) @type +(type_alias + (type_identifier) @type.definition) + ; Variables ; -------------------- ; var keyword (inferred_type) @keyword -(const_builtin) @constant.builtin -(final_builtin) @constant.builtin - ((identifier) @type (#match? @type "^_?[A-Z].*[a-z]")) ; catch Classes or IClasses not CLASSES @@ -160,7 +160,14 @@ ; Keywords ; -------------------- -["import" "library" "export"] @include +[ + "import" + "library" + "export" + "as" + "show" + "hide" +] @include ; Reserved words (cannot be used as identifiers) [ @@ -195,16 +202,8 @@ ; Built in identifiers: ; alone these are marked as keywords [ - "abstract" - "as" - "async" - "async*" - "sync*" "await" - "covariant" "deferred" - "dynamic" - "external" "factory" "get" "implements" @@ -214,11 +213,22 @@ "mixin" "part" "set" - "show" - "static" "typedef" ] @keyword +[ + (const_builtin) + (final_builtin) + "abstract" + "async" + "async*" + "covariant" + "dynamic" + "external" + "static" + "sync*" +] @type.qualifier + ; when used as an identifier: ((identifier) @variable.builtin (#any-of? @variable.builtin From 27e1f3c336dacdcc41d8a59e1e5a341558e5bcaa Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 14:00:59 +0300 Subject: [PATCH 0152/3265] highlights(elixir): fix captures --- queries/elixir/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/elixir/highlights.scm b/queries/elixir/highlights.scm index fdb92ef35..c3aee40c7 100644 --- a/queries/elixir/highlights.scm +++ b/queries/elixir/highlights.scm @@ -48,7 +48,7 @@ ] @symbol ; Interpolation -(interpolation "#{" @string.escape "}" @string.escape) +(interpolation ["#{" "}"] @string.special) ; Escape sequences (escape_sequence) @string.escape From a71358d170a91bece79c994dce07c1f163eecff3 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 14:02:16 +0300 Subject: [PATCH 0153/3265] highlights(elm): use more specific groups --- queries/elm/highlights.scm | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/queries/elm/highlights.scm b/queries/elm/highlights.scm index 4d644ac63..63514eb3e 100644 --- a/queries/elm/highlights.scm +++ b/queries/elm/highlights.scm @@ -36,11 +36,14 @@ "}" ] @punctuation.bracket -(type_annotation(lower_case_identifier) @function) -(port_annotation(lower_case_identifier) @function) -(function_declaration_left(lower_case_identifier) @function) -(function_call_expr target: - (value_expr) @function) +(type_annotation + (lower_case_identifier) @function) +(port_annotation + (lower_case_identifier) @function) +(function_declaration_left + (lower_case_identifier) @function) +(function_call_expr + target: (value_expr) @function) (value_qid (upper_case_identifier) @constructor) (value_qid ((dot) (lower_case_identifier) @field)) @@ -67,16 +70,21 @@ (type) @keyword -(module_declaration(upper_case_qid(upper_case_identifier)) @constructor) -(type_declaration(upper_case_identifier) @constructor) +(module_declaration + (upper_case_qid (upper_case_identifier)) @constructor) +(type_declaration + (upper_case_identifier) @constructor) (type_ref) @type -(type_alias_declaration name: (upper_case_identifier) @type) +(type_alias_declaration + name: (upper_case_identifier) @type.definition) (field_type name: (lower_case_identifier) @property) -(union_variant(upper_case_identifier) @symbol) +(union_variant + (upper_case_identifier) @symbol) (union_pattern) @symbol -(value_expr(upper_case_qid(upper_case_identifier)) @symbol) +(value_expr + (upper_case_qid (upper_case_identifier)) @symbol) ; strings (string_escape) @string From da4f4b007c02d2cbd960293737270ffda372bdcd Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 14:02:47 +0300 Subject: [PATCH 0154/3265] highlights(elvish): fix captures --- queries/elvish/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/elvish/highlights.scm b/queries/elvish/highlights.scm index ab0ce8c1b..af7c41dd8 100644 --- a/queries/elvish/highlights.scm +++ b/queries/elvish/highlights.scm @@ -13,7 +13,7 @@ "use" @include (import (bareword) @string.special) -["*" "**" "?"] @string.special +(wildcard ["*" "**" "?"] @character.special) (command argument: (bareword) @parameter) (command head: (identifier) @function.call) From 21cf4eff371d38e79fd1c73b4cefe5ece2f24838 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 16:28:16 +0300 Subject: [PATCH 0155/3265] highlights(fortran): use more specific groups --- queries/fortran/highlights.scm | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/queries/fortran/highlights.scm b/queries/fortran/highlights.scm index 6ef4867e7..09cf63ca5 100644 --- a/queries/fortran/highlights.scm +++ b/queries/fortran/highlights.scm @@ -6,34 +6,43 @@ [ (intrinsic_type) + "pointer" +] @type + +[ "allocatable" "attributes" "device" "dimension" - "endtype" "global" "grid_global" "host" - "import" + "optional" + "private" + "public" + "value" +] @type.qualifier + +[ + "endtype" + "type" +] @type.definition + +[ "in" "inout" - "intent" - "optional" "out" - "pointer" - "type" - "value" -] @type +] @storageclass [ "contains" - "private" - "public" + "import" ] @include [ (none) "implicit" + "intent" ] @attribute [ @@ -167,7 +176,7 @@ (name) @function) (subroutine_call - (name) @function) + (name) @function) (keyword_argument name: (identifier) @keyword) From fa4b9941e6697932d9f5dc350cd7047d0bb99900 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 16:45:59 +0300 Subject: [PATCH 0156/3265] highlights(ecma): fix captures Co-Authored-By: Stephan Seitz --- queries/ecma/highlights.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/ecma/highlights.scm b/queries/ecma/highlights.scm index 198d247e9..377cc43c5 100644 --- a/queries/ecma/highlights.scm +++ b/queries/ecma/highlights.scm @@ -186,7 +186,8 @@ (binary_expression "/" @operator) (ternary_expression ["?" ":"] @conditional) -(unary_expression ["!" "~" "-" "+" "delete" "void" "typeof"] @operator) +(unary_expression ["!" "~" "-" "+"] @operator) +(unary_expression ["delete" "void" "typeof"] @keyword.operator) [ "(" @@ -245,7 +246,6 @@ "target" "typeof" "var" -"void" "with" ] @keyword From 46ecf825f0044e9006067fe014c010419b191911 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 16:46:12 +0300 Subject: [PATCH 0157/3265] highlights(typescript): use more specific groups --- queries/typescript/highlights.scm | 42 ++++++++++++++++++------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/queries/typescript/highlights.scm b/queries/typescript/highlights.scm index 3df859058..dba119a3b 100644 --- a/queries/typescript/highlights.scm +++ b/queries/typescript/highlights.scm @@ -1,24 +1,28 @@ ; inherits: ecma + [ -"abstract" -"declare" -"enum" -"export" -"implements" -"interface" -"keyof" -"namespace" -"private" -"protected" -"public" -"type" -"readonly" -"override" -"satisfies" + "declare" + "enum" + "export" + "implements" + "interface" + "keyof" + "type" + "namespace" + "override" + "satisfies" ] @keyword (as_expression "as" @keyword) +[ + "abstract" + "private" + "protected" + "public" + "readonly" +] @type.qualifier + ; types (type_identifier) @type @@ -33,10 +37,12 @@ ;; punctuation (type_arguments - "<" @punctuation.bracket - ">" @punctuation.bracket) + ["<" ">"] @punctuation.bracket) -(union_type +(type_parameters + ["<" ">"] @punctuation.bracket) + +(union_type "|" @punctuation.delimiter) (intersection_type From 7c86e6ffc4cd69ed4f5b14c4653c79658b109fe0 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 16:49:04 +0300 Subject: [PATCH 0158/3265] highlights(gdscript): use more specific groups --- queries/gdscript/highlights.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/queries/gdscript/highlights.scm b/queries/gdscript/highlights.scm index d86e4c1de..7b5469f62 100644 --- a/queries/gdscript/highlights.scm +++ b/queries/gdscript/highlights.scm @@ -10,7 +10,7 @@ (null) @constant (setter) @function (getter) @function -(static_keyword) @keyword +(static_keyword) @type.qualifier (tool_statement) @keyword (breakpoint_statement) @keyword (inferred_type) @operator @@ -20,7 +20,8 @@ (name) @type) @keyword (const_statement - (name) @constant) @keyword + "const" @type.qualifier + (name) @constant) ((identifier) @variable.builtin (#eq? @variable.builtin "self")) From 276627849b31d03193801f2e31a47b4e32486228 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 16:52:46 +0300 Subject: [PATCH 0159/3265] highlights(gleam): use more specific groups --- queries/gleam/highlights.scm | 20 ++++++++++++-------- tests/query/highlights/gleam/function.gleam | 12 ++++++------ tests/query/highlights/gleam/type.gleam | 6 +++--- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/queries/gleam/highlights.scm b/queries/gleam/highlights.scm index e1dc969ab..0e2712879 100644 --- a/queries/gleam/highlights.scm +++ b/queries/gleam/highlights.scm @@ -1,11 +1,7 @@ ; Keywords [ "as" - "const" - "external" "let" - "opaque" - "pub" "todo" "try" ] @keyword @@ -88,8 +84,8 @@ ; Comments [ (module_comment) - (statement_comment) - (comment) + (statement_comment) + (comment) ] @comment ; Unused Identifiers @@ -112,8 +108,8 @@ ; Numbers [ - (integer) - (float) + (integer) + (float) (bit_string_segment_option_unit) ] @number @@ -142,6 +138,14 @@ ; Type Variables (type_var) @type +; Type Qualifiers +[ + "const" + "external" + "opaque" + "pub" +] @type.qualifier + ; Tuples (tuple_access index: (integer) @operator) diff --git a/tests/query/highlights/gleam/function.gleam b/tests/query/highlights/gleam/function.gleam index 89a302706..bc69ec620 100644 --- a/tests/query/highlights/gleam/function.gleam +++ b/tests/query/highlights/gleam/function.gleam @@ -1,5 +1,5 @@ pub fn add(x: Int, y: Int) -> Int { -// <- keyword +// <- type.qualifier // ^ keyword.function // ^ function // ^ punctuation.bracket @@ -18,7 +18,7 @@ pub fn add(x: Int, y: Int) -> Int { // <- punctuation.bracket pub fn twice(f: fn(t) -> t, x: t) -> t { -// <- keyword +// <- type.qualifier // ^ keyword.function // ^ function // ^ punctuation.bracket @@ -100,8 +100,8 @@ fn replace( // <- punctuation.bracket pub external fn random_float() -> Float = "rand" "uniform" -// <- keyword -// ^ keyword +// <- type.qualifier +// ^ type.qualifier // ^ keyword.function // ^ function // ^ punctuation.bracket @@ -113,8 +113,8 @@ pub external fn random_float() -> Float = "rand" "uniform" // ^ function pub external fn inspect(a) -> a = "Elixir.IO" "inspect" -// <- keyword -// ^ keyword +// <- type.qualifier +// ^ type.qualifier // ^ keyword.function // ^ function // ^ punctuation.bracket diff --git a/tests/query/highlights/gleam/type.gleam b/tests/query/highlights/gleam/type.gleam index 08887e021..d25efde34 100644 --- a/tests/query/highlights/gleam/type.gleam +++ b/tests/query/highlights/gleam/type.gleam @@ -1,5 +1,5 @@ pub type Cat { -// <- keyword +// <- type.qualifier // ^ keyword.function // ^ type // ^ punctuation.bracket @@ -53,8 +53,8 @@ type Box(inner_type) { } pub opaque type Counter { -// <- keyword -// ^ keyword +// <- type.qualifier +// ^ type.qualifier // ^ keyword.function // ^ type // ^ punctuation.bracket From c44c7e4367829ed47943082291eefbd2f3326917 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 17:03:04 +0300 Subject: [PATCH 0160/3265] highlights(graphql): fix captures --- queries/graphql/highlights.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/queries/graphql/highlights.scm b/queries/graphql/highlights.scm index cedf8e113..3a9d47dad 100644 --- a/queries/graphql/highlights.scm +++ b/queries/graphql/highlights.scm @@ -19,12 +19,6 @@ (input_object_type_definition (name) @type) -(directive_definition - (name) @type) - -(directive_definition - "@" @type) - (scalar_type_extension (name) @type) @@ -46,7 +40,14 @@ (named_type (name) @type) -(directive) @type +; Directives +;----------- + +(directive_definition + "@" @attribute + (name) @attribute) + +(directive) @attribute ; Properties ;----------- From f8c848801a8b22c9d9b5bf090fcc5e715a214476 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 21 Nov 2022 15:32:29 +0200 Subject: [PATCH 0161/3265] highlights(lalrpop): fix captures --- queries/lalrpop/highlights.scm | 59 ++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/queries/lalrpop/highlights.scm b/queries/lalrpop/highlights.scm index 34040dd5f..b6fda252e 100644 --- a/queries/lalrpop/highlights.scm +++ b/queries/lalrpop/highlights.scm @@ -1,57 +1,60 @@ [ - "pub" - "grammar" - "match" - "extern" - "type" - "enum" + "enum" + "extern" + "grammar" + "match" + "type" + "pub" ] @keyword [ - "+" - "*" - "?" + "match" + "else" +] @conditional + +[ + "+" + "*" + "?" + ; TODO: inaccessible node + ; => + "=>@L" + "=>@R" ] @operator (grammar_type_params - "<" @punctuation.bracket - ">" @punctuation.bracket) + ["<" ">"] @punctuation.bracket) (symbol - "<" @punctuation.bracket - ">" @punctuation.bracket) + ["<" ">"] @punctuation.bracket) (binding_symbol - "<" @punctuation.bracket - ">" @punctuation.bracket) + ["<" ">"] @punctuation.bracket) (binding_symbol - name: (identifier) @parameter) + name: (identifier) @parameter) (bare_symbol - (macro - ((macro_id) @function))) + (macro + ((macro_id) @type.definition))) (bare_symbol - (identifier) @function) + (identifier) @type.definition) (nonterminal_name - (macro_id) @function) + (macro_id) @type.definition) (nonterminal_name - (identifier) @function) + (identifier) @type.definition) (nonterminal - (type_ref) @type) + (type_ref) @type.builtin) -"(" @punctuation.bracket -")" @punctuation.bracket -"[" @punctuation.bracket -"]" @punctuation.bracket +["(" ")" "[" "]"] @punctuation.bracket -";" @punctuation.delimiter +[";" ":"] @punctuation.delimiter -(lifetime (identifier) @label) +(lifetime (identifier) @storageclass) (string_literal) @string (regex_literal) @string From 65a4394a567259a4908e2c34dc75cb0db90a0efa Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 21 Nov 2022 15:33:25 +0200 Subject: [PATCH 0162/3265] injections(lalrpop): add rust & regex --- queries/lalrpop/injections.scm | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 queries/lalrpop/injections.scm diff --git a/queries/lalrpop/injections.scm b/queries/lalrpop/injections.scm new file mode 100644 index 000000000..e328af0cd --- /dev/null +++ b/queries/lalrpop/injections.scm @@ -0,0 +1,9 @@ +[ + (normal_action) + (failible_action) +] @rust + +(use) @rust + +((regex_literal) @regex + (#offset! @regex 0 2 0 -1)) From 7294e534d231ef51cd7a7f1658284221456d2716 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 17:59:11 +0300 Subject: [PATCH 0163/3265] highlights(rasi): fix captures --- queries/rasi/highlights.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/rasi/highlights.scm b/queries/rasi/highlights.scm index 8d8876eb8..e2be63ffb 100644 --- a/queries/rasi/highlights.scm +++ b/queries/rasi/highlights.scm @@ -64,8 +64,8 @@ (id_selector) ] @namespace -(id_selector_view [ "normal" "selected" "alternate" ] @property) -(id_selector_state [ "normal" "urgent" "active" ] @tag) +(id_selector_view [ "normal" "selected" "alternate" ] @attribute) +(id_selector_state [ "normal" "urgent" "active" ] @type.qualifier) (hex_color) @number (hex_color "#" @punctuation.special) From 46fe90b35b75e981f0906e75806608d4729d0288 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 18:06:50 +0300 Subject: [PATCH 0164/3265] highlights(scss): fix captures --- queries/scss/highlights.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/queries/scss/highlights.scm b/queries/scss/highlights.scm index f297ca162..74a1f2326 100644 --- a/queries/scss/highlights.scm +++ b/queries/scss/highlights.scm @@ -3,11 +3,13 @@ [ "@mixin" "@media" - "@include" - "@function" ] @keyword -("@return") @keyword.return +"@function" @keyword.function + +"@return" @keyword.return + +"@include" @include [ "@while" From 04e560490d95563f2ad242ec4097078c3029b8f1 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 18:12:16 +0300 Subject: [PATCH 0165/3265] highlights(sxhkdrc): fix captures --- queries/sxhkdrc/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/sxhkdrc/highlights.scm b/queries/sxhkdrc/highlights.scm index e3d47dd51..03b70221e 100644 --- a/queries/sxhkdrc/highlights.scm +++ b/queries/sxhkdrc/highlights.scm @@ -1,6 +1,6 @@ (modifier) @keyword (operator) @operator -(attribute) @type +(attribute) @attribute (command_sync_prefix) @type (punctuation) @punctuation.bracket (delimiter) @punctuation.delimiter From 353538d570727e38921aeee81f4ebfa0d891ec6f Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 18:19:44 +0300 Subject: [PATCH 0166/3265] highlights(tiger): fix captures --- queries/tiger/highlights.scm | 10 +++------- tests/query/highlights/tiger/imports.tig | 2 +- tests/query/highlights/tiger/keywords.tig | 2 +- tests/query/highlights/tiger/object-oriented.tig | 4 ++-- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/queries/tiger/highlights.scm b/queries/tiger/highlights.scm index cbab4fae8..f4256a34c 100644 --- a/queries/tiger/highlights.scm +++ b/queries/tiger/highlights.scm @@ -23,6 +23,7 @@ [ "function" "primitive" + "method" ] @keyword.function [ @@ -32,13 +33,9 @@ "while" ] @repeat -[ - "new" -] @constructor +"new" @keyword.operator -[ - "method" -] @method +"import" @include [ "array" @@ -46,7 +43,6 @@ "else" "end" "if" - "import" "in" "let" "of" diff --git a/tests/query/highlights/tiger/imports.tig b/tests/query/highlights/tiger/imports.tig index c4366690d..068dc4810 100644 --- a/tests/query/highlights/tiger/imports.tig +++ b/tests/query/highlights/tiger/imports.tig @@ -1,4 +1,4 @@ import "lib.tih" -/* <- keyword */ +/* <- include */ /* ^ string.special */ /* vim: set ft=tiger: */ diff --git a/tests/query/highlights/tiger/keywords.tig b/tests/query/highlights/tiger/keywords.tig index 11650977b..862a531cd 100644 --- a/tests/query/highlights/tiger/keywords.tig +++ b/tests/query/highlights/tiger/keywords.tig @@ -10,7 +10,7 @@ let /* <- keyword.function */ import "lib.tih" - /* <- keyword */ + /* <- include */ type array_of_int = array of int /* <- keyword */ diff --git a/tests/query/highlights/tiger/object-oriented.tig b/tests/query/highlights/tiger/object-oriented.tig index 22e6dac19..b09b82b19 100644 --- a/tests/query/highlights/tiger/object-oriented.tig +++ b/tests/query/highlights/tiger/object-oriented.tig @@ -12,13 +12,13 @@ let var a := 12 method meth() : int = self.a - /* <- method */ + /* <- keyword.function */ /* ^ method */ /* ^ variable.builtin */ } var object := new B - /* ^ constructor */ + /* ^ keyword.operator */ in object.a := 27; /* ^ property */ From 8034ae85dba741209630dcb45937677f99f3159f Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 22 Oct 2022 18:23:22 +0300 Subject: [PATCH 0167/3265] highlights(twig): fix captures --- queries/twig/highlights.scm | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/queries/twig/highlights.scm b/queries/twig/highlights.scm index 2fbd01715..ca2b380fa 100644 --- a/queries/twig/highlights.scm +++ b/queries/twig/highlights.scm @@ -41,20 +41,11 @@ "=" ] @punctuation.delimiter -(interpolated_string [ - "#{" - "}" -] @punctuation.delimiter) +(interpolated_string ["#{" "}"] @punctuation.special) [ - "(" - ")" - "[" - "]" - "{" + "(" ")" + "[" "]" ] @punctuation.bracket -(hash [ - "}" -] @punctuation.bracket) - +(hash ["{" "}"] @punctuation.bracket) From 04712814cc783390c7f415adb8b4abcbece41508 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 21 Nov 2022 15:34:16 +0200 Subject: [PATCH 0168/3265] highlights(yang): fix captures --- queries/yang/highlights.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/queries/yang/highlights.scm b/queries/yang/highlights.scm index 8c3569e8d..9604a39a8 100644 --- a/queries/yang/highlights.scm +++ b/queries/yang/highlights.scm @@ -31,8 +31,11 @@ ; Highlight xpath and pattern strings differently from plain strings (statement - (statement_keyword ["pattern" "must"]) + (statement_keyword "must") (argument (string) @string.special)) +(statement + (statement_keyword "pattern") + (argument (string) @string.regex)) ; Punctuation (plus_symbol) @operator From caa616d88ea592431286c2675f8cbe10493c4754 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 21 Nov 2022 15:34:57 +0200 Subject: [PATCH 0169/3265] injections(yang): add comment & regex --- queries/yang/injections.scm | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 queries/yang/injections.scm diff --git a/queries/yang/injections.scm b/queries/yang/injections.scm new file mode 100644 index 000000000..a1d9482b7 --- /dev/null +++ b/queries/yang/injections.scm @@ -0,0 +1,6 @@ +(comment) @comment + +((statement + (statement_keyword "pattern") + (argument (string) @regex)) + (#offset! @regex 0 1 0 -1)) From 00ee32aca990af855c862ed4986197f6530b2da6 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 24 Oct 2022 12:29:10 +0300 Subject: [PATCH 0170/3265] highlights(toml): fix captures --- queries/toml/highlights.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/queries/toml/highlights.scm b/queries/toml/highlights.scm index 87e670b40..5255a20ab 100644 --- a/queries/toml/highlights.scm +++ b/queries/toml/highlights.scm @@ -1,8 +1,9 @@ ; Properties ;----------- -(bare_key) @property +(bare_key) @type (quoted_key) @string +(pair (bare_key)) @property ; Literals ;--------- From 1a767376cdb968f43af690ccac7001d2efbefb87 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 28 Oct 2022 16:57:38 +0300 Subject: [PATCH 0171/3265] highlights(zig): fix captures --- queries/zig/highlights.scm | 52 ++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/queries/zig/highlights.scm b/queries/zig/highlights.scm index 7767a3e5b..5115eb604 100644 --- a/queries/zig/highlights.scm +++ b/queries/zig/highlights.scm @@ -93,6 +93,13 @@ field_constant: (IDENTIFIER) @constant [ "allowzero" "volatile" + "threadlocal" + "inline" + "noinline" + "noalias" +] @type.qualifier + +[ "anytype" "anyframe" (BuildinTypeExpr) @@ -129,13 +136,28 @@ field_constant: (IDENTIFIER) @constant "orelse" ] @keyword.operator +[ + "packed" + "opaque" + "comptime" +] @storageclass + [ "struct" "enum" "union" "error" - "packed" - "opaque" + "defer" + "errdefer" + "async" + "nosuspend" + "await" + "suspend" + "resume" + "export" + "extern" + "asm" + "callconv" ] @keyword [ @@ -148,8 +170,6 @@ field_constant: (IDENTIFIER) @constant [ "const" "var" - "comptime" - "threadlocal" "fn" ] @keyword.function @@ -165,31 +185,9 @@ field_constant: (IDENTIFIER) @constant "continue" ] @keyword.return -; Macro -[ - "defer" - "errdefer" - "async" - "nosuspend" - "await" - "suspend" - "resume" - "export" - "extern" -] @function.macro - -; PrecProc -[ - "inline" - "noinline" - "asm" - "callconv" - "noalias" -] @attribute - [ "linksection" - "align" + "align" ] @function.builtin [ From dc5542a95380db6d3d530ea155cd0a3ce0f60fb0 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 28 Oct 2022 17:02:45 +0300 Subject: [PATCH 0172/3265] highlights(wgsl): use more specific groups --- queries/wgsl/highlights.scm | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/queries/wgsl/highlights.scm b/queries/wgsl/highlights.scm index 925d02e18..c9ab0668f 100644 --- a/queries/wgsl/highlights.scm +++ b/queries/wgsl/highlights.scm @@ -13,9 +13,9 @@ (struct_declaration (identifier) @type) - + (struct_declaration - (struct_member (variable_identifier_declaration (identifier) @field))) + (struct_member (variable_identifier_declaration (identifier) @field))) (type_constructor_or_function_call_expression (type_declaration) @function.call) @@ -26,21 +26,26 @@ "discard" "enable" "fallthrough" - "fn" "let" - "private" - "read" - "read_write" - "storage" "type" - "uniform" "var" - "workgroup" - "write" "override" (texel_format) ] @keyword +[ + "private" + "storage" + "uniform" + "workgroup" +] @storageclass + +[ + "read" + "read_write" + "write" +] @type.qualifier + "fn" @keyword.function "return" @keyword.return From ee0834d59b0b20527906d39f9ab07d0806ad3c6a Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 28 Oct 2022 17:08:00 +0300 Subject: [PATCH 0173/3265] highlights(verilog): fix captures --- queries/verilog/highlights.scm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/queries/verilog/highlights.scm b/queries/verilog/highlights.scm index 89af15771..d3e014927 100644 --- a/queries/verilog/highlights.scm +++ b/queries/verilog/highlights.scm @@ -37,9 +37,9 @@ "default" "break" "assert" - (unique_priority) "tagged" "extern" + (unique_priority) ] @keyword [ @@ -112,14 +112,11 @@ "&&" "||" ":" - (unary_operator) "{" "}" "'{" "<=" "@" - "or" - "and" "==" "!=" "===" @@ -132,9 +129,15 @@ ">>" "<<" "|=" + (unary_operator) (inc_or_dec_operator) ] @operator +[ + "or" + "and" +] @keyword.operator + (cast ["'" "(" ")"] @operator) @@ -153,7 +156,7 @@ [ "signed" "unsigned" -] @label +] @type.qualifier (data_type (simple_identifier) @type) @@ -177,10 +180,11 @@ ] @string @spell [ - (include_compiler_directive) (default_nettype_compiler_directive) (timescale_compiler_directive) -] @constant.macro +] @preproc + +(include_compiler_directive) @include ; begin/end label (seq_block @@ -262,7 +266,7 @@ ;(parameter_identifier) @field)) (type_declaration - (data_type ["packed"] @label)) + (data_type ["packed"] @type.qualifier)) (struct_union) @type From 6825dc63b667e7d7134c42086c795fe87f1fb75d Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 28 Oct 2022 17:20:26 +0300 Subject: [PATCH 0174/3265] highlights(swift): fix captures --- queries/swift/highlights.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/queries/swift/highlights.scm b/queries/swift/highlights.scm index 5cc8347aa..c6220984e 100644 --- a/queries/swift/highlights.scm +++ b/queries/swift/highlights.scm @@ -1,5 +1,6 @@ [ "." ";" ":" "," ] @punctuation.delimiter -[ "\\(" "(" ")" "[" "]" "{" "}"] @punctuation.bracket ; TODO: "\\(" ")" in interpolations should be @punctuation.special +; TODO: "\\(" ")" in interpolations should be @punctuation.special +[ "\\(" "(" ")" "[" "]" "{" "}"] @punctuation.bracket ; Identifiers (attribute) @variable @@ -8,6 +9,7 @@ ; Declarations "func" @keyword.function + [ (visibility_modifier) (member_modifier) @@ -15,7 +17,7 @@ (property_modifier) (parameter_modifier) (inheritance_modifier) -] @keyword +] @type.qualifier (function_declaration (simple_identifier) @method) (function_declaration ["init" @constructor]) @@ -122,7 +124,7 @@ ] @number (real_literal) @float (boolean_literal) @boolean -"nil" @variable.builtin +"nil" @constant.builtin ; Regex literals (regex_literal) @string.regex From 08bd9d0e088aefa7eb9c1ccf773e2c0f477eeaa3 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 28 Oct 2022 17:26:32 +0300 Subject: [PATCH 0175/3265] highlights(solidity): use more specific groups --- queries/solidity/highlights.scm | 43 +++++++++++++----------- tests/query/highlights/solidity/test.sol | 6 ++-- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/queries/solidity/highlights.scm b/queries/solidity/highlights.scm index 95909e669..932c54f32 100644 --- a/queries/solidity/highlights.scm +++ b/queries/solidity/highlights.scm @@ -1,11 +1,10 @@ (comment) @comment -( - (comment) @attribute - (#match? @attribute "^/// .*") -) ;; Handles natspec comments +;; Handles natspec comments +((comment) @preproc + (#match? @preproc "^/// .*")) ; Pragma -(pragma_directive) @tag +(pragma_directive) @attribute ; Literals @@ -34,13 +33,14 @@ (struct_declaration struct_name: (identifier) @type) (struct_member name: (identifier) @field) (enum_declaration enum_type_name: (identifier) @type) -; Color payable in payable address conversion as type and not as keyword -(payable_conversion_expression "payable" @type) (emit_statement . (identifier) @type) -; Handles ContractA, ContractB in function foo() override(ContractA, contractB) {} +; Handles ContractA, ContractB in function foo() override(ContractA, contractB) {} (override_specifier (identifier) @type) ; Ensures that delimiters in mapping( ... => .. ) are not colored like types -(type_name "(" @punctuation.bracket "=>" @punctuation.delimiter ")" @punctuation.bracket) +(type_name + "(" @punctuation.bracket + "=>" @punctuation.delimiter + ")" @punctuation.bracket) ; Functions and parameters @@ -89,7 +89,6 @@ ; Keywords [ - "pragma" "contract" "interface" "library" @@ -97,9 +96,15 @@ "struct" "enum" "event" - "using" "assembly" "emit" + "modifier" + "var" + (virtual) + (override_specifier) +] @keyword + +[ "public" "internal" "private" @@ -107,16 +112,14 @@ "pure" "view" "payable" - "modifier" +] @type.qualifier + +[ "memory" "storage" "calldata" - "var" (constant) - (virtual) - (override_specifier) - (yul_leave) -] @keyword +] @storageclass [ "for" @@ -142,11 +145,14 @@ [ "return" "returns" + (yul_leave) ] @keyword.return "function" @keyword.function -"import" @include +"pragma" @preproc + +["import" "using"] @include (import_directive "as" @include) (import_directive "from" @include) @@ -209,4 +215,3 @@ (identifier) @variable (yul_identifier) @variable - diff --git a/tests/query/highlights/solidity/test.sol b/tests/query/highlights/solidity/test.sol index 42a335182..a4b642ee6 100644 --- a/tests/query/highlights/solidity/test.sol +++ b/tests/query/highlights/solidity/test.sol @@ -3,14 +3,14 @@ // SPDX-License-Identifier: GPL-3.0 // ^ comment pragma solidity >=0.7.0 <0.9.0; -// ^ keyword -// ^ tag +// ^ preproc +// ^ attribute import * as something from "anotherFile"; // ^ ^ ^ include /// @title Voting with delegation. -// ^ attribute +// ^ preproc contract Ballot { // ^keyword // ^ type From abd7f85040ffaf7d2947e38bc130c98b70d1a85b Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 30 Oct 2022 11:56:53 +0200 Subject: [PATCH 0176/3265] highlights(scala): use more specific groups --- queries/scala/highlights.scm | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/queries/scala/highlights.scm b/queries/scala/highlights.scm index 2c8175cb8..2ae5b17c4 100644 --- a/queries/scala/highlights.scm +++ b/queries/scala/highlights.scm @@ -32,7 +32,7 @@ name: (identifier) @type) (type_definition - name: (type_identifier) @type) + name: (type_identifier) @type.definition) ; method definition @@ -121,22 +121,15 @@ ;; keywords [ - "abstract" "case" "class" "extends" - "final" "finally" ;; `forSome` existential types not implemented yet - "implicit" - "lazy" ;; `macro` not implemented yet "object" "override" "package" - "private" - "protected" - "sealed" "trait" "type" "val" @@ -144,8 +137,21 @@ "with" ] @keyword -(null_literal) @keyword -(wildcard) @keyword +[ + "abstract" + "final" + "implicit" + "lazy" + "private" + "protected" + "sealed" +] @type.qualifier + +(null_literal) @constant.builtin + +(wildcard) @parameter + +(annotation) @attribute ;; special keywords From 920c14c33b23ef2e874475f593ef4e4a843f2244 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 30 Oct 2022 23:33:42 +0200 Subject: [PATCH 0177/3265] highlights(qmljs): fix captures --- queries/qmljs/highlights.scm | 39 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/queries/qmljs/highlights.scm b/queries/qmljs/highlights.scm index c1991030c..013e135ab 100644 --- a/queries/qmljs/highlights.scm +++ b/queries/qmljs/highlights.scm @@ -54,9 +54,9 @@ ;;; ui_object_definition (ui_object_definition - type_name: (identifier) @type) + type_name: (identifier) @type) (ui_object_definition - type_name: (nested_identifier) @type) + type_name: (nested_identifier) @type) ;;; namespace (nested_identifier @@ -86,6 +86,9 @@ [ (true) (false) +] @boolean + +[ (null) (undefined) ] @constant.builtin @@ -97,21 +100,23 @@ (template_string) ] @string -(regex) @string.special +(regex) @string.regex (number) @number ; Tokens ;------- - - -;;; keywrod in qml [ - "on" + "abstract" + + "private" + "protected" + "public" + + "default" + "readonly" "required" - "property" - "signal" -] @keyword +] @type.qualifier ; from typescript @@ -132,7 +137,10 @@ ; Keywords -[ "abstract" +[ + "on" + "property" + "signal" "declare" "enum" "export" @@ -140,15 +148,6 @@ "interface" "keyof" "namespace" - "private" - "protected" - "public" "type" - "readonly" "override" ] @keyword - -[ - (true) - (false) -] @boolean From a1f21606d98cb6873f4b7155144f207de60b0564 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 30 Oct 2022 23:39:32 +0200 Subject: [PATCH 0178/3265] highlights(ql): use more specific groups --- queries/ql/highlights.scm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/queries/ql/highlights.scm b/queries/ql/highlights.scm index 623dab143..009920a82 100644 --- a/queries/ql/highlights.scm +++ b/queries/ql/highlights.scm @@ -1,12 +1,8 @@ [ "as" - "asc" "by" "class" - "desc" "extends" - "forall" - "forex" "from" "implies" "in" @@ -43,9 +39,7 @@ "strictsum" ] @function.builtin -[ - "import" -] @include +"import" @include [ "if" @@ -53,6 +47,16 @@ "else" ] @conditional +[ + "forall" + "forex" +] @repeat + +[ + "asc" + "desc" +] @type.qualifier + [ (true) (false) @@ -106,9 +110,10 @@ (module name: (moduleName) @namespace) (dataclass name: (className) @type) -(datatype name: (className) @type) (typeExpr name: (className) @type) +(datatype name: (className) @type.definition) + (importModuleExpr qualName: (simpleId) @variable) (varName) @variable From c32abac525257723879f1cfe5cc59528105d29c6 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 31 Oct 2022 23:29:26 +0200 Subject: [PATCH 0179/3265] highlights(pioasm): fix captures --- queries/pioasm/highlights.scm | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/queries/pioasm/highlights.scm b/queries/pioasm/highlights.scm index c455103f9..aa176aa24 100644 --- a/queries/pioasm/highlights.scm +++ b/queries/pioasm/highlights.scm @@ -4,21 +4,26 @@ (string) @string -(instruction - opcode: _ @keyword) +(instruction opcode: _ @function.call) -[ "pins" "x" "y" "null" "isr" "osr" "status" "pc" "exec" ] @variable.builtin +[ "pins" "x" "y" "null" "isr" "osr" "osre" "status" "pc" "exec" ] @constant.builtin +(wait_source [ "irq" "gpio" "pin" ] @constant.builtin) -(out_target "pindirs" @variable.builtin) -(directive "pindirs" @keyword) +(out_target "pindirs" @constant.builtin) +(set_target "pindirs" @constant.builtin) +(directive "pindirs" @attribute) (condition [ "--" "!=" ] @operator) (expression [ "+" "-" "*" "/" "|" "&" "^" "::" ] @operator) (not) @operator -[ "optional" "opt" "side" "sideset" "side_set" "pin" "gpio" "osre" ] @keyword -[ "block" "noblock" "iffull" "ifempty" "rel" ] @keyword -(irq_modifiers) @keyword +[ (optional) (irq_modifiers) ] @type.qualifier + +[ "block" "noblock" "rel" ] @attribute + +[ "iffull" "ifempty" ] @conditional + +"public" @storageclass (integer) @number @@ -26,5 +31,4 @@ (directive (symbol_def (identifier) @variable)) (value (identifier) @variable) -(directive - directive: _ @keyword) +(directive directive: _ @preproc) From 0f866c15b4e77406c3eb4110e7ddbabce52ccaa1 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 4 Nov 2022 22:39:06 +0200 Subject: [PATCH 0180/3265] highlights(php): use more specific groups --- queries/php/highlights.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/queries/php/highlights.scm b/queries/php/highlights.scm index 9f589827c..b754efd7f 100644 --- a/queries/php/highlights.scm +++ b/queries/php/highlights.scm @@ -20,7 +20,7 @@ name: (name) @type) (namespace_use_clause [(name) (qualified_name)] @type) -(namespace_aliasing_clause (name)) @type +(namespace_aliasing_clause (name)) @type.definition (class_interface_clause [(name) (qualified_name)] @type) (scoped_call_expression @@ -142,18 +142,15 @@ ] @keyword.function [ - "abstract" "break" "class" "clone" - "const" "declare" "default" "echo" "enddeclare" "enum" "extends" - "final" "global" "goto" "implements" @@ -161,14 +158,20 @@ "interface" "namespace" "new" + "trait" + "unset" + ] @keyword + +[ + "abstract" + "const" + "final" "private" "protected" "public" "readonly" "static" - "trait" - "unset" - ] @keyword +] @type.qualifier [ "return" From 97e08483d813cc694ff834b597503c756423fc56 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Tue, 15 Nov 2022 18:48:25 +0200 Subject: [PATCH 0181/3265] highlights(pascal): use more specific groups --- queries/pascal/highlights.scm | 36 ++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/queries/pascal/highlights.scm b/queries/pascal/highlights.scm index 77c509cc1..7a92acdc7 100644 --- a/queries/pascal/highlights.scm +++ b/queries/pascal/highlights.scm @@ -3,7 +3,6 @@ (kProgram) (kLibrary) (kUnit) - (kUses) (kBegin) (kEnd) @@ -12,15 +11,13 @@ (kVar) (kThreadvar) (kConst) - (kResourcestring) (kConstref) + (kResourcestring) (kOut) (kType) (kLabel) (kExports) - (kAbsolute) - (kProperty) (kRead) (kWrite) @@ -39,7 +36,6 @@ (kSet) (kOf) (kHelper) - (kPacked) (kInherited) @@ -58,14 +54,6 @@ (kInitialization) (kFinalization) - (kPublished) - (kPublic) - (kProtected) - (kPrivate) - (kStrict) - (kRequired) - (kOptional) - (kTry) (kExcept) (kFinally) @@ -91,7 +79,25 @@ (kThen) (kElse) ] @conditional - + +[ + (kPublished) + (kPublic) + (kProtected) + (kPrivate) + + (kStrict) + (kRequired) + (kOptional) +] @type.qualifier + +[ + (kPacked) + + (kAbsolute) +] @storageclass + +(kUses) @include ; -- Attributes @@ -243,7 +249,7 @@ ; -- Comments (comment) @comment -(pp) @function.macro +(pp) @preproc ; -- Type declaration From 8d598de022315b4e3fe4f2ce4b0f9aed17320a46 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Tue, 15 Nov 2022 18:56:25 +0200 Subject: [PATCH 0182/3265] highlights(ocaml): use more specific groups --- queries/ocaml/highlights.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/queries/ocaml/highlights.scm b/queries/ocaml/highlights.scm index e66729314..bb8a30539 100644 --- a/queries/ocaml/highlights.scm +++ b/queries/ocaml/highlights.scm @@ -95,13 +95,18 @@ ;--------- [ - "and" "as" "assert" "begin" "class" "constraint" - "end" "external" "in" - "inherit" "initializer" "lazy" "let" "match" "method" "module" - "mutable" "new" "nonrec" "object" "of" "private" "rec" "sig" "struct" - "type" "val" "virtual" "when" "with" + "and" "as" "assert" "begin" "class" + "constraint" "end" "external" "in" + "inherit" "initializer" "let" "match" + "method" "module" "new" "object" "of" + "sig" "struct" "type" "val" "when" "with" ] @keyword +[ + "lazy" "mutable" "nonrec" + "rec" "private" "virtual" +] @type.qualifier + ["fun" "function" "functor"] @keyword.function ["if" "then" "else"] @conditional From e3f376ed6796288d1161a1361a60388289771a4c Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Wed, 16 Nov 2022 18:23:54 +0200 Subject: [PATCH 0183/3265] highlights(make): fix captures --- queries/make/highlights.scm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/queries/make/highlights.scm b/queries/make/highlights.scm index e3f583d58..f94c567b2 100644 --- a/queries/make/highlights.scm +++ b/queries/make/highlights.scm @@ -15,7 +15,6 @@ (#any-of? @function.builtin ".DEFAULT" ".SUFFIXES" - ".DEFAULT" ".DELETE_ON_ERROR" ".EXPORT_ALL_VARIABLES" ".IGNORE" @@ -64,19 +63,16 @@ "MAKE_TERMERR" "MAKE_TERMOUT" "SHELL" - ) - ) - + )) ; Use string to match bash -(variable_reference (word) @string ) @operator +(variable_reference (word) @string) @operator (shell_function ["$" "(" ")"] @operator - "shell" @function.builtin - ) + "shell" @function.builtin) (function_call ["$" "(" ")"] @operator) (substitution_reference ["$" "(" ")"] @operator) @@ -117,5 +113,4 @@ "eval" "file" "value" - ] @function.builtin -) + ] @function.builtin) From ae51bc0638df07489d70c21da05ba276db8e37a9 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Wed, 16 Nov 2022 18:32:01 +0200 Subject: [PATCH 0184/3265] highlights(llvm): use more specific groups --- queries/llvm/highlights.scm | 42 +++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/queries/llvm/highlights.scm b/queries/llvm/highlights.scm index d61d52937..e2857b02c 100644 --- a/queries/llvm/highlights.scm +++ b/queries/llvm/highlights.scm @@ -1,3 +1,8 @@ +[ + (local_var) + (global_var) +] @variable + (type) @type (type_keyword) @type.builtin @@ -6,6 +11,9 @@ (global_var) ] @type) +(global_type + (local_var) @type.definition) + (argument) @parameter (_ inst_name: _ @keyword.operator) @@ -68,10 +76,6 @@ "ifunc" "section" "comdat" - "thread_local" - "localdynamic" - "initialexec" - "localexec" "any" "exactmatch" "largest" @@ -80,15 +84,26 @@ "distinct" "attributes" "vscale" - "no_cfi" ] @keyword -(linkage_aux) @keyword -(dso_local) @keyword -(visibility) @keyword -(dll_storage_class) @keyword -(unnamed_addr) @keyword -(attribute_name) @keyword + +[ + "no_cfi" + (dso_local) + (linkage_aux) + (visibility) +] @type.qualifier + +[ + "thread_local" + "localdynamic" + "initialexec" + "localexec" + (unnamed_addr) + (dll_storage_class) +] @storageclass + +(attribute_name) @attribute (function_header [ (linkage) @@ -104,11 +119,6 @@ (_ inst_name: "ret" @keyword.return) (float) @float -[ - (local_var) - (global_var) -] @variable - [ (struct_value) (array_value) From a16499f584b6e0f2f2313949e656b0239d4aeb7e Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 18 Nov 2022 17:24:45 +0200 Subject: [PATCH 0185/3265] highlights(kotlin): use more specific groups --- queries/kotlin/highlights.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/queries/kotlin/highlights.scm b/queries/kotlin/highlights.scm index 679fd063e..4d739c761 100644 --- a/queries/kotlin/highlights.scm +++ b/queries/kotlin/highlights.scm @@ -47,6 +47,9 @@ (type_identifier) @type +(type_alias + (type_identifier) @type.definition) + ((type_identifier) @type.builtin (#any-of? @type.builtin "Byte" @@ -98,7 +101,7 @@ (identifier (simple_identifier) @type @_import) (import_alias - (type_identifier) @type)? + (type_identifier) @type.definition)? (#lua-match? @_import "^[A-Z]")) (import_header @@ -285,7 +288,7 @@ (visibility_modifier) (reification_modifier) (inheritance_modifier) -]@keyword +] @type.qualifier [ "val" From d0b9afe9f6ee1c3f2ed80cad1805be8b521d0b6a Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 18 Nov 2022 17:45:31 +0200 Subject: [PATCH 0186/3265] highlights(java): use more specific groups --- queries/java/highlights.scm | 41 +++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/queries/java/highlights.scm b/queries/java/highlights.scm index db9453d9c..cc9ed99c7 100644 --- a/queries/java/highlights.scm +++ b/queries/java/highlights.scm @@ -159,7 +159,6 @@ ; Keywords [ -"abstract" "assert" "break" "class" @@ -169,34 +168,46 @@ "enum" "exports" "extends" -"final" "implements" "instanceof" "interface" "module" -"native" -"open" "opens" "package" "permits" -"private" -"protected" "provides" -"public" "requires" -"sealed" -"non-sealed" -"static" -"strictfp" -"synchronized" "to" -"transient" -"transitive" "uses" -"volatile" "with" ] @keyword +(synchronized_statement + "synchronized" @keyword) + +[ +"abstract" +"final" +"native" +"non-sealed" +"open" +"private" +"protected" +"public" +"sealed" +"static" +"strictfp" +"transitive" +] @type.qualifier + +(modifiers + "synchronized" @type.qualifier) + +[ +"transient" +"volatile" +] @storageclass + [ "return" "yield" From 1da0a88ebc72a5893b896144d8e0d5ff53269281 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Fri, 18 Nov 2022 17:47:56 +0200 Subject: [PATCH 0187/3265] highlights(haskell): fix captures --- queries/haskell/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/haskell/highlights.scm b/queries/haskell/highlights.scm index c37c33b3e..fa342fb8e 100644 --- a/queries/haskell/highlights.scm +++ b/queries/haskell/highlights.scm @@ -38,7 +38,7 @@ "∀" ] @repeat -(pragma) @constant.macro +(pragma) @preproc [ "if" From 58940a558986a640623bf42ad48273576d14b613 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 20 Nov 2022 14:41:51 +0200 Subject: [PATCH 0188/3265] highlights(julia): use more specific groups --- queries/julia/highlights.scm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index 8d30ff558..116767870 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -79,9 +79,11 @@ ;; Definitions (abstract_definition - name: (identifier) @type) + name: (identifier) @type.definition + (subtype_clause (identifier) @type)) (primitive_definition - name: (identifier) @type) + name: (identifier) @type.definition + (subtype_clause (identifier) @type)) (struct_definition name: (identifier) @type) @@ -107,19 +109,16 @@ ;;; Keywords [ - "abstract" - "const" "macro" - "primitive" "struct" "type" - "mutable" "where" ] @keyword "end" @keyword -((identifier) @keyword (#any-of? @keyword "global" "local")) ; Grammar error +((identifier) @keyword + (#any-of? @keyword "global" "local")) ; Grammar error (compound_statement ["begin" "end"] @keyword) @@ -174,6 +173,13 @@ (return_statement "return" @keyword.return) +[ + "abstract" + "const" + "mutable" + "primitive" +] @type.qualifier + ;;; Operators & Punctuation From bedc763361d0eccbf89e410faa8633189107d366 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 20 Nov 2022 14:57:09 +0200 Subject: [PATCH 0189/3265] highlights(meson): fix captures Co-Authored-By: ShootingStarDragons --- queries/meson/highlights.scm | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/queries/meson/highlights.scm b/queries/meson/highlights.scm index 7b7c75a9e..41af33063 100644 --- a/queries/meson/highlights.scm +++ b/queries/meson/highlights.scm @@ -1,7 +1,9 @@ (comment) @comment -(number) @number +(number) @number (bool) @boolean +(identifier) @variable + [ "(" ")" @@ -9,8 +11,7 @@ "}" "[" "]" -] -@punctuation.bracket +] @punctuation.bracket [ ":" @@ -38,6 +39,8 @@ ">=" ] @operator +"?" @conditional.ternary + [ "if" "elif" @@ -52,30 +55,21 @@ (keyword_continue) ] @repeat -;;; format (string) @string -["@"] @punctuation.special -(experession_statement - object: (identifier) @variable) +"@" @punctuation.special (normal_command command: (identifier) @function) - -(list - variable: (identifier) @variable) - -(operatorunit - (identifier) @variable) - -(formatunit - variable: (identifier) @variable) - -(variableunit - value: (identifier) @variable) (pair key: (identifier) @property) -(pair - value: (identifier) @variable) (escape_sequence) @string.escape + +((identifier) @variable.builtin + (#any-of? @variable.builtin + "meson" + "host_machine" + "build_machine" + "target_machine" + )) From 6725bef5ce43d62852d43e7eb01082f7721cd728 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 20 Nov 2022 15:14:25 +0200 Subject: [PATCH 0190/3265] highlights(hack): fix captures --- queries/hack/highlights.scm | 39 ++++++++++++++--------- tests/query/highlights/hack/generics.hack | 6 ++-- tests/query/highlights/xhp-intro.hack | 4 +-- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/queries/hack/highlights.scm b/queries/hack/highlights.scm index 0ae9a9bc0..778a0e146 100644 --- a/queries/hack/highlights.scm +++ b/queries/hack/highlights.scm @@ -6,15 +6,15 @@ (braced_expression) @none (scoped_identifier - (qualified_identifier + (qualified_identifier (identifier) @type)) -(comment) @comment -(heredoc) @comment - [ - "function" -] @keyword.function + (comment) + (heredoc) +] @comment + +"function" @keyword.function [ "async" @@ -23,20 +23,21 @@ "interface" "implements" "class" - "protected" - "private" - "public" "using" "namespace" "attribute" "const" - (xhp_modifier) - (final_modifier) "extends" "insteadof" ] @keyword -"use" @include +[ + "use" + "include" + "include_once" + "require" + "require_once" +] @include [ "new" @@ -47,9 +48,15 @@ "as" ] @keyword.operator +"return" @keyword.return + [ - "return" -] @keyword.return + (abstract_modifier) + (final_modifier) + (static_modifier) + (visibility_modifier) + (xhp_modifier) +] @type.qualifier [ "shape" @@ -92,10 +99,10 @@ (qualified_identifier (identifier) @type .)) -(attribute_modifier) @attribute [ "@required" "@lateinit" + (attribute_modifier) ] @attribute [ @@ -262,6 +269,8 @@ [ "" ] @tag.delimiter) [ "." ";" "::" ":" "," ] @punctuation.delimiter +(qualified_identifier + "\\" @punctuation.delimiter) (ternary_expression ["?" ":"] @conditional) diff --git a/tests/query/highlights/hack/generics.hack b/tests/query/highlights/hack/generics.hack index 06eebc951..9582240b9 100644 --- a/tests/query/highlights/hack/generics.hack +++ b/tests/query/highlights/hack/generics.hack @@ -2,21 +2,21 @@ class Box { // ^ type // ^ type protected T $data; - // ^ keyword + // ^ type.qualifier // ^ type public function __construct(T $data) { // ^ type // ^ parameter // ^ keyword.function - // ^ keyword + // ^ type.qualifier // ^ method $this->data = $data; } public function getData(): T { // ^ method - // ^ keyword + // ^ type.qualifier return $this->data; // ^ operator // ^ variable.builtin diff --git a/tests/query/highlights/xhp-intro.hack b/tests/query/highlights/xhp-intro.hack index 9c03cad21..942d2ff00 100644 --- a/tests/query/highlights/xhp-intro.hack +++ b/tests/query/highlights/xhp-intro.hack @@ -5,8 +5,8 @@ use type Facebook\XHP\HTML\{XHPHTMLHelpers, a, form}; final xhp class a_post extends x\element { -// ^ keyword -// ^ keyword +// ^ type.qualifier +// ^ type.qualifier // ^ keyword use XHPHTMLHelpers; From 14fa6e015ebdfb81aea80c3effaa9914ee33729d Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 21 Nov 2022 15:06:35 +0200 Subject: [PATCH 0191/3265] highlights(python): fix captures --- queries/python/highlights.scm | 47 ++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/queries/python/highlights.scm b/queries/python/highlights.scm index 9649bf380..976528c48 100644 --- a/queries/python/highlights.scm +++ b/queries/python/highlights.scm @@ -44,17 +44,24 @@ "ConnectionRefusedError" "ConnectionResetError" "FileExistsError" "FileNotFoundError" "InterruptedError" "IsADirectoryError" "NotADirectoryError" "PermissionError" "ProcessLookupError" "TimeoutError" "Warning" "UserWarning" "DeprecationWarning" "PendingDeprecationWarning" "SyntaxWarning" "RuntimeWarning" - "FutureWarning" "ImportWarning" "UnicodeWarning" "BytesWarning" "ResourceWarning")) + "FutureWarning" "ImportWarning" "UnicodeWarning" "BytesWarning" "ResourceWarning" + ;; https://docs.python.org/3/library/stdtypes.html + "bool" "int" "float" "complex" "list" "tuple" "range" "str" + "bytes" "bytearray" "memoryview" "set" "frozenset" "dict" "type")) + +((assignment + left: (identifier) @type.definition + (type (identifier) @_annotation)) + (#eq? @_annotation "TypeAlias")) + +((assignment + left: (identifier) @type.definition + right: (call + function: (identifier) @_func)) + (#any-of? @_func "TypeVar" "NewType")) ; Function calls -(decorator) @function -((decorator (attribute (identifier) @function)) - (#match? @function "^([A-Z])@!.*$")) -(decorator) @function -((decorator (identifier) @function) - (#match? @function "^([A-Z])@!.*$")) - (call function: (identifier) @function.call) @@ -71,6 +78,26 @@ attribute: (identifier) @constructor)) (#lua-match? @constructor "^[A-Z]")) +;; Decorators + +((decorator "@" @attribute) + (#set! "priority" 101)) + +(decorator + (identifier) @attribute) +(decorator + (attribute + attribute: (identifier) @attribute)) +(decorator + (call (identifier) @attribute)) +(decorator + (call (attribute + attribute: (identifier) @attribute))) + +((decorator + (identifier) @attribute.builtin) + (#any-of? @attribute.builtin "classmethod" "property")) + ;; Builtin functions ((call @@ -233,7 +260,9 @@ ] @keyword.return (yield "from" @keyword.return) -(future_import_statement "from" @include "__future__" @constant.builtin) +(future_import_statement + "from" @include + "__future__" @constant.builtin) (import_from_statement "from" @include) "import" @include From 67332894efcb6a51a18e1120f2fc242089de7dd1 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Mon, 21 Nov 2022 18:45:48 +0200 Subject: [PATCH 0192/3265] docs: fix wrong maintainers --- README.md | 32 +++++++++++++++--------------- lua/nvim-treesitter/parsers.lua | 35 +++++++++++++++++---------------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index c5337fea9..a3db5d966 100644 --- a/README.md +++ b/README.md @@ -191,14 +191,14 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [css](https://github.com/tree-sitter/tree-sitter-css) (maintained by @TravonteD) - [x] [cuda](https://github.com/theHamsta/tree-sitter-cuda) (maintained by @theHamsta) - [x] [d](https://github.com/CyberShadow/tree-sitter-d) (experimental, maintained by @nawordar) -- [x] [dart](https://github.com/UserNobody14/tree-sitter-dart) (maintained by @Akin909) +- [x] [dart](https://github.com/UserNobody14/tree-sitter-dart) (maintained by @akinsho) - [x] [devicetree](https://github.com/joelspadin/tree-sitter-devicetree) (maintained by @jedrzejboczar) - [x] [diff](https://github.com/the-mikedavis/tree-sitter-diff) (maintained by @gbprod) - [x] [dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) (maintained by @camdencheek) - [x] [dot](https://github.com/rydesun/tree-sitter-dot) (maintained by @rydesun) - [x] [ebnf](https://github.com/RubixDev/ebnf.git) (experimental, maintained by @RubixDev) - [x] [eex](https://github.com/connorlay/tree-sitter-eex) (maintained by @connorlay) -- [x] [elixir](https://github.com/elixir-lang/tree-sitter-elixir) (maintained by @jonatanklosko, @connorlay) +- [x] [elixir](https://github.com/elixir-lang/tree-sitter-elixir) (maintained by @connorlay) - [ ] [elm](https://github.com/elm-tooling/tree-sitter-elm) - [x] [elvish](https://github.com/ckafi/tree-sitter-elvish) (maintained by @ckafi) - [ ] [embedded_template](https://github.com/tree-sitter/tree-sitter-embedded-template) @@ -208,13 +208,13 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [foam](https://github.com/FoamScience/tree-sitter-foam) (experimental, maintained by @FoamScience) - [ ] [fortran](https://github.com/stadelmanma/tree-sitter-fortran) - [x] [fusion](https://gitlab.com/jirgn/tree-sitter-fusion.git) (maintained by @jirgn) -- [x] [Godot (gdscript)](https://github.com/PrestonKnopp/tree-sitter-gdscript) (maintained by @Shatur95) +- [x] [Godot (gdscript)](https://github.com/PrestonKnopp/tree-sitter-gdscript) (maintained by @Shatur) - [x] [git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) (maintained by @gbprod) - [x] [gitattributes](https://github.com/ObserverOfTime/tree-sitter-gitattributes) (maintained by @ObserverOfTime) - [x] [gitcommit](https://github.com/gbprod/tree-sitter-gitcommit) (maintained by @gbprod) - [x] [gitignore](https://github.com/shunsambongi/tree-sitter-gitignore) (maintained by @theHamsta) - [x] [gleam](https://github.com/J3RN/tree-sitter-gleam) (maintained by @connorlay) -- [x] [Glimmer and Ember](https://github.com/alexlafroscia/tree-sitter-glimmer) (maintained by @alexlafroscia) +- [x] [Glimmer and Ember](https://github.com/alexlafroscia/tree-sitter-glimmer) (maintained by @NullVoxPopuli) - [x] [glsl](https://github.com/theHamsta/tree-sitter-glsl) (maintained by @theHamsta) - [x] [go](https://github.com/tree-sitter/tree-sitter-go) (maintained by @theHamsta, @WinWisely268) - [x] [Godot Resources (gdresource)](https://github.com/PrestonKnopp/tree-sitter-godot-resource) (maintained by @pierpo) @@ -233,13 +233,13 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [http](https://github.com/rest-nvim/tree-sitter-http) (maintained by @NTBBloodbath) - [x] [java](https://github.com/tree-sitter/tree-sitter-java) (maintained by @p00f) - [x] [javascript](https://github.com/tree-sitter/tree-sitter-javascript) (maintained by @steelsojka) -- [ ] [jq](https://github.com/flurie/tree-sitter-jq) +- [x] [jq](https://github.com/flurie/tree-sitter-jq) (maintained by @ObserverOfTime) - [x] [jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) (maintained by @steelsojka) - [x] [json](https://github.com/tree-sitter/tree-sitter-json) (maintained by @steelsojka) - [x] [json5](https://github.com/Joakker/tree-sitter-json5) (maintained by @Joakker) - [x] [JSON with comments](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git) (maintained by @WhyNotHugo) - [x] [jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) (maintained by @nawordar) -- [x] [julia](https://github.com/tree-sitter/tree-sitter-julia) (maintained by @mroavi, @theHamsta) +- [x] [julia](https://github.com/tree-sitter/tree-sitter-julia) (maintained by @theHamsta) - [x] [kotlin](https://github.com/fwcd/tree-sitter-kotlin) (maintained by @SalBakraa) - [x] [lalrpop](https://github.com/traxys/tree-sitter-lalrpop) (maintained by @traxys) - [x] [latex](https://github.com/latex-lsp/tree-sitter-latex) (maintained by @theHamsta, @clason) @@ -256,13 +256,13 @@ We are looking for maintainers to add more parsers and to write query files for - [ ] [nickel](https://github.com/nickel-lang/tree-sitter-nickel) - [x] [ninja](https://github.com/alemuller/tree-sitter-ninja) (maintained by @alemuller) - [x] [nix](https://github.com/cstrahan/tree-sitter-nix) (maintained by @leo60228) -- [x] [norg](https://github.com/nvim-neorg/tree-sitter-norg) (maintained by @JoeyGrajciar, @vhyrro, @mrossinek) +- [x] [norg](https://github.com/nvim-neorg/tree-sitter-norg) (maintained by @JoeyGrajciar, @vhyrro) - [x] [ocaml](https://github.com/tree-sitter/tree-sitter-ocaml) (maintained by @undu) - [x] [ocaml_interface](https://github.com/tree-sitter/tree-sitter-ocaml) (maintained by @undu) - [x] [ocamllex](https://github.com/atom-ocaml/tree-sitter-ocamllex) (maintained by @undu) - [ ] [org](https://github.com/milisims/tree-sitter-org) -- [x] [pascal](https://github.com/Isopod/tree-sitter-pascal.git) (maintained by @isopod) -- [x] [perl](https://github.com/ganezdragon/tree-sitter-perl) (maintained by @ganezdragon) +- [x] [pascal](https://github.com/Isopod/tree-sitter-pascal.git) (maintained by @Isopod) +- [x] [perl](https://github.com/ganezdragon/tree-sitter-perl) (maintained by @lcrownover) - [x] [php](https://github.com/tree-sitter/tree-sitter-php) (maintained by @tk-shirasaka) - [x] [phpdoc](https://github.com/claytonrcarter/tree-sitter-phpdoc) (experimental, maintained by @mikehaertl) - [x] [pioasm](https://github.com/leo60228/tree-sitter-pioasm) (maintained by @leo60228) @@ -271,9 +271,9 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [pug](https://github.com/zealot128/tree-sitter-pug) (experimental, maintained by @zealot128) - [x] [python](https://github.com/tree-sitter/tree-sitter-python) (maintained by @stsewd, @theHamsta) - [x] [ql](https://github.com/tree-sitter/tree-sitter-ql) (maintained by @pwntester) -- [x] [qmljs](https://github.com/yuja/tree-sitter-qmljs) (maintained by @yuja) +- [x] [qmljs](https://github.com/yuja/tree-sitter-qmljs) (maintained by @Decodetalkers) - [x] [Tree-sitter query language](https://github.com/nvim-treesitter/tree-sitter-query) (maintained by @steelsojka) -- [x] [r](https://github.com/r-lib/tree-sitter-r) (maintained by @jimhester) +- [x] [r](https://github.com/r-lib/tree-sitter-r) (maintained by @echasnovski) - [x] [racket](https://github.com/6cdh/tree-sitter-racket) (maintained by @6cdh) - [x] [rasi](https://github.com/Fymyte/tree-sitter-rasi) (maintained by @Fymyte) - [x] [regex](https://github.com/tree-sitter/tree-sitter-regex) (maintained by @theHamsta) @@ -287,7 +287,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [scss](https://github.com/serenadeai/tree-sitter-scss) (maintained by @elianiva) - [x] [slint](https://github.com/jrmoulton/tree-sitter-slint) (experimental, maintained by @jrmoulton) - [x] [solidity](https://github.com/YongJieYongJie/tree-sitter-solidity) (maintained by @YongJieYongJie) -- [x] [sparql](https://github.com/BonaBeavis/tree-sitter-sparql) (maintained by @bonabeavis) +- [x] [sparql](https://github.com/BonaBeavis/tree-sitter-sparql) (maintained by @BonaBeavis) - [x] [sql](https://github.com/derekstride/tree-sitter-sql) (maintained by @derekstride) - [x] [supercollider](https://github.com/madskjeldgaard/tree-sitter-supercollider) (maintained by @madskjeldgaard) - [x] [surface](https://github.com/connorlay/tree-sitter-surface) (maintained by @connorlay) @@ -300,13 +300,13 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [todotxt](https://github.com/arnarg/tree-sitter-todotxt.git) (experimental, maintained by @arnarg) - [x] [toml](https://github.com/ikatyang/tree-sitter-toml) (maintained by @tk-shirasaka) - [x] [tsx](https://github.com/tree-sitter/tree-sitter-typescript) (maintained by @steelsojka) -- [x] [turtle](https://github.com/BonaBeavis/tree-sitter-turtle) (maintained by @bonabeavis) +- [x] [turtle](https://github.com/BonaBeavis/tree-sitter-turtle) (maintained by @BonaBeavis) - [x] [twig](https://github.com/gbprod/tree-sitter-twig) (maintained by @gbprod) - [x] [typescript](https://github.com/tree-sitter/tree-sitter-typescript) (maintained by @steelsojka) -- [x] [v](https://github.com/vlang/vls) (maintained by @tami5) -- [x] [vala](https://github.com/vala-lang/tree-sitter-vala) (maintained by @Prince781, @vala-lang) +- [x] [v](https://github.com/vlang/vls) (maintained by @kkharji) +- [x] [vala](https://github.com/vala-lang/tree-sitter-vala) (maintained by @Prince781) - [x] [verilog](https://github.com/tree-sitter/tree-sitter-verilog) (maintained by @zegervdv) -- [x] [vhs](https://github.com/charmbracelet/tree-sitter-vhs) (maintained by @caarlos0, @maaslalani) +- [x] [vhs](https://github.com/charmbracelet/tree-sitter-vhs) (maintained by @caarlos0) - [x] [vim](https://github.com/vigoux/tree-sitter-viml) (maintained by @vigoux) - [x] [vue](https://github.com/ikatyang/tree-sitter-vue) (maintained by @WhyNotHugo) - [x] [wgsl](https://github.com/szebniok/tree-sitter-wgsl) (maintained by @szebniok) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index fff6540e2..011c90893 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -88,7 +88,7 @@ list.qmljs = { files = { "src/parser.c", "src/scanner.c" }, }, filetype = "qmljs", - maintainers = { "@yuja" }, + maintainers = { "@Decodetalkers" }, } list.racket = { @@ -317,7 +317,7 @@ list.perl = { files = { "src/parser.c", "src/scanner.cc" }, generate_requires_npm = true, }, - maintainers = { "@ganezdragon" }, + maintainers = { "@lcrownover" }, } list.bash = { @@ -375,7 +375,7 @@ list.julia = { url = "https://github.com/tree-sitter/tree-sitter-julia", files = { "src/parser.c", "src/scanner.c" }, }, - maintainers = { "@mroavi", "@theHamsta" }, + maintainers = { "@theHamsta" }, } list.json = { @@ -425,7 +425,7 @@ list.elixir = { files = { "src/parser.c", "src/scanner.cc" }, branch = "main", }, - maintainers = { "@jonatanklosko", "@connorlay" }, + maintainers = { "@connorlay" }, } list.gleam = { @@ -657,7 +657,7 @@ list.glimmer = { branch = "main", }, readme_name = "Glimmer and Ember", - maintainers = { "@alexlafroscia" }, + maintainers = { "@NullVoxPopuli" }, filetype = "handlebars", } @@ -735,7 +735,7 @@ list.dart = { url = "https://github.com/UserNobody14/tree-sitter-dart", files = { "src/parser.c", "src/scanner.c" }, }, - maintainers = { "@Akin909" }, + maintainers = { "@akinsho" }, } list.rst = { @@ -785,7 +785,7 @@ list.pascal = { url = "https://github.com/Isopod/tree-sitter-pascal.git", files = { "src/parser.c" }, }, - maintainers = { "@isopod" }, + maintainers = { "@Isopod" }, } -- Parsers for injections @@ -838,7 +838,7 @@ list.sparql = { files = { "src/parser.c" }, branch = "main", }, - maintainers = { "@bonabeavis" }, + maintainers = { "@BonaBeavis" }, } list.sql = { @@ -855,7 +855,7 @@ list.gdscript = { files = { "src/parser.c", "src/scanner.cc" }, }, readme_name = "Godot (gdscript)", - maintainers = { "@Shatur95" }, + maintainers = { "@Shatur" }, } list.godot_resource = { @@ -875,7 +875,7 @@ list.turtle = { files = { "src/parser.c" }, branch = "main", }, - maintainers = { "@bonabeavis" }, + maintainers = { "@BonaBeavis" }, } list.devicetree = { @@ -903,7 +903,7 @@ list.r = { url = "https://github.com/r-lib/tree-sitter-r", files = { "src/parser.c", "src/scanner.cc" }, }, - maintainers = { "@jimhester" }, + maintainers = { "@echasnovski" }, } list.beancount = { @@ -930,7 +930,7 @@ list.latex = { files = { "src/parser.c", "src/scanner.c" }, }, filetype = "tex", - maintainers = { "@theHamsta, @clason" }, + maintainers = { "@theHamsta", "@clason" }, } list.bibtex = { @@ -939,7 +939,7 @@ list.bibtex = { files = { "src/parser.c" }, }, filetype = "bib", - maintainers = { "@theHamsta, @clason" }, + maintainers = { "@theHamsta", "@clason" }, } list.zig = { @@ -1096,7 +1096,7 @@ list.norg = { use_makefile = true, cxx_standard = "c++14", }, - maintainers = { "@JoeyGrajciar", "@vhyrro", "@mrossinek" }, + maintainers = { "@JoeyGrajciar", "@vhyrro" }, } list.vala = { @@ -1105,7 +1105,7 @@ list.vala = { branch = "master", files = { "src/parser.c" }, }, - maintainers = { "@Prince781", "@vala-lang" }, + maintainers = { "@Prince781" }, } list.lalrpop = { @@ -1190,7 +1190,7 @@ list.v = { requires_generate_from_grammar = false, }, filetype = "vlang", - maintainers = { "@tami5" }, + maintainers = { "@kkharji" }, } list.tiger = { @@ -1297,7 +1297,7 @@ list.vhs = { branch = "main", files = { "src/parser.c" }, }, - maintainers = { "@caarlos0", "@maaslalani" }, + maintainers = { "@caarlos0" }, filetype = "tape", } @@ -1321,6 +1321,7 @@ list.jq = { url = "https://github.com/flurie/tree-sitter-jq", files = { "src/parser.c" }, }, + maintainers = { "@ObserverOfTime" }, } list.mermaid = { From 5aacb06135a952190933f9bfff923957db8965db Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Tue, 22 Nov 2022 21:10:40 +0100 Subject: [PATCH 0193/3265] chore: print OS version on health report Often we get issue report without knowing which version of Windows or Linux or MacOS they are running. --- lua/nvim-treesitter/health.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lua/nvim-treesitter/health.lua b/lua/nvim-treesitter/health.lua index e308889c4..9501008df 100644 --- a/lua/nvim-treesitter/health.lua +++ b/lua/nvim-treesitter/health.lua @@ -94,6 +94,8 @@ local function install_health() ) end end + + health.report_start("OS Info:\n" .. vim.inspect(vim.loop.os_uname())) end local function query_status(lang, query_group) From 9018fb26cc91c5e2349f94e39e8fdcfd43773891 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 26 Nov 2022 14:27:21 +0200 Subject: [PATCH 0194/3265] injections: add more regex injections --- queries/bash/injections.scm | 2 ++ queries/julia/injections.scm | 5 +++++ queries/perl/highlights.scm | 3 ++- queries/perl/injections.scm | 1 + queries/ruby/injections.scm | 2 ++ 5 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 queries/perl/injections.scm diff --git a/queries/bash/injections.scm b/queries/bash/injections.scm index 4bb7d675d..86371b905 100644 --- a/queries/bash/injections.scm +++ b/queries/bash/injections.scm @@ -1 +1,3 @@ (comment) @comment + +(regex) @regex diff --git a/queries/julia/injections.scm b/queries/julia/injections.scm index 883300b1c..1fa6c6058 100644 --- a/queries/julia/injections.scm +++ b/queries/julia/injections.scm @@ -6,3 +6,8 @@ (line_comment) (block_comment) ] @comment + +((prefixed_string_literal + prefix: (identifier) @_prefix) @regex + (#eq? @_prefix "r") + (#offset! @regex 0 2 0 -1)) diff --git a/queries/perl/highlights.scm b/queries/perl/highlights.scm index 9767ce477..56ed3ee8a 100644 --- a/queries/perl/highlights.scm +++ b/queries/perl/highlights.scm @@ -166,7 +166,8 @@ ] @string [ -(regex_pattern_qr) +(pattern_matcher) +(regex_pattern_qr) (patter_matcher_m) (substitution_pattern_s) ] @string.regex diff --git a/queries/perl/injections.scm b/queries/perl/injections.scm new file mode 100644 index 000000000..78162bdba --- /dev/null +++ b/queries/perl/injections.scm @@ -0,0 +1 @@ +(comments) @comment diff --git a/queries/ruby/injections.scm b/queries/ruby/injections.scm index 89bb058a6..8e2456b39 100644 --- a/queries/ruby/injections.scm +++ b/queries/ruby/injections.scm @@ -5,3 +5,5 @@ (heredoc_end) @language (#set! "language" @language) (#downcase! "language")) + +(regex (string_content) @regex) From e973a5cbb2b87bcacbb390365527652aa0256bb3 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 27 Nov 2022 14:12:26 +0200 Subject: [PATCH 0195/3265] injections(julia): add markdown --- queries/julia/injections.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/queries/julia/injections.scm b/queries/julia/injections.scm index 1fa6c6058..ac1721b33 100644 --- a/queries/julia/injections.scm +++ b/queries/julia/injections.scm @@ -1,6 +1,6 @@ -; TODO: re-add when markdown is added. -; ((triple_string) @markdown -; (#offset! @markdown 0 3 0 -3)) +((string_literal) @markdown + (#match? @markdown "^\"\"\"") + (#offset! @markdown 0 3 0 -3)) [ (line_comment) From 754335b6492b1985f02fad37fade865e7751a719 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sat, 26 Nov 2022 12:56:59 +0100 Subject: [PATCH 0196/3265] fix(install): don't auto-install ignored parsers Fixes #3631 --- lua/nvim-treesitter/install.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index d7fdc4a51..fff3bb1c0 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -69,6 +69,10 @@ local function load_lockfile() lockfile = vim.fn.filereadable(filename) == 1 and vim.fn.json_decode(vim.fn.readfile(filename)) or {} end +local function is_ignored_parser(lang) + return vim.tbl_contains(configs.get_ignored_parser_installs(), lang) +end + local function get_revision(lang) if #lockfile == 0 then load_lockfile() @@ -477,7 +481,7 @@ function M.setup_auto_install() pattern = { "*" }, callback = function() local lang = parsers.get_buf_lang() - if parsers.get_parser_configs()[lang] and not is_installed(lang) then + if parsers.get_parser_configs()[lang] and not is_installed(lang) and not is_ignored_parser(lang) then install() { lang } end end, From 8b241181ae573b320ded4c70f4d035e93460038d Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Sun, 27 Nov 2022 14:15:42 -0800 Subject: [PATCH 0197/3265] fix: is_installed correctly detects installed parsers --- lua/nvim-treesitter/install.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index fff3bb1c0..b0428bd8f 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -100,9 +100,14 @@ end ---@return boolean local function is_installed(lang) local matched_parsers = vim.api.nvim_get_runtime_file("parser/" .. lang .. ".so", true) or {} + local install_dir = configs.get_parser_install_dir() + if not install_dir then + return false + end + install_dir = vim.fn.fnamemodify(install_dir, ":p") for _, path in ipairs(matched_parsers) do - local install_dir = configs.get_parser_install_dir() - if vim.startswith(path, install_dir) then + local abspath = vim.fn.fnamemodify(path, ":p") + if vim.startswith(abspath, install_dir) then return true end end From 011572af1c12a739e3882c8c88fff8389e22b95f Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 28 Nov 2022 06:43:13 +0000 Subject: [PATCH 0198/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 069e8b6ba..1a91be88d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -12,7 +12,7 @@ "revision": "e559793754c60c2cdf00cbb0409842d75f0a41dc" }, "bash": { - "revision": "77cf8a7cab8904baf1a721762e012644ac1d4c7b" + "revision": "4488aa41406547e478636a4fcfd24f5bbc3f2f74" }, "beancount": { "revision": "4cbd1f09cd07c1f1fabf867c2cf354f9da53cc4c" @@ -219,7 +219,7 @@ "revision": "e9948edc41e9e5869af99dddb2b5ff5cc5581af6" }, "lua": { - "revision": "fb30e8cb605e2ebd6c643e6981325a63fbbde320" + "revision": "f5e84ffc2b06858401e0d2edf5dce009efbe34b3" }, "m68k": { "revision": "d097b123f19c6eaba2bf181c05420d88b9fc489d" From 1821c656d8e42fd8ce6648af58e64268606e8bec Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 28 Nov 2022 08:40:24 +0000 Subject: [PATCH 0199/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 1a91be88d..fc9e659bb 100644 --- a/lockfile.json +++ b/lockfile.json @@ -387,7 +387,7 @@ "revision": "085437f5cb117703b7f520dd92161140a684f092" }, "twig": { - "revision": "035f549ec8c043e734f04341d7ccdc669bb2ba91" + "revision": "2457993b13a06dec2706e6a6c3d5b65bb23024b8" }, "typescript": { "revision": "0ae382803abce0807e90f498105c713b9233e0b2" From ecb53631a849b7240b0200103369be2803f8805e Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 29 Nov 2022 06:42:50 +0000 Subject: [PATCH 0200/3265] Update lockfile.json --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index fc9e659bb..266ef1ca9 100644 --- a/lockfile.json +++ b/lockfile.json @@ -228,10 +228,10 @@ "revision": "a4b9187417d6be349ee5fd4b6e77b4172c6827dd" }, "markdown": { - "revision": "272e080bca0efd19a06a7f4252d746417224959e" + "revision": "16d0b5e54d781150bea1070ffb360d47e6238659" }, "markdown_inline": { - "revision": "272e080bca0efd19a06a7f4252d746417224959e" + "revision": "16d0b5e54d781150bea1070ffb360d47e6238659" }, "menhir": { "revision": "db7953acb0d5551f207373c81fa07a57d7b085cb" @@ -267,7 +267,7 @@ "revision": "081179c52b3e8175af62b9b91dc099d010c38770" }, "pascal": { - "revision": "2fd40f477d3e2794af152618ccfac8d92eb72a66" + "revision": "9e995404ddff8319631d72d4b46552e737206912" }, "perl": { "revision": "749d26fe13fb131b92e6515416096e572575b981" From 31f70f51c7d9d93361d013bdd36b4e4dabfd7bfe Mon Sep 17 00:00:00 2001 From: gbprod Date: Tue, 29 Nov 2022 11:27:04 +0100 Subject: [PATCH 0201/3265] fix(phpdoc): highlight optional type as @type --- queries/phpdoc/highlights.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/phpdoc/highlights.scm b/queries/phpdoc/highlights.scm index e0624365d..5cb3dba06 100644 --- a/queries/phpdoc/highlights.scm +++ b/queries/phpdoc/highlights.scm @@ -22,6 +22,7 @@ (array_type) (primitive_type) (named_type) + (optional_type) ] @type) (tag (description (text) @text)) From d05be3742e04601ac1219f575d7c44a21f671622 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 29 Nov 2022 11:20:21 +0000 Subject: [PATCH 0202/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 266ef1ca9..41dbab24c 100644 --- a/lockfile.json +++ b/lockfile.json @@ -180,7 +180,7 @@ "revision": "09d650def6cdf7f479f4b78f595e9ef5b58ce31e" }, "javascript": { - "revision": "936d976a782e75395d9b1c8c7c7bf4ba6fe0d86b" + "revision": "cefdcea72a8cf86c1f10ca55e837397da07afdab" }, "jq": { "revision": "13990f530e8e6709b7978503da9bc8701d366791" From 161576dde2a2172c6036e25600185e9497e71a24 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Tue, 29 Nov 2022 11:52:28 -0300 Subject: [PATCH 0203/3265] indents(r): support special operator Close #3879 --- queries/r/indents.scm | 2 ++ tests/indent/r/pipe.R | 3 +++ tests/indent/r_spec.lua | 1 + 3 files changed, 6 insertions(+) diff --git a/queries/r/indents.scm b/queries/r/indents.scm index 66e1e989b..dea537366 100644 --- a/queries/r/indents.scm +++ b/queries/r/indents.scm @@ -12,6 +12,8 @@ "for" ] @indent +((binary operator: (special)) @indent) + [ "}" ")" diff --git a/tests/indent/r/pipe.R b/tests/indent/r/pipe.R index 2eef84218..6e19f8215 100644 --- a/tests/indent/r/pipe.R +++ b/tests/indent/r/pipe.R @@ -5,3 +5,6 @@ mtcars |> subset( cyl > 3 ) + +mtcars %>% + head() diff --git a/tests/indent/r_spec.lua b/tests/indent/r_spec.lua index ac1ed31e3..662ea5809 100644 --- a/tests/indent/r_spec.lua +++ b/tests/indent/r_spec.lua @@ -35,6 +35,7 @@ describe("indent R:", function() run:new_line("loop.R", { on_line = 14, text = "print('lol')", indent = 4 }) run:new_line("pipe.R", { on_line = 1, text = "head(n = 10L) |>", indent = 2 }) + run:new_line("pipe.R", { on_line = 9, text = "head()", indent = 2 }) run:new_line("aligned_indent.R", { on_line = 1, text = "z,", indent = 17 }) end) From a1929ef13980166d358a5ded7a4118711abf9a57 Mon Sep 17 00:00:00 2001 From: Ibrahim Abdelkareem Date: Sun, 27 Nov 2022 16:29:59 +0100 Subject: [PATCH 0204/3265] feat: c# required keyword --- queries/c_sharp/highlights.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/c_sharp/highlights.scm b/queries/c_sharp/highlights.scm index 3c9b7756f..3ecdffb6e 100644 --- a/queries/c_sharp/highlights.scm +++ b/queries/c_sharp/highlights.scm @@ -364,6 +364,7 @@ "readonly" "static" "volatile" + "required" ] @storageclass [ From 8fe4e3625a4bfda2924518981fb9a08c0609e0c8 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 29 Nov 2022 18:25:48 +0000 Subject: [PATCH 0205/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 41dbab24c..f961e316e 100644 --- a/lockfile.json +++ b/lockfile.json @@ -411,7 +411,7 @@ "revision": "91fe2754796cd8fba5f229505a23fa08f3546c06" }, "wgsl": { - "revision": "af16e7d9e230004888fb52d33599ad38b4cf6052" + "revision": "61d2604525d47238ecbce8aa38f10cb81ba68fd3" }, "yaml": { "revision": "0e36bed171768908f331ff7dff9d956bae016efb" From d1eaf23c9ec9aca91e219ed82ae98c96d93dd407 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 30 Nov 2022 06:42:19 +0000 Subject: [PATCH 0206/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index f961e316e..451832a52 100644 --- a/lockfile.json +++ b/lockfile.json @@ -180,7 +180,7 @@ "revision": "09d650def6cdf7f479f4b78f595e9ef5b58ce31e" }, "javascript": { - "revision": "cefdcea72a8cf86c1f10ca55e837397da07afdab" + "revision": "7a29d06274b7cf87d643212a433d970b73969016" }, "jq": { "revision": "13990f530e8e6709b7978503da9bc8701d366791" @@ -402,7 +402,7 @@ "revision": "4457145e795b363f072463e697dfe2f6973c9a52" }, "vhs": { - "revision": "2f87b9d973597e69552ecf6a4fe16470fbd8c44e" + "revision": "8a0df32b72a8cf8d3e3e84f16c19e9ba46d3dba5" }, "vim": { "revision": "55ff1b080c09edeced9b748cf4c16d0b49d17fb9" From 4b900527045c49af5f43291d2cb13ae27a3bc7be Mon Sep 17 00:00:00 2001 From: gbprod Date: Wed, 30 Nov 2022 10:51:24 +0100 Subject: [PATCH 0207/3265] feat(twig): improve twig highlights --- queries/twig/highlights.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/queries/twig/highlights.scm b/queries/twig/highlights.scm index ca2b380fa..4e7bfe4f2 100644 --- a/queries/twig/highlights.scm +++ b/queries/twig/highlights.scm @@ -36,10 +36,14 @@ [ "," "." +] @punctuation.delimiter + +[ "?" ":" "=" -] @punctuation.delimiter + "|" +] @operator (interpolated_string ["#{" "}"] @punctuation.special) From 768532453ac30cbf792b492248a6c3be19b80af1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 1 Dec 2022 06:43:06 +0000 Subject: [PATCH 0208/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 451832a52..3debd8536 100644 --- a/lockfile.json +++ b/lockfile.json @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "4f1b91246b43190e34957d9de9a0f3625879ba33" + "revision": "41f1de238b7b4a8cc9e118759881aad8585d36ad" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" From 4b99343d6ea001ca1490feddf39269f9d71de4cc Mon Sep 17 00:00:00 2001 From: Aaron Rancsik <20153302+aaronrancsik@users.noreply.github.com> Date: Mon, 28 Nov 2022 00:17:52 +0100 Subject: [PATCH 0209/3265] highlights(c): primitive type as builtin --- queries/c/highlights.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/queries/c/highlights.scm b/queries/c/highlights.scm index e9eee2ab7..2de5abe9d 100644 --- a/queries/c/highlights.scm +++ b/queries/c/highlights.scm @@ -130,7 +130,6 @@ [ (type_identifier) - (primitive_type) (sized_type_specifier) (type_descriptor) ] @type @@ -142,6 +141,8 @@ (type_definition declarator: (type_identifier) @type.definition) +(primitive_type) @type.builtin + ((identifier) @constant (#lua-match? @constant "^[A-Z][A-Z0-9_]+$")) (enumerator From 4e21b50fbd4d423a973d2664955a20daf41d5d57 Mon Sep 17 00:00:00 2001 From: Aaron Rancsik <20153302+aaronrancsik@users.noreply.github.com> Date: Mon, 28 Nov 2022 00:19:38 +0100 Subject: [PATCH 0210/3265] highlights(cpp): auto as @type.builtin --- queries/cpp/highlights.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/queries/cpp/highlights.scm b/queries/cpp/highlights.scm index 858781337..1f770e9f8 100644 --- a/queries/cpp/highlights.scm +++ b/queries/cpp/highlights.scm @@ -5,6 +5,7 @@ (parameter_declaration declarator: (reference_declarator) @parameter) + ; function(Foo ...foo) (variadic_parameter_declaration declarator: (variadic_declarator @@ -39,6 +40,8 @@ (alias_declaration name: (type_identifier) @type.definition) +(auto) @type.builtin + (namespace_identifier) @namespace ((namespace_identifier) @type (#lua-match? @type "^[A-Z]")) @@ -143,7 +146,6 @@ "co_await" "concept" "requires" - (auto) ] @keyword [ From 45bb230dc0ae56b60405d4b9db3f7dcf2d2aefae Mon Sep 17 00:00:00 2001 From: Aaron Rancsik <20153302+aaronrancsik@users.noreply.github.com> Date: Mon, 28 Nov 2022 00:45:50 +0100 Subject: [PATCH 0211/3265] test(highlights/cpp): type -> type.builtin for primitive types. --- tests/query/highlights/cpp/test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/query/highlights/cpp/test.cpp b/tests/query/highlights/cpp/test.cpp index 4dd138e7e..68c51d592 100644 --- a/tests/query/highlights/cpp/test.cpp +++ b/tests/query/highlights/cpp/test.cpp @@ -5,8 +5,8 @@ auto main( int argc, char** argv ) -> int // ^ parameter - // ^ type - // ^ type + // ^ type.builtin + // ^ type.builtin // ^ operator { std::cout << "Hello world!" << std::endl; From 256802258084fcf6c7011dae4c3fbfaaf4b61518 Mon Sep 17 00:00:00 2001 From: Aaron Rancsik <20153302+aaronrancsik@users.noreply.github.com> Date: Mon, 28 Nov 2022 00:46:29 +0100 Subject: [PATCH 0212/3265] test(highlights/cpp): add new test for auto as type.builtin. --- tests/query/highlights/cpp/test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/query/highlights/cpp/test.cpp b/tests/query/highlights/cpp/test.cpp index 68c51d592..77e3be698 100644 --- a/tests/query/highlights/cpp/test.cpp +++ b/tests/query/highlights/cpp/test.cpp @@ -4,6 +4,7 @@ // ^ string auto main( int argc, char** argv ) -> int +// ^ type.builtin // ^ parameter // ^ type.builtin // ^ type.builtin From a49223a99f28a2d52a20603baff586d630789618 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 2 Dec 2022 06:40:15 +0000 Subject: [PATCH 0213/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 3debd8536..3ede03005 100644 --- a/lockfile.json +++ b/lockfile.json @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "41f1de238b7b4a8cc9e118759881aad8585d36ad" + "revision": "33158216be800e357e7524a4b5e932cb5001adcd" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" From 39bda37d4a131be6092cf4e20936a9f7ff647e8e Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Fri, 2 Dec 2022 17:49:36 +0100 Subject: [PATCH 0214/3265] feat: added highlights for markdown checkboxes --- queries/markdown/highlights.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/queries/markdown/highlights.scm b/queries/markdown/highlights.scm index 81cb5a5b1..d58998043 100644 --- a/queries/markdown/highlights.scm +++ b/queries/markdown/highlights.scm @@ -49,6 +49,10 @@ (thematic_break) ] @punctuation.special + +(task_list_marker_unchecked) @text.todo.unchecked +(task_list_marker_checked) @text.todo.checked + [ (block_continuation) (block_quote_marker) From cc28f563982bc916042c6c116bc32fe2b87ae016 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 2 Dec 2022 19:49:36 +0100 Subject: [PATCH 0215/3265] ci: install libfuse2 --- .github/workflows/update-lockfile.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update-lockfile.yml b/.github/workflows/update-lockfile.yml index 8b328e290..c3ea4515c 100644 --- a/.github/workflows/update-lockfile.yml +++ b/.github/workflows/update-lockfile.yml @@ -24,6 +24,7 @@ jobs: wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 mv ./jq-linux64 /tmp/jq chmod +x /tmp/jq + sudo apt install libfuse2 wget https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim.appimage chmod u+x nvim.appimage mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start From 857097b5b3b2d9b1087f3911c51f0772568f4001 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 2 Dec 2022 20:04:14 +0100 Subject: [PATCH 0216/3265] fix(sql)!: generate from grammar --- lockfile.json | 2 +- lua/nvim-treesitter/parsers.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 3ede03005..1af3ee287 100644 --- a/lockfile.json +++ b/lockfile.json @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "33158216be800e357e7524a4b5e932cb5001adcd" + "revision": "a6d6d0799f2c9091436b5b587b451b10e710f9cb" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 011c90893..73841850a 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -845,6 +845,7 @@ list.sql = { install_info = { url = "https://github.com/derekstride/tree-sitter-sql", files = { "src/parser.c" }, + requires_generate_from_grammar = true, }, maintainers = { "@derekstride" }, } From 74c46c89175d53f3c957151711a21df10d033751 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 2 Dec 2022 19:13:49 +0000 Subject: [PATCH 0217/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 1af3ee287..0cb6b4121 100644 --- a/lockfile.json +++ b/lockfile.json @@ -153,7 +153,7 @@ "revision": "aee3725d02cf3bca5f307b35dd3a96a97e109b4e" }, "hcl": { - "revision": "45ce22c16ec924e34517cf785e23c07952e45893" + "revision": "99298c8aceb98382588a44a65573b4c1f6027775" }, "heex": { "revision": "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" @@ -210,7 +210,7 @@ "revision": "7744b56f03ac1e5643fad23c9dd90837fe97291e" }, "latex": { - "revision": "8c75e93cd08ccb7ce1ccab22c1fbd6360e3bcea6" + "revision": "1ec3941b971dccfa36cb1cd6221a2e4a1cd3e250" }, "ledger": { "revision": "47b8971448ce5e9abac865f450c1b14fb3b6eee9" From d6a2ecb8b7093d6f6673cb6748bce9214a5099d3 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Fri, 2 Dec 2022 20:22:58 +0100 Subject: [PATCH 0218/3265] highlights: create subscoping for ternary operator After https://github.com/nvim-treesitter/nvim-treesitter/issues/470, we decided to use `@conditional` for ternary operator instead of operator despite `@conditional` is documented for keywords only. A sub-scoping can make it easier for people to highlight this operator group differently. Also unify the usage of `@conditional...` across languages. --- CONTRIBUTING.md | 1 + queries/awk/highlights.scm | 2 +- queries/c/highlights.scm | 2 +- queries/ecma/highlights.scm | 2 +- queries/fusion/highlights.scm | 3 +++ queries/hack/highlights.scm | 2 +- queries/java/highlights.scm | 2 +- queries/julia/highlights.scm | 2 +- queries/meson/highlights.scm | 3 ++- queries/perl/highlights.scm | 6 ++++-- queries/slint/highlights.scm | 2 +- queries/vim/highlights.scm | 2 +- tests/query/highlights/fusion/expressions.fusion | 4 ++-- 13 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a510f0e7f..9e104f252 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -146,6 +146,7 @@ effect on highlighting. We will work on improving highlighting in the near futur @keyword.return ; keywords like `return` and `yield` @conditional ; keywords related to conditionals (e.g. `if` / `else`) +@conditional.ternary ; Ternary operator: condition ? 1 : 2 @repeat ; keywords related to loops (e.g. `for` / `while`) @debug ; keywords related to debugging @label ; GOTO and other labels (e.g. `label:` in C) diff --git a/queries/awk/highlights.scm b/queries/awk/highlights.scm index 918d0116e..a03c43670 100644 --- a/queries/awk/highlights.scm +++ b/queries/awk/highlights.scm @@ -115,7 +115,7 @@ (ternary_exp [ "?" ":" -] @operator) +] @conditional.ternary) (update_exp [ "++" diff --git a/queries/c/highlights.scm b/queries/c/highlights.scm index 2de5abe9d..f1cff7467 100644 --- a/queries/c/highlights.scm +++ b/queries/c/highlights.scm @@ -102,7 +102,7 @@ (false) ] @boolean -(conditional_expression [ "?" ":" ] @conditional) +(conditional_expression [ "?" ":" ] @conditional.ternary) (string_literal) @string (system_lib_string) @string diff --git a/queries/ecma/highlights.scm b/queries/ecma/highlights.scm index 377cc43c5..1de0de302 100644 --- a/queries/ecma/highlights.scm +++ b/queries/ecma/highlights.scm @@ -185,7 +185,7 @@ ] @operator (binary_expression "/" @operator) -(ternary_expression ["?" ":"] @conditional) +(ternary_expression ["?" ":"] @conditional.ternary) (unary_expression ["!" "~" "-" "+"] @operator) (unary_expression ["delete" "void" "typeof"] @keyword.operator) diff --git a/queries/fusion/highlights.scm b/queries/fusion/highlights.scm index 7109ee651..b093f8872 100644 --- a/queries/fusion/highlights.scm +++ b/queries/fusion/highlights.scm @@ -115,3 +115,6 @@ "." "?" ] @punctuation.delimiter + +(eel_ternary_expression + ["?" ":"] @conditional.ternary) diff --git a/queries/hack/highlights.scm b/queries/hack/highlights.scm index 778a0e146..e79d62c75 100644 --- a/queries/hack/highlights.scm +++ b/queries/hack/highlights.scm @@ -273,7 +273,7 @@ "\\" @punctuation.delimiter) (ternary_expression - ["?" ":"] @conditional) + ["?" ":"] @conditional.ternary) [ "if" diff --git a/queries/java/highlights.scm b/queries/java/highlights.scm index cc9ed99c7..63cb01237 100644 --- a/queries/java/highlights.scm +++ b/queries/java/highlights.scm @@ -226,7 +226,7 @@ "case" ] @conditional -(ternary_expression ["?" ":"] @conditional) +(ternary_expression ["?" ":"] @conditional.ternary) ; diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index 116767870..e8d9ac9ff 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -134,7 +134,7 @@ (else_clause ["else"] @conditional) (ternary_expression - ["?" ":"] @conditional) + ["?" ":"] @conditional.ternary) (try_statement ["try" "end"] @exception) diff --git a/queries/meson/highlights.scm b/queries/meson/highlights.scm index 41af33063..f687f5ae0 100644 --- a/queries/meson/highlights.scm +++ b/queries/meson/highlights.scm @@ -39,7 +39,8 @@ ">=" ] @operator -"?" @conditional.ternary +(ternaryoperator + ["?" ":"] @conditional.ternary) [ "if" diff --git a/queries/perl/highlights.scm b/queries/perl/highlights.scm index 56ed3ee8a..c6b2c4ee4 100644 --- a/queries/perl/highlights.scm +++ b/queries/perl/highlights.scm @@ -13,6 +13,10 @@ ; Keywords that mark conditional statements [ "if" "elsif" "unless" "else" ] @conditional +(ternary_expression + ["?" ":"] @conditional.ternary) +(ternary_expression_in_hash + ["?" ":"] @conditional.ternary) ; Keywords that mark repeating loops [ "while" "until" "for" "foreach" ] @repeat @@ -142,8 +146,6 @@ (to_reference) (type_glob) (hash_access_variable) -(ternary_expression) -(ternary_expression_in_hash) ] @operator [ diff --git a/queries/slint/highlights.scm b/queries/slint/highlights.scm index f1ac2de2c..54dc20369 100644 --- a/queries/slint/highlights.scm +++ b/queries/slint/highlights.scm @@ -143,4 +143,4 @@ "=>" ] @operator -(ternary_expression [":" "?"] @conditional) +(ternary_expression [":" "?"] @conditional.ternary) diff --git a/queries/vim/highlights.scm b/queries/vim/highlights.scm index 239b0a0b3..ce25b13b9 100644 --- a/queries/vim/highlights.scm +++ b/queries/vim/highlights.scm @@ -271,7 +271,7 @@ ":" ] @punctuation.delimiter -(ternary_expression ["?" ":"] @conditional) +(ternary_expression ["?" ":"] @conditional.ternary) ; Options ((set_value) @number diff --git a/tests/query/highlights/fusion/expressions.fusion b/tests/query/highlights/fusion/expressions.fusion index a0b82b511..ae6e2db33 100644 --- a/tests/query/highlights/fusion/expressions.fusion +++ b/tests/query/highlights/fusion/expressions.fusion @@ -76,7 +76,7 @@ logic = ${!foo && !(bar || baz) and not 'string'} // ^operator ternary = ${ check ? true : false} -// ^punctuation.delimiter -// ^punctuation.delimiter +// ^@conditional.ternary +// ^@conditional.ternary From 44289d817e7ec9df9bbe874ebe24a96375d59e16 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 2 Dec 2022 20:43:17 +0000 Subject: [PATCH 0219/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 0cb6b4121..4d0e22689 100644 --- a/lockfile.json +++ b/lockfile.json @@ -153,7 +153,7 @@ "revision": "aee3725d02cf3bca5f307b35dd3a96a97e109b4e" }, "hcl": { - "revision": "99298c8aceb98382588a44a65573b4c1f6027775" + "revision": "6b74f88b3d396e0f101c93f807e0b3667cd3e3a2" }, "heex": { "revision": "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" From 43dbdeea85aa22d9ebe00455349363034e14c72d Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Dec 2022 06:38:27 +0000 Subject: [PATCH 0220/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 4d0e22689..9aefc7ebf 100644 --- a/lockfile.json +++ b/lockfile.json @@ -201,7 +201,7 @@ "revision": "0475a5017ad7dc84845d1d33187f2321abcb261d" }, "julia": { - "revision": "628713553c42f30595a3b0085bb587e9359b986a" + "revision": "91ba1c3c9b50f388d4b67518c04bc9a003ed3475" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" From 360315540ca3c2218bcc2666d7272f88c229c89b Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 3 Dec 2022 11:42:07 +0100 Subject: [PATCH 0221/3265] fix(julia): update queries to parser change --- queries/julia/indents.scm | 3 ++- queries/julia/locals.scm | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/queries/julia/indents.scm b/queries/julia/indents.scm index 9cfdc4076..47be570f2 100644 --- a/queries/julia/indents.scm +++ b/queries/julia/indents.scm @@ -13,7 +13,8 @@ (do_clause) (compound_statement) - (assignment_expression) + (assignment) + (binary_expression) (call_expression) diff --git a/queries/julia/locals.scm b/queries/julia/locals.scm index 655affe00..8540268cb 100644 --- a/queries/julia/locals.scm +++ b/queries/julia/locals.scm @@ -1,14 +1,14 @@ ;;; Variables -(assignment_expression +(assignment (identifier) @definition.var) -(assignment_expression +(assignment (tuple_expression (identifier) @definition.var)) ;;; let/const bindings -(variable_declaration +(let_binding (identifier) @definition.var) -(variable_declaration +(let_binding (tuple_expression (identifier) @definition.var)) From 9bfd4259c12333dfa859f806187bfe24532c4533 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Dec 2022 11:01:23 +0000 Subject: [PATCH 0222/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 9aefc7ebf..32d498569 100644 --- a/lockfile.json +++ b/lockfile.json @@ -153,7 +153,7 @@ "revision": "aee3725d02cf3bca5f307b35dd3a96a97e109b4e" }, "hcl": { - "revision": "6b74f88b3d396e0f101c93f807e0b3667cd3e3a2" + "revision": "0ff887f2a60a147452d52db060de6b42f42f1441" }, "heex": { "revision": "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" From 8e7b61e4aad6f4e9fcf39cb53d5f830e655ce7a9 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Dec 2022 17:15:06 +0000 Subject: [PATCH 0223/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 32d498569..ae6b43a8e 100644 --- a/lockfile.json +++ b/lockfile.json @@ -33,7 +33,7 @@ "revision": "087bac78c53fe1387756cd5b8e68a69b3f6d7244" }, "cmake": { - "revision": "6e51463ef3052dd3b328322c22172eda093727ad" + "revision": "a32265307aa2d31941056d69e8b6633e61750b2f" }, "comment": { "revision": "a37ca370310ac6f89b6e0ebf2b86b2219780494e" @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "a6d6d0799f2c9091436b5b587b451b10e710f9cb" + "revision": "89fac16df3deceb79c4424dfa674c0c734290fcc" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" From a2ac48e7f30270caf6ac3ac51d7393e831873803 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 4 Dec 2022 06:38:25 +0000 Subject: [PATCH 0224/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index ae6b43a8e..989fc148d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -66,7 +66,7 @@ "revision": "330eb648bbc257b4e91621e82a85372be7dde27a" }, "dockerfile": { - "revision": "f913be9bb8689af22114605012693146fbe9ddaa" + "revision": "09e316dba307b869831e9399b11a83bbf0f2a24b" }, "dot": { "revision": "9ab85550c896d8b294d9b9ca1e30698736f08cea" From e71dfc1e7a3e7a7782a3c5e62e7de5993149a261 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sun, 4 Dec 2022 06:52:46 +0100 Subject: [PATCH 0225/3265] highlights(go): add `@label` --- queries/go/highlights.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/queries/go/highlights.scm b/queries/go/highlights.scm index 69e4a75f7..be72804b6 100644 --- a/queries/go/highlights.scm +++ b/queries/go/highlights.scm @@ -13,6 +13,8 @@ (parameter_declaration (identifier) @parameter) (variadic_parameter_declaration (identifier) @parameter) +(label_name) @label + ((identifier) @constant (#eq? @constant "_")) From b6beb5e7d0b0cdace80f61468ec76a81baa286ca Mon Sep 17 00:00:00 2001 From: Julien Burkhard Date: Sun, 4 Dec 2022 17:37:42 +0100 Subject: [PATCH 0226/3265] feat: support when buf is not current --- lua/nvim-treesitter/configs.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 7cc5c8aa0..cad4bb788 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -127,8 +127,8 @@ local function enable_mod_conf_autocmd(mod) api.nvim_create_autocmd("FileType", { group = api.nvim_create_augroup("NvimTreesitter-" .. mod, {}), - callback = function() - require("nvim-treesitter.configs").reattach_module(mod) + callback = function(args) + require("nvim-treesitter.configs").reattach_module(mod, args.buf) end, desc = "Reattach module", }) From 29d8e7646593a98d151223c0bf034490cf2d22c0 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 5 Dec 2022 06:40:21 +0000 Subject: [PATCH 0227/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 989fc148d..e3d6eeaf9 100644 --- a/lockfile.json +++ b/lockfile.json @@ -99,7 +99,7 @@ "revision": "6675b56266b3f615fb112205b6b83a79315309c4" }, "foam": { - "revision": "fdb7f14b885abfc4df57728c9b2a2f2ad24d3cb7" + "revision": "c238f4af9a5723a212cf1a4c9b31dd5c1d5270a2" }, "fortran": { "revision": "f0f2f100952a353e64e26b0fa710b4c296d7af13" From 4953fdf73ef5ada18e1e969019803605f4f4a4ac Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 5 Dec 2022 16:32:00 +0000 Subject: [PATCH 0228/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index e3d6eeaf9..a9e0bf6a6 100644 --- a/lockfile.json +++ b/lockfile.json @@ -117,7 +117,7 @@ "revision": "577a075d46ea109905c5cb6179809df88da61ce9" }, "gitcommit": { - "revision": "d3c15bdf0165c89872cc1345c5f8815be3cad9cc" + "revision": "f838621d00831967a39ac8293cd3c23b0f49252e" }, "gitignore": { "revision": "f4685bf11ac466dd278449bcfe5fd014e94aa504" From c744b49f13b7c75ae1604a05d3eadd9373c24e6c Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 6 Dec 2022 06:39:57 +0000 Subject: [PATCH 0229/3265] Update lockfile.json --- lockfile.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lockfile.json b/lockfile.json index a9e0bf6a6..4dba4d29d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -306,7 +306,7 @@ "revision": "80efda55672d1293aa738f956c7ae384ecdc31b4" }, "racket": { - "revision": "09cb27a06415bce529a26774a842f5a80d50d362" + "revision": "dc9c33451fefc2d84d226e55c828adc8a66f2e37" }, "rasi": { "revision": "5f04634dd4e12de4574c4a3dc9d6d5d4da4a2a1b" @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "89fac16df3deceb79c4424dfa674c0c734290fcc" + "revision": "54b363b87c22787f9dcfabb5d8aa221cb65ace42" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" @@ -381,7 +381,7 @@ "revision": "8bd2056818b21860e3d756b5a58c4f6e05fb744e" }, "tsx": { - "revision": "0ae382803abce0807e90f498105c713b9233e0b2" + "revision": "faad9094f4061a43d4e9005439e9e85c6541ebe7" }, "turtle": { "revision": "085437f5cb117703b7f520dd92161140a684f092" @@ -390,7 +390,7 @@ "revision": "2457993b13a06dec2706e6a6c3d5b65bb23024b8" }, "typescript": { - "revision": "0ae382803abce0807e90f498105c713b9233e0b2" + "revision": "faad9094f4061a43d4e9005439e9e85c6541ebe7" }, "v": { "revision": "66b92a89ef1e149300df79c0b2a934ad959c8eec" From 56cabb6435cba2ccd931e37db7028325f8b464f9 Mon Sep 17 00:00:00 2001 From: gbprod Date: Tue, 6 Dec 2022 10:56:38 +0100 Subject: [PATCH 0230/3265] fix(php): add missing php fold query --- queries/php/folds.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/php/folds.scm b/queries/php/folds.scm index 60126b70b..56eb33e77 100644 --- a/queries/php/folds.scm +++ b/queries/php/folds.scm @@ -12,4 +12,5 @@ (trait_declaration) (enum_declaration) (function_static_declaration) + (method_declaration) ] @fold From 7eb553ce4dc9af6631a823b5e4b5aa33fdc45bfd Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 6 Dec 2022 09:59:30 +0000 Subject: [PATCH 0231/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 4dba4d29d..1f9c49267 100644 --- a/lockfile.json +++ b/lockfile.json @@ -132,7 +132,7 @@ "revision": "e2c2214045de2628b81089b1a739962f59654558" }, "go": { - "revision": "05900faa3cdb5d2d8c8bd5e77ee698487e0a8611" + "revision": "06432b86ffd57f791b7cf3a0441026f6fefbc2f2" }, "godot_resource": { "revision": "b6ef0768711086a86b3297056f9ffb5cc1d77b4a" @@ -327,7 +327,7 @@ "revision": "c91960320d0f337bdd48308a8ad5500bd2616979" }, "rust": { - "revision": "0431a2c60828731f27491ee9fdefe25e250ce9c9" + "revision": "f7fb205c424b0962de59b26b931fe484e1262b35" }, "scala": { "revision": "140c96cf398693189d4e50f76d19ddfcd8a018f8" From 440401c506ec9b87cd3824ad17631115ab860cc5 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 7 Dec 2022 06:40:26 +0000 Subject: [PATCH 0232/3265] Update lockfile.json --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 1f9c49267..e964115b0 100644 --- a/lockfile.json +++ b/lockfile.json @@ -30,7 +30,7 @@ "revision": "3ef3f7f99e16e528e6689eae44dff35150993307" }, "clojure": { - "revision": "087bac78c53fe1387756cd5b8e68a69b3f6d7244" + "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" }, "cmake": { "revision": "a32265307aa2d31941056d69e8b6633e61750b2f" @@ -132,7 +132,7 @@ "revision": "e2c2214045de2628b81089b1a739962f59654558" }, "go": { - "revision": "06432b86ffd57f791b7cf3a0441026f6fefbc2f2" + "revision": "e34b8a418c33bba8bdf3375e8e55903dff7c68b9" }, "godot_resource": { "revision": "b6ef0768711086a86b3297056f9ffb5cc1d77b4a" From 6c4772f7b667b98ed791ed48a78434506345bb25 Mon Sep 17 00:00:00 2001 From: Raymond Ha Date: Tue, 6 Dec 2022 22:08:41 -0800 Subject: [PATCH 0233/3265] indents(ecma): Fix switch default indent --- queries/ecma/folds.scm | 1 + queries/ecma/indents.scm | 1 + tests/indent/ecma/switch.js | 8 ++++++++ 3 files changed, 10 insertions(+) create mode 100644 tests/indent/ecma/switch.js diff --git a/queries/ecma/folds.scm b/queries/ecma/folds.scm index 960b247d3..50f235a5d 100644 --- a/queries/ecma/folds.scm +++ b/queries/ecma/folds.scm @@ -11,6 +11,7 @@ (with_statement) (switch_statement) (switch_case) + (switch_default) (import_statement) (if_statement) (try_statement) diff --git a/queries/ecma/indents.scm b/queries/ecma/indents.scm index 902bf586a..0f99e0469 100644 --- a/queries/ecma/indents.scm +++ b/queries/ecma/indents.scm @@ -12,6 +12,7 @@ (return_statement) (statement_block) (switch_case) + (switch_default) (switch_statement) (template_substitution) (ternary_expression) diff --git a/tests/indent/ecma/switch.js b/tests/indent/ecma/switch.js new file mode 100644 index 000000000..590b7d35f --- /dev/null +++ b/tests/indent/ecma/switch.js @@ -0,0 +1,8 @@ +switch (variable) { + case 'case1': + foo(); + break; + + default: + bar(); +} From 582e5683fbe88ecbc73396a7bc1431d84ca693e8 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 7 Dec 2022 17:07:05 +0000 Subject: [PATCH 0234/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index e964115b0..1332c9b2f 100644 --- a/lockfile.json +++ b/lockfile.json @@ -291,7 +291,7 @@ "revision": "63e214905970e75f065688b1e8aa90823c3aacdc" }, "python": { - "revision": "b14614e2144b8f9ee54deed5a24f3c6f51f9ffa8" + "revision": "9e53981ec31b789ee26162ea335de71f02186003" }, "ql": { "revision": "bd087020f0d8c183080ca615d38de0ec827aeeaf" From caa28be705bdbf9e3eefb8f7ea6444f858e67076 Mon Sep 17 00:00:00 2001 From: david-pikas <55796758+david-pikas@users.noreply.github.com> Date: Thu, 8 Dec 2022 11:01:56 +0100 Subject: [PATCH 0235/3265] latex: @nospell for environment names, citations and commands (#3948) * Added @nospell for environment names and commands * Added citations to @nospell Co-authored-by: David Pikas --- queries/latex/highlights.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/queries/latex/highlights.scm b/queries/latex/highlights.scm index b9ded3d6b..791689ff5 100644 --- a/queries/latex/highlights.scm +++ b/queries/latex/highlights.scm @@ -237,10 +237,13 @@ command: _ @include paths: (curly_group_path_list) @string) -( - (text) @spell - (#not-has-parent? @spell - inline_formula - displayed_equation - ) -) +(text) @spell +(inline_formula) @nospell +(displayed_equation) @nospell +(key_value_pair) @nospell +(generic_environment + begin: _ @nospell + end: _ @nospell) +(citation + keys: _ @nospell) +(command_name) @nospell From a824b193af84a4b55773161e106ac5a262f9d0e1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Dec 2022 10:15:00 +0000 Subject: [PATCH 0236/3265] Update lockfile.json (#3949) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 1332c9b2f..0c17fcc63 100644 --- a/lockfile.json +++ b/lockfile.json @@ -132,7 +132,7 @@ "revision": "e2c2214045de2628b81089b1a739962f59654558" }, "go": { - "revision": "e34b8a418c33bba8bdf3375e8e55903dff7c68b9" + "revision": "64457ea6b73ef5422ed1687178d4545c3e91334a" }, "godot_resource": { "revision": "b6ef0768711086a86b3297056f9ffb5cc1d77b4a" From 0b00eb4b826bde517e87a0993bdb8409435b2378 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 8 Dec 2022 10:16:09 +0000 Subject: [PATCH 0237/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 0c17fcc63..d415e4b0a 100644 --- a/lockfile.json +++ b/lockfile.json @@ -126,7 +126,7 @@ "revision": "cfcbca3f8f734773878e00d7bfcedea98eb10be2" }, "glimmer": { - "revision": "abcc9970da0ed0645741bf52ea70232374bc9e52" + "revision": "fee34278dc212869dcfc92fce3007ee79a752867" }, "glsl": { "revision": "e2c2214045de2628b81089b1a739962f59654558" From 84261c67fce6322c241ec74a44c5dff6598166c5 Mon Sep 17 00:00:00 2001 From: Benedikt Reinartz Date: Thu, 8 Dec 2022 19:40:41 +0100 Subject: [PATCH 0238/3265] feat(erlang)!: switch parser to maintained fork (#3791) update queries to breaking changes --- lockfile.json | 2 +- lua/nvim-treesitter/parsers.lua | 4 +- queries/erlang/folds.scm | 11 ++- queries/erlang/highlights.scm | 162 ++++++++++++++++++-------------- 4 files changed, 100 insertions(+), 79 deletions(-) diff --git a/lockfile.json b/lockfile.json index d415e4b0a..500977a17 100644 --- a/lockfile.json +++ b/lockfile.json @@ -90,7 +90,7 @@ "revision": "91fc5ae1140d5c9d922312431f7d251a48d7b8ce" }, "erlang": { - "revision": "3a9c769444f08bbccce03845270efac0c641c5e7" + "revision": "a8b8b0e16c4f5552f5e85af3dec976a5d16af8b9" }, "fennel": { "revision": "517195970428aacca60891b050aa53eabf4ba78d" diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 73841850a..0246cde81 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -412,11 +412,11 @@ list.scss = { list.erlang = { install_info = { - url = "https://github.com/AbstractMachinesLab/tree-sitter-erlang", + url = "https://github.com/WhatsApp/tree-sitter-erlang", files = { "src/parser.c" }, branch = "main", }, - maintainers = { "@ostera" }, + maintainers = { "@filmor" }, } list.elixir = { diff --git a/queries/erlang/folds.scm b/queries/erlang/folds.scm index 39c65c5b2..35073e869 100644 --- a/queries/erlang/folds.scm +++ b/queries/erlang/folds.scm @@ -1,7 +1,8 @@ [ - (function_declaration) - (lambda_clause) - (expr_case) - (map) - (module_export) + (fun_decl) + (anonymous_fun) + (case_expr) + (map_expr) + (export_attribute) + (export_type_attribute) ] @fold diff --git a/queries/erlang/highlights.scm b/queries/erlang/highlights.scm index c51019fd5..fba44359f 100644 --- a/queries/erlang/highlights.scm +++ b/queries/erlang/highlights.scm @@ -1,8 +1,18 @@ -;; keywoord +((atom) @constant (#set! "priority" "90")) +(var) @variable + +(char) @character +(integer) @number +(float) @float + +(comment) @comment + +;; keyword [ "fun" "div" ] @keyword + ;; bracket [ "(" @@ -11,10 +21,41 @@ "}" "[" "]" - "#" + "#" ] @punctuation.bracket -;; conditional + +;;; Comparisons [ + "==" + "=:=" + "=/=" + "=<" + ">=" + "<" + ">" +] @operator ;; .comparison + +;;; operator +[ + ":" + ":=" + "!" + ;; "-" + "+" + "=" + "->" + "=>" + "|" +] @operator + +[ + "," + "." + ";" +] @punctuation.delimiter + +;; conditional +([ "receive" "if" "case" @@ -22,83 +63,62 @@ "when" "after" "end" -] @conditional +] @conditional (#set! "priority" 95)) [ "catch" - "try" - "throw" + "try" ] @exception -;;; module define -[ - "module" - "export" -] @include -;;; operator -[ - ":" - ":=" - "?" - "!" - "-" - "+" - "=" - "->" - "=>" - "|" - ;;;TODO - "$" - ] @operator + +((atom) @boolean (#any-of? @boolean "true" "false")) + +;; Macros +((macro_call_expr) @constant.macro (#set! "priority" 101)) + +;; Preprocessor +(pp_define + lhs: _ @constant.macro (#set! "priority" 101) +) +(_preprocessor_directive) @preproc (#set! "priority" 99) + +;; Attributes +(pp_include) @include +(pp_include_lib) @include +(export_attribute) @include +(export_type_attribute) @type.definition +(export_type_attribute types: (fa fun: _ @type (#set! "priority" 101))) +(behaviour_attribute) @include +(module_attribute (atom) @namespace) @include +(wild_attribute name: (attr_name name: _ @attribute)) @attribute + +;; Records +(record_expr) @type +(record_field_expr _ @field) @type +(record_field_name _ @field) @type +(record_name "#" @type name: _ @type) @type +(record_decl name: _ @type) @type.definition +(record_field name: _ @field) +(record_field name: _ @field ty: _ @type) + +;; Type alias +(type_alias name: _ @type) @type.definition +(spec) @type.definition (comment) @comment -(string) @string -(variable) @variable +[(string) (binary)] @string -(module_name - (atom) @namespace -) ;;; expr_function_call -(expr_function_call - name: (computed_function_name) @function.call -) +(call expr: [(atom) (remote) (var)] @function) +(call (atom) @exception (#any-of? @exception "error" "throw" "exit")) -(expr_function_call - arguments: (atom) @variable -) - -;;; map -(map - (map_entry [ - (atom) - (variable) - ] @variable) -) - - -(tuple (atom) @variable) -(pat_tuple ( pattern (atom) @variable)) - -(computed_function_name) @function -;;; case -(case_clause - pattern: (pattern - (atom) @variable - ) -) -(case_clause - body: (atom) @variable +;;; Parenthesized expression: (SomeFunc)(), only highlight the parens +(call + expr: (paren_expr "(" @function.call ")" @function.call) ) ;;; function -(qualified_function_name - module_name: (atom) @attribute - function_name: (atom) @function -) -;; function -(function_clause - name: (atom) @function) -;;;lambda -(lambda_clause - arguments: - (pattern) @variable -) +(external_fun) @function.call +(internal_fun fun: (atom) @function.call) +(function_clause name: (atom) @function) +(fa fun: (atom) @function) + From 35ad87384b3e47b3b5758d1642bbea08c70200c0 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 9 Dec 2022 06:39:51 +0000 Subject: [PATCH 0239/3265] Update lockfile.json --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index 500977a17..46956b6a3 100644 --- a/lockfile.json +++ b/lockfile.json @@ -273,7 +273,7 @@ "revision": "749d26fe13fb131b92e6515416096e572575b981" }, "php": { - "revision": "ab2e72179ceb8bb0b249c8ac9162a148e911b3dc" + "revision": "b4a8a6048d66fcda4e8e4988bd0d9095980e303a" }, "phpdoc": { "revision": "2f4d16c861b5a454b577d057f247f9902d7b47f5" @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "54b363b87c22787f9dcfabb5d8aa221cb65ace42" + "revision": "a4dd131eeb9fe7f3c9c2ca0f506f6d58d9986a97" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" @@ -360,7 +360,7 @@ "revision": "52e122ae68b316d3aa960a0a422d3645ba717f42" }, "swift": { - "revision": "cff1c9a62df89e8900d53ff48bc42862e6522dcf" + "revision": "4443b125240d7ae7e50d35d8415fae5be61bdaf2" }, "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" From fbc2ce9d652e5c2e1efc9bea50993d24d22236f7 Mon Sep 17 00:00:00 2001 From: gbprod Date: Fri, 9 Dec 2022 22:07:05 +0100 Subject: [PATCH 0240/3265] feat(php): improve indents for match and switch (#3953) --- queries/php/indents.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/queries/php/indents.scm b/queries/php/indents.scm index 5e2d51ce1..1a2bb9017 100644 --- a/queries/php/indents.scm +++ b/queries/php/indents.scm @@ -7,6 +7,9 @@ (arguments) (formal_parameters) (enum_declaration_list) + (switch_block) + (match_block) + (case_statement) "[" ] @indent From add21c54c8d83058cd33fb73b89258cdded00b3e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 21:19:47 +0000 Subject: [PATCH 0241/3265] Update lockfile.json (#3955) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 46956b6a3..09ee81c9d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -273,7 +273,7 @@ "revision": "749d26fe13fb131b92e6515416096e572575b981" }, "php": { - "revision": "b4a8a6048d66fcda4e8e4988bd0d9095980e303a" + "revision": "64a2abb98a0cbf2bce23e4af6c05c78f06068886" }, "phpdoc": { "revision": "2f4d16c861b5a454b577d057f247f9902d7b47f5" From 619f1ace03860d668c7a661332c38480f2db2584 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 10 Dec 2022 06:39:18 +0000 Subject: [PATCH 0242/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 09ee81c9d..ec04d5dbc 100644 --- a/lockfile.json +++ b/lockfile.json @@ -63,7 +63,7 @@ "revision": "ea30a05d0f0446a96d8b096ad11828ad4f8ad849" }, "diff": { - "revision": "330eb648bbc257b4e91621e82a85372be7dde27a" + "revision": "1d63cd49529ef3153393cf8f620718b274bba715" }, "dockerfile": { "revision": "09e316dba307b869831e9399b11a83bbf0f2a24b" From ae0317d78a9f6fad78870d6645b60528e13ae6fa Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 12 Dec 2022 06:40:48 +0000 Subject: [PATCH 0243/3265] Update lockfile.json --- lockfile.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lockfile.json b/lockfile.json index ec04d5dbc..7267c7974 100644 --- a/lockfile.json +++ b/lockfile.json @@ -198,7 +198,7 @@ "revision": "02b01653c8a1c198ae7287d566efa86a135b30d5" }, "jsonnet": { - "revision": "0475a5017ad7dc84845d1d33187f2321abcb261d" + "revision": "f4e2d85598cdf43259b68bb396910d3c2b519de3" }, "julia": { "revision": "91ba1c3c9b50f388d4b67518c04bc9a003ed3475" @@ -240,7 +240,7 @@ "revision": "d787c66276e7e95899230539f556e8b83ee16f6d" }, "meson": { - "revision": "153d22588fb5c1eee16a165a084f9ea30f29d941" + "revision": "6c5f7ef944f9c6ae8a0fc28b9071a4b493652238" }, "nickel": { "revision": "9d83db400b6c11260b9106f131f93ddda8131933" @@ -273,7 +273,7 @@ "revision": "749d26fe13fb131b92e6515416096e572575b981" }, "php": { - "revision": "64a2abb98a0cbf2bce23e4af6c05c78f06068886" + "revision": "680244ac3a8092154125e91145fe8d631cd4583b" }, "phpdoc": { "revision": "2f4d16c861b5a454b577d057f247f9902d7b47f5" @@ -333,7 +333,7 @@ "revision": "140c96cf398693189d4e50f76d19ddfcd8a018f8" }, "scheme": { - "revision": "bdcd2c8496701153506a9e3e1b76dfed852873ba" + "revision": "c0741320bfca6b7b5b7a13b5171275951e96a842" }, "scss": { "revision": "c478c6868648eff49eb04a4df90d703dc45b312a" @@ -360,7 +360,7 @@ "revision": "52e122ae68b316d3aa960a0a422d3645ba717f42" }, "swift": { - "revision": "4443b125240d7ae7e50d35d8415fae5be61bdaf2" + "revision": "693411cb5a1167311ccd84708348281630562726" }, "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" @@ -372,7 +372,7 @@ "revision": "a233ebe360a73a92c50978e5c4e9e471bc59ff42" }, "tlaplus": { - "revision": "deaf0e5c573ad4e2bbfc9a29abb7b6dcb572556e" + "revision": "27e6d238a5708b0490f43351f6e0baeaab4c9c1f" }, "todotxt": { "revision": "0207f6a4ab6aeafc4b091914d31d8235049a2578" From eadfcad580edc74b258dc1380f1e3edea35cc6d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 06:57:57 +0000 Subject: [PATCH 0244/3265] Update lockfile.json (#3966) Co-authored-by: GitHub --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 7267c7974..201c0c8db 100644 --- a/lockfile.json +++ b/lockfile.json @@ -198,7 +198,7 @@ "revision": "02b01653c8a1c198ae7287d566efa86a135b30d5" }, "jsonnet": { - "revision": "f4e2d85598cdf43259b68bb396910d3c2b519de3" + "revision": "44c0d58dfb523b7f1066ef4013cc543afc696960" }, "julia": { "revision": "91ba1c3c9b50f388d4b67518c04bc9a003ed3475" @@ -333,7 +333,7 @@ "revision": "140c96cf398693189d4e50f76d19ddfcd8a018f8" }, "scheme": { - "revision": "c0741320bfca6b7b5b7a13b5171275951e96a842" + "revision": "16bdcf0495865e17ae5b995257458e31e8b7f450" }, "scss": { "revision": "c478c6868648eff49eb04a4df90d703dc45b312a" From 30a45fc76bce58d436a5c2a460c2e90c68530c7e Mon Sep 17 00:00:00 2001 From: Raymond Ha Date: Wed, 7 Dec 2022 10:47:08 -0800 Subject: [PATCH 0245/3265] test: Add test name to summary output --- scripts/run_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index 4db68190c..c6660a7f6 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -10,7 +10,7 @@ run() { if [[ $2 = '--summary' ]]; then ## really simple results summary by filtering plenary busted output - run tests/$1 2> /dev/null | grep -E '^\S*(Success|Fail(ed)?|Errors?)\s*:' + run tests/$1 2> /dev/null | grep -E '^\S*(Testing|Success|Failed|Errors)\s*:' else run tests/$1 fi From 1d6e1354b742c34e565b6109f29e88a47fa14531 Mon Sep 17 00:00:00 2001 From: Ananda Umamil Date: Mon, 5 Dec 2022 10:30:43 +0700 Subject: [PATCH 0246/3265] highlights(typescript): add `module` keyword --- queries/typescript/highlights.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/typescript/highlights.scm b/queries/typescript/highlights.scm index dba119a3b..036b6e8da 100644 --- a/queries/typescript/highlights.scm +++ b/queries/typescript/highlights.scm @@ -11,6 +11,7 @@ "namespace" "override" "satisfies" + "module" ] @keyword (as_expression "as" @keyword) From 134d5bee6e01b890d223fba2089f8ce681fd0884 Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Sat, 3 Dec 2022 13:47:21 +0100 Subject: [PATCH 0247/3265] feat(cmake): add block_def to fold --- queries/cmake/folds.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/cmake/folds.scm b/queries/cmake/folds.scm index ed5cc8d6a..9ac59ad4c 100644 --- a/queries/cmake/folds.scm +++ b/queries/cmake/folds.scm @@ -4,4 +4,5 @@ (while_loop) (function_def) (macro_def) + (block_def) ] @fold From d1f8e102e5c9961b535a7e1450b47c3bf233fe32 Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Mon, 5 Dec 2022 23:17:19 +0100 Subject: [PATCH 0248/3265] add queries for block, return, break, continue, and include --- queries/cmake/highlights.scm | 37 ++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index 3378480c0..76dab232d 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -38,6 +38,15 @@ (endwhile) ] @repeat +(normal_command + (identifier) @repeat + (#match? @repeat "\\c^(continue|break)$") +) +(normal_command + (identifier) @keyword.return + (#match? @keyword.return "\\c^return$") +) + (function_command (function) . (argument) @function @@ -50,6 +59,15 @@ (argument)* @parameter ) +(block_def + (block_command + (block) @function.builtin + (argument (unquoted_argument) @constant) + (#any-of? @constant "SCOPE_FOR" "POLICIES" "VARIABLES" "PROPAGATE") + ) + (endblock_command (endblock) @function.builtin) +) + (normal_command (identifier) @function.builtin . (argument) @variable @@ -70,9 +88,9 @@ (#match? @function.builtin "\\c^(set)$") . (argument) ( - (argument) @_cache @constant + (argument) @_cache @storageclass . - (argument) @_type @constant + (argument) @_type @type (#any-of? @_cache "CACHE") (#any-of? @_type "BOOL" "FILEPATH" "PATH" "STRING" "INTERNAL") ) @@ -123,6 +141,21 @@ (#match? @function.builtin "\\c^(add_custom_command)$") ) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^include$") + (argument) @constant + (#any-of? @constant "OPTIONAL" "NO_POLICY_SCOPE") +) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^include$") + (argument) @constant + . + (argument) @variable + (#match? @constant "RESULT_VARIABLE") +) + (escape_sequence) @string.escape ((source_file . (line_comment) @preproc) From 15ee2cb240c635d2705e1be501006c96ed77be23 Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Wed, 7 Dec 2022 22:34:28 +0100 Subject: [PATCH 0249/3265] add highlight for `unset` command --- queries/cmake/highlights.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index 76dab232d..1b88a0383 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -107,6 +107,19 @@ ) . ) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^(unset)$") + . (argument) @variable +) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^(unset)$") + . (argument) + (argument) @storageclass + (#any-of? @storageclass "CACHE" "PARENT_SCOPE") +) + ((argument) @boolean (#match? @boolean "\\c^(1|on|yes|true|y|0|off|no|false|n|ignore|notfound|.*-notfound)$") ) From 380287745eebaa86ae68b8e3975d2668ebb0e26c Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Fri, 9 Dec 2022 00:08:49 +0100 Subject: [PATCH 0250/3265] add highlight for `list` command --- queries/cmake/highlights.scm | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index 1b88a0383..75007c18c 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -120,6 +120,45 @@ (#any-of? @storageclass "CACHE" "PARENT_SCOPE") ) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^(list)$") + . (argument) @constant + (#any-of? @constant "LENGTH" "GET" "JOIN" "SUBLIST" "FIND") + . (argument) @variable + (argument) @variable . +) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^(list)$") + . (argument) @constant + . (argument) @variable + (#any-of? @constant "APPEND" "FILTER" "INSERT" + "POP_BACK" "POP_FRONT" "PREPEND" + "REMOVE_ITEM" "REMOVE_AT" "REMOVE_DUPLICATES" + "REVERSE" "SORT") +) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^(list)$") + . (argument) @_transform @constant + . (argument) @variable + . (argument) @_action @constant + (#match? @_transform "TRANSFORM") + (#any-of? @_action "APPEND" "PREPEND" "TOUPPER" "TOLOWER" "STRIP" "GENEX_STRIP" "REPLACE") +) +(normal_command + (identifier) @function.builtin + (#match? @function.builtin "\\c^(list)$") + . (argument) @_transform @constant + . (argument) @variable + . (argument) @_action @constant + . (argument)? @_selector @constant + (#match? @_transform "TRANSFORM") + (#any-of? @_action "APPEND" "PREPEND" "TOUPPER" "TOLOWER" "STRIP" "GENEX_STRIP" "REPLACE") + (#any-of? @_selector "AT" "FOR" "REGEX") +) + ((argument) @boolean (#match? @boolean "\\c^(1|on|yes|true|y|0|off|no|false|n|ignore|notfound|.*-notfound)$") ) From 322d723c896cc5fcdea9a7d24f7a25698d06e832 Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Fri, 9 Dec 2022 00:21:33 +0100 Subject: [PATCH 0251/3265] rearrange queries, include all builtin commands in one query --- queries/cmake/highlights.scm | 201 ++++++++++++++++++----------------- 1 file changed, 103 insertions(+), 98 deletions(-) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index 75007c18c..831288d10 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -68,97 +68,6 @@ (endblock_command (endblock) @function.builtin) ) -(normal_command - (identifier) @function.builtin - . (argument) @variable - (#match? @function.builtin "\\c^(set)$") -) - -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(set)$") - ( - (argument) @constant - (#any-of? @constant "PARENT_SCOPE") - ) . -) - -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(set)$") - . (argument) - ( - (argument) @_cache @storageclass - . - (argument) @_type @type - (#any-of? @_cache "CACHE") - (#any-of? @_type "BOOL" "FILEPATH" "PATH" "STRING" "INTERNAL") - ) -) -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(set)$") - . (argument) - (argument) @_cache - (#any-of? @_cache "CACHE") - ( - (argument) @_force @constant - (#any-of? @_force "FORCE") - ) . -) - -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(unset)$") - . (argument) @variable -) -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(unset)$") - . (argument) - (argument) @storageclass - (#any-of? @storageclass "CACHE" "PARENT_SCOPE") -) - -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(list)$") - . (argument) @constant - (#any-of? @constant "LENGTH" "GET" "JOIN" "SUBLIST" "FIND") - . (argument) @variable - (argument) @variable . -) -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(list)$") - . (argument) @constant - . (argument) @variable - (#any-of? @constant "APPEND" "FILTER" "INSERT" - "POP_BACK" "POP_FRONT" "PREPEND" - "REMOVE_ITEM" "REMOVE_AT" "REMOVE_DUPLICATES" - "REVERSE" "SORT") -) -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(list)$") - . (argument) @_transform @constant - . (argument) @variable - . (argument) @_action @constant - (#match? @_transform "TRANSFORM") - (#any-of? @_action "APPEND" "PREPEND" "TOUPPER" "TOLOWER" "STRIP" "GENEX_STRIP" "REPLACE") -) -(normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^(list)$") - . (argument) @_transform @constant - . (argument) @variable - . (argument) @_action @constant - . (argument)? @_selector @constant - (#match? @_transform "TRANSFORM") - (#any-of? @_action "APPEND" "PREPEND" "TOUPPER" "TOLOWER" "STRIP" "GENEX_STRIP" "REPLACE") - (#any-of? @_selector "AT" "FOR" "REGEX") -) - ((argument) @boolean (#match? @boolean "\\c^(1|on|yes|true|y|0|off|no|false|n|ignore|notfound|.*-notfound)$") ) @@ -178,30 +87,126 @@ (normal_command (identifier) @function.builtin + (#match? @function.builtin "\\c^(cmake_host_system_information|cmake_language|cmake_minimum_required|cmake_parse_arguments|cmake_path|cmake_policy|configure_file|execute_process|file|find_file|find_library|find_package|find_path|find_program|foreach|get_cmake_property|get_directory_property|get_filename_component|get_property|include|include_guard|list|macro|mark_as_advanced|math|message|option|separate_arguments|set|set_directory_properties|set_property|site_name|string|unset|variable_watch|add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|build_command|create_test_sourcelist|define_property|enable_language|enable_testing|export|fltk_wrap_ui|get_source_file_property|get_target_property|get_test_property|include_directories|include_external_msproject|include_regular_expression|install|link_directories|link_libraries|load_cache|project|remove_definitions|set_source_files_properties|set_target_properties|set_tests_properties|source_group|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_precompile_headers|target_sources|try_compile|try_run|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload)$") +) + +(normal_command + (identifier) @_function + . (argument) @variable + (#match? @_function "\\c^(set)$") +) + +(normal_command + (identifier) @_function + (#match? @_function "\\c^(set)$") + ( + (argument) @constant + (#any-of? @constant "PARENT_SCOPE") + ) . +) + +(normal_command + (identifier) @_function + (#match? @_function "\\c^(set)$") + . (argument) + ( + (argument) @_cache @storageclass + . + (argument) @_type @type + (#any-of? @_cache "CACHE") + (#any-of? @_type "BOOL" "FILEPATH" "PATH" "STRING" "INTERNAL") + ) +) +(normal_command + (identifier) @_function + (#match? @_function "\\c^(set)$") + . (argument) + (argument) @_cache + (#any-of? @_cache "CACHE") + ( + (argument) @_force @constant + (#any-of? @_force "FORCE") + ) . +) + +(normal_command + (identifier) @_function + (#match? @_function "\\c^(unset)$") + . (argument) @variable +) +(normal_command + (identifier) @_function + (#match? @_function "\\c^(unset)$") + . (argument) + (argument) @storageclass + (#any-of? @storageclass "CACHE" "PARENT_SCOPE") +) + +(normal_command + (identifier) @_function + (#match? @_function "\\c^(list)$") + . (argument) @constant + (#any-of? @constant "LENGTH" "GET" "JOIN" "SUBLIST" "FIND") + . (argument) @variable + (argument) @variable . +) +(normal_command + (identifier) @_function + (#match? @_function "\\c^(list)$") + . (argument) @constant + . (argument) @variable + (#any-of? @constant "APPEND" "FILTER" "INSERT" + "POP_BACK" "POP_FRONT" "PREPEND" + "REMOVE_ITEM" "REMOVE_AT" "REMOVE_DUPLICATES" + "REVERSE" "SORT") +) +(normal_command + (identifier) @_function + (#match? @_function "\\c^(list)$") + . (argument) @_transform @constant + . (argument) @variable + . (argument) @_action @constant + (#match? @_transform "TRANSFORM") + (#any-of? @_action "APPEND" "PREPEND" "TOUPPER" "TOLOWER" "STRIP" "GENEX_STRIP" "REPLACE") +) +(normal_command + (identifier) @_function + (#match? @_function "\\c^(list)$") + . (argument) @_transform @constant + . (argument) @variable + . (argument) @_action @constant + . (argument)? @_selector @constant + (#match? @_transform "TRANSFORM") + (#any-of? @_action "APPEND" "PREPEND" "TOUPPER" "TOLOWER" "STRIP" "GENEX_STRIP" "REPLACE") + (#any-of? @_selector "AT" "FOR" "REGEX") +) + +(normal_command + (identifier) @_function + (#match? @_function "\\c^(add_custom_target)$") . (argument) (argument) @constant (#any-of? @constant "ALL" "COMMAND" "DEPENDS" "BYPRODUCTS" "WORKING_DIRECTORY" "COMMENT" "JOB_POOL" "VERBATIM" "USES_TERMINAL" "COMMAND_EXPAND_LISTS" "SOURCES") - (#match? @function.builtin "\\c^(add_custom_target)$") ) (normal_command - (identifier) @function.builtin + (identifier) @_function + (#match? @_function "\\c^(add_custom_command)$") (argument) @constant (#any-of? @constant "OUTPUT" "COMMAND" "MAIN_DEPENDENCY" "DEPENDS" "BYPRODUCTS" "IMPLICIT_DEPENDS" "WORKING_DIRECTORY" "COMMENT" "DEPFILE" "JOB_POOL" "VERBATIM" "APPEND" "USES_TERMINAL" "COMMAND_EXPAND_LISTS") - (#match? @function.builtin "\\c^(add_custom_command)$") ) (normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^include$") + (identifier) @_function + (#match? @_function "\\c^include$") (argument) @constant (#any-of? @constant "OPTIONAL" "NO_POLICY_SCOPE") ) (normal_command - (identifier) @function.builtin - (#match? @function.builtin "\\c^include$") + (identifier) @_function + (#match? @_function "\\c^include$") (argument) @constant . (argument) @variable From 9508e2188fc7507cde6e828124ca3b6808ed7f15 Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Fri, 9 Dec 2022 00:25:12 +0100 Subject: [PATCH 0252/3265] add OUTPUT_VARIABLE query for list TRANSFORM --- queries/cmake/highlights.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index 831288d10..851a1e3b2 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -180,6 +180,15 @@ (#any-of? @_action "APPEND" "PREPEND" "TOUPPER" "TOLOWER" "STRIP" "GENEX_STRIP" "REPLACE") (#any-of? @_selector "AT" "FOR" "REGEX") ) +(normal_command + (identifier) @_function + (#match? @_function "\\c^(list)$") + . (argument) @_transform @constant + (argument) @constant . + (argument) @variable + (#match? @_transform "TRANSFORM") + (#match? @constant "OUTPUT_VARIABLE") +) (normal_command (identifier) @_function From 320804c4f16e789284205cb0875c412caed78d11 Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Fri, 9 Dec 2022 00:33:42 +0100 Subject: [PATCH 0253/3265] bind ENV and CACHE as @storageclass --- queries/cmake/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index 851a1e3b2..7964d24e3 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -13,7 +13,7 @@ (normal_command (identifier) @function) -["ENV" "CACHE"] @symbol +["ENV" "CACHE"] @storageclass ["$" "{" "}" "<" ">"] @punctuation.special ["(" ")"] @punctuation.bracket From 3ac093e702a3ea2ad33e7eac6738fd987f2563cd Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Fri, 9 Dec 2022 00:36:30 +0100 Subject: [PATCH 0254/3265] remove redundant parentheses --- queries/cmake/highlights.scm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index 7964d24e3..b1835c7aa 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -93,12 +93,12 @@ (normal_command (identifier) @_function . (argument) @variable - (#match? @_function "\\c^(set)$") + (#match? @_function "\\c^set$") ) (normal_command (identifier) @_function - (#match? @_function "\\c^(set)$") + (#match? @_function "\\c^set$") ( (argument) @constant (#any-of? @constant "PARENT_SCOPE") @@ -107,7 +107,7 @@ (normal_command (identifier) @_function - (#match? @_function "\\c^(set)$") + (#match? @_function "\\c^set$") . (argument) ( (argument) @_cache @storageclass @@ -119,7 +119,7 @@ ) (normal_command (identifier) @_function - (#match? @_function "\\c^(set)$") + (#match? @_function "\\c^set$") . (argument) (argument) @_cache (#any-of? @_cache "CACHE") @@ -131,12 +131,12 @@ (normal_command (identifier) @_function - (#match? @_function "\\c^(unset)$") + (#match? @_function "\\c^unset$") . (argument) @variable ) (normal_command (identifier) @_function - (#match? @_function "\\c^(unset)$") + (#match? @_function "\\c^unset$") . (argument) (argument) @storageclass (#any-of? @storageclass "CACHE" "PARENT_SCOPE") @@ -144,7 +144,7 @@ (normal_command (identifier) @_function - (#match? @_function "\\c^(list)$") + (#match? @_function "\\c^list$") . (argument) @constant (#any-of? @constant "LENGTH" "GET" "JOIN" "SUBLIST" "FIND") . (argument) @variable @@ -152,7 +152,7 @@ ) (normal_command (identifier) @_function - (#match? @_function "\\c^(list)$") + (#match? @_function "\\c^list$") . (argument) @constant . (argument) @variable (#any-of? @constant "APPEND" "FILTER" "INSERT" @@ -162,7 +162,7 @@ ) (normal_command (identifier) @_function - (#match? @_function "\\c^(list)$") + (#match? @_function "\\c^list$") . (argument) @_transform @constant . (argument) @variable . (argument) @_action @constant @@ -171,7 +171,7 @@ ) (normal_command (identifier) @_function - (#match? @_function "\\c^(list)$") + (#match? @_function "\\c^list$") . (argument) @_transform @constant . (argument) @variable . (argument) @_action @constant @@ -182,7 +182,7 @@ ) (normal_command (identifier) @_function - (#match? @_function "\\c^(list)$") + (#match? @_function "\\c^list$") . (argument) @_transform @constant (argument) @constant . (argument) @variable @@ -192,7 +192,7 @@ (normal_command (identifier) @_function - (#match? @_function "\\c^(add_custom_target)$") + (#match? @_function "\\c^add_custom_target$") . (argument) (argument) @constant (#any-of? @constant "ALL" "COMMAND" "DEPENDS" "BYPRODUCTS" "WORKING_DIRECTORY" "COMMENT" @@ -201,7 +201,7 @@ (normal_command (identifier) @_function - (#match? @_function "\\c^(add_custom_command)$") + (#match? @_function "\\c^add_custom_command$") (argument) @constant (#any-of? @constant "OUTPUT" "COMMAND" "MAIN_DEPENDENCY" "DEPENDS" "BYPRODUCTS" "IMPLICIT_DEPENDS" "WORKING_DIRECTORY" "COMMENT" "DEPFILE" "JOB_POOL" "VERBATIM" "APPEND" "USES_TERMINAL" "COMMAND_EXPAND_LISTS") From 69388e84c34d40c3d5c7d2f310db13276f2179e1 Mon Sep 17 00:00:00 2001 From: Uy Ha Date: Fri, 9 Dec 2022 00:39:06 +0100 Subject: [PATCH 0255/3265] add queries `project` and `cmake_minimum_required` --- queries/cmake/highlights.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/queries/cmake/highlights.scm b/queries/cmake/highlights.scm index b1835c7aa..0e846507d 100644 --- a/queries/cmake/highlights.scm +++ b/queries/cmake/highlights.scm @@ -222,6 +222,20 @@ (#match? @constant "RESULT_VARIABLE") ) +(normal_command + (identifier) @_function + (#match? @_function "\\c^project$") + (argument) @constant + (#any-of? @constant "VERSION" "DESCRIPTION" "HOMEPAGE_URL" "LANGUAGES") +) + +(normal_command + (identifier) @_function + (#match? @_function "\\c^cmake_minimum_required$") + (argument) @constant + (#any-of? @constant "VERSION" "FATAL_ERROR") +) + (escape_sequence) @string.escape ((source_file . (line_comment) @preproc) From bfb875673efd0398428166babf5f145200fd56a6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 13 Dec 2022 20:18:50 +0000 Subject: [PATCH 0256/3265] Update lockfile.json --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 201c0c8db..0531fe474 100644 --- a/lockfile.json +++ b/lockfile.json @@ -198,7 +198,7 @@ "revision": "02b01653c8a1c198ae7287d566efa86a135b30d5" }, "jsonnet": { - "revision": "44c0d58dfb523b7f1066ef4013cc543afc696960" + "revision": "768a384989391237c6d55ff3d878a0d1e0d2b4fa" }, "julia": { "revision": "91ba1c3c9b50f388d4b67518c04bc9a003ed3475" From d31c71c959348b7b15f7e69608a47aea05ed7bc6 Mon Sep 17 00:00:00 2001 From: "Sergio A. Vargas" Date: Wed, 14 Dec 2022 03:06:08 -0500 Subject: [PATCH 0257/3265] julia: update queries to parser change (#3956) --- lockfile.json | 2 +- queries/julia/highlights.scm | 25 ++++++++----------------- queries/julia/indents.scm | 7 ++++--- queries/julia/injections.scm | 9 +++++++++ 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/lockfile.json b/lockfile.json index 0531fe474..f801df1d6 100644 --- a/lockfile.json +++ b/lockfile.json @@ -201,7 +201,7 @@ "revision": "768a384989391237c6d55ff3d878a0d1e0d2b4fa" }, "julia": { - "revision": "91ba1c3c9b50f388d4b67518c04bc9a003ed3475" + "revision": "36b099e9ea577f64ba53323115028dadd2991d2c" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index e8d9ac9ff..5e4922e14 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -15,17 +15,9 @@ (quote_expression ":" (identifier)) @symbol - -;;; Fields and indexes - (field_expression (identifier) @field .) -(index_expression - (_) - (range_expression - (identifier) @constant.builtin .) - (#eq? @constant.builtin "end")) ;;; Function names @@ -79,13 +71,14 @@ ;; Definitions (abstract_definition - name: (identifier) @type.definition - (subtype_clause (identifier) @type)) + name: (identifier) @type.definition) (primitive_definition - name: (identifier) @type.definition - (subtype_clause (identifier) @type)) + name: (identifier) @type.definition) (struct_definition name: (identifier) @type) +(subtype_clause [ + (identifier) @type + (field_expression (identifier) @type .)]) ;; Annotations @@ -109,6 +102,8 @@ ;;; Keywords [ + "global" + "local" "macro" "struct" "type" @@ -117,9 +112,6 @@ "end" @keyword -((identifier) @keyword - (#any-of? @keyword "global" "local")) ; Grammar error - (compound_statement ["begin" "end"] @keyword) (quote_statement @@ -185,11 +177,10 @@ (operator) @operator (for_binding ["in" "=" "∈"] @operator) -(pair_expression "=>" @operator) (range_expression ":" @operator) (slurp_parameter "..." @operator) -(spread_expression "..." @operator) +(splat_expression "..." @operator) "." @operator ["::" "<:"] @operator diff --git a/queries/julia/indents.scm b/queries/julia/indents.scm index 47be570f2..5e88c697c 100644 --- a/queries/julia/indents.scm +++ b/queries/julia/indents.scm @@ -3,24 +3,25 @@ (macro_definition) (function_definition) + (compound_statement) (if_statement) (try_statement) (for_statement) (while_statement) (let_statement) (quote_statement) - (do_clause) - (compound_statement) (assignment) + (for_binding) (binary_expression) (call_expression) - (array_expression) (tuple_expression) + (comprehension_expression) (matrix_expression) + (vector_expression) ] @indent [ diff --git a/queries/julia/injections.scm b/queries/julia/injections.scm index ac1721b33..ff79619c0 100644 --- a/queries/julia/injections.scm +++ b/queries/julia/injections.scm @@ -1,4 +1,13 @@ +;; Inject markdown in docstrings ((string_literal) @markdown + . [ + (module_definition) + (abstract_definition) + (struct_definition) + (function_definition) + (assignment) + (const_declaration) + ] (#match? @markdown "^\"\"\"") (#offset! @markdown 0 3 0 -3)) From 8b5080b1bfffed50e41de2db481b4866bb30d755 Mon Sep 17 00:00:00 2001 From: Attila Tajti Date: Wed, 30 Nov 2022 11:39:18 +0100 Subject: [PATCH 0258/3265] shell: respect shellslash option on Windows Always use backlashes as path separators in commands when they are used in cmd.exe. Fixes #2844 #1965 --- .../shell_command_selectors.lua | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lua/nvim-treesitter/shell_command_selectors.lua b/lua/nvim-treesitter/shell_command_selectors.lua index 59bbb0e41..fd53bbee8 100644 --- a/lua/nvim-treesitter/shell_command_selectors.lua +++ b/lua/nvim-treesitter/shell_command_selectors.lua @@ -1,6 +1,17 @@ local fn = vim.fn local utils = require "nvim-treesitter.utils" +-- Convert path for cmd.exe on Windows. +-- This is needed when vim.opt.shellslash is in use. +local function cmdpath(p) + if vim.opt.shellslash:get() then + local r = p:gsub("/", "\\") + return r + else + return p + end +end + local M = {} function M.select_mkdir_cmd(directory, cwd, info_msg) @@ -8,7 +19,7 @@ function M.select_mkdir_cmd(directory, cwd, info_msg) return { cmd = "cmd", opts = { - args = { "/C", "mkdir", directory }, + args = { "/C", "mkdir", cmdpath(directory) }, cwd = cwd, }, info = info_msg, @@ -32,7 +43,7 @@ function M.select_rm_file_cmd(file, info_msg) return { cmd = "cmd", opts = { - args = { "/C", "if", "exist", file, "del", file }, + args = { "/C", "if", "exist", cmdpath(file), "del", cmdpath(file) }, }, info = info_msg, err = "Could not delete " .. file, @@ -135,7 +146,7 @@ function M.select_install_rm_cmd(cache_folder, project_name) return { cmd = "cmd", opts = { - args = { "/C", "if", "exist", dir, "rmdir", "/s", "/q", dir }, + args = { "/C", "if", "exist", cmdpath(dir), "rmdir", "/s", "/q", cmdpath(dir) }, }, } else @@ -153,7 +164,7 @@ function M.select_mv_cmd(from, to, cwd) return { cmd = "cmd", opts = { - args = { "/C", "move", "/Y", from, to }, + args = { "/C", "move", "/Y", cmdpath(from), cmdpath(to) }, cwd = cwd, }, } @@ -261,7 +272,7 @@ end function M.make_directory_change_for_command(dir, command) if fn.has "win32" == 1 then - return string.format("pushd %s & %s & popd", dir, command) + return string.format("pushd %s & %s & popd", cmdpath(dir), command) else return string.format("cd %s;\n %s", dir, command) end From 07ff07ae4c7d6f09883ff592f11722050dab5885 Mon Sep 17 00:00:00 2001 From: Attila Tajti Date: Wed, 30 Nov 2022 20:07:51 +0100 Subject: [PATCH 0259/3265] install: fix is_installed checks with shellslash Convert paths to use backslashes on Windows. --- lua/nvim-treesitter/install.lua | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index b0428bd8f..54a813cd4 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -95,6 +95,17 @@ local function get_installed_revision(lang) end end +-- Clean path for use in a prefix comparison +-- @param input string +-- @return string +local function clean_path(input) + local pth = vim.fn.fnamemodify(input, ":p") + if fn.has "win32" == 1 then + pth = pth:gsub("/", "\\") + end + return pth +end + ---Checks if parser is installed with nvim-treesitter ---@param lang string ---@return boolean @@ -104,9 +115,9 @@ local function is_installed(lang) if not install_dir then return false end - install_dir = vim.fn.fnamemodify(install_dir, ":p") + install_dir = clean_path(install_dir) for _, path in ipairs(matched_parsers) do - local abspath = vim.fn.fnamemodify(path, ":p") + local abspath = clean_path(path) if vim.startswith(abspath, install_dir) then return true end From 6ed8a41bd594e14652318650a83442d385b193a9 Mon Sep 17 00:00:00 2001 From: Attila Tajti Date: Wed, 30 Nov 2022 20:42:27 +0100 Subject: [PATCH 0260/3265] utils: respect shellslash setting Use '/' as path separator on Windows when shellslash is set. --- lua/nvim-treesitter/utils.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/utils.lua b/lua/nvim-treesitter/utils.lua index 156ba9c31..c738ee56e 100644 --- a/lua/nvim-treesitter/utils.lua +++ b/lua/nvim-treesitter/utils.lua @@ -13,7 +13,7 @@ end -- Returns the system specific path seperator. ---@return string function M.get_path_sep() - return fn.has "win32" == 1 and "\\" or "/" + return (fn.has "win32" == 1 and not vim.opt.shellslash:get()) and "\\" or "/" end -- Returns a function that joins the given arguments with separator. Arguments From c5d025c467c5c16d37eb24ce3e350a85079c7581 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 15 Dec 2022 08:22:26 +0000 Subject: [PATCH 0261/3265] Update lockfile.json (#3976) Co-authored-by: GitHub --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index f801df1d6..e308053b9 100644 --- a/lockfile.json +++ b/lockfile.json @@ -255,10 +255,10 @@ "revision": "8ad20059c6f128861c4506fff866150ffee1d6f4" }, "ocaml": { - "revision": "cc26b1ef111100f26a137bcbcd39fd4e35be9a59" + "revision": "de07323343946c32759933cb3b7c78e821098cad" }, "ocaml_interface": { - "revision": "cc26b1ef111100f26a137bcbcd39fd4e35be9a59" + "revision": "de07323343946c32759933cb3b7c78e821098cad" }, "ocamllex": { "revision": "ac1d5957e719d49bd6acd27439b79843e4daf8ed" From 818fb3b96b875e46417bb8f9bb412450f2617b66 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Wed, 14 Dec 2022 22:56:43 +0100 Subject: [PATCH 0262/3265] ci: Add name of updated parsers to commit message Fixes #3962 --- .github/workflows/update-lockfile.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-lockfile.yml b/.github/workflows/update-lockfile.yml index c3ea4515c..de70b5704 100644 --- a/.github/workflows/update-lockfile.yml +++ b/.github/workflows/update-lockfile.yml @@ -24,6 +24,9 @@ jobs: wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 mv ./jq-linux64 /tmp/jq chmod +x /tmp/jq + wget https://github.com/josephburnett/jd/releases/download/v1.6.1/jd-amd64-linux + mv ./jd-amd64-linux /tmp/jd + chmod +x /tmp/jd sudo apt install libfuse2 wget https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim.appimage chmod u+x nvim.appimage @@ -34,6 +37,7 @@ jobs: env: SKIP_LOCKFILE_UPDATE_FOR_LANGS: verilog,gleam,nix run: | + cp lockfile.json /tmp/old_lockfile.json ./nvim.appimage --headless -c "luafile ./scripts/write-lockfile.lua" -c "q" # Pretty print cp lockfile.json /tmp/lockfile.json @@ -44,14 +48,15 @@ jobs: git config user.name "GitHub" git config user.email "noreply@github.com" git add lockfile.json - git commit -m "Update lockfile.json" || echo 'No commit necessary!' + UPDATED_PARSERS=$(echo $(/tmp/jd -set /tmp/old_lockfile.json lockfile.json | grep @ | sed 's/","revision"\]//' | sed 's/@ \["//') | sed 's/ /, /g') + echo "UPDATED_PARSERS=$UPDATED_PARSERS" >> $GITHUB_ENV + git commit -m "Update parsers: $UPDATED_PARSERS" || echo 'No commit necessary!' git clean -xf - name: Create Pull Request uses: peter-evans/create-pull-request@v3 with: - commit-message: Update lockfile.json - title: Update lockfile.json + title: "Update lockfile.json: ${{ env.UPDATED_PARSERS }}" branch: update-lockfile-pr base: ${{ github.head_ref }} draft: true From a0dc6c8635a1d4fc700c82f4008414d021d9a6d2 Mon Sep 17 00:00:00 2001 From: Jaehwang Jung Date: Sun, 11 Dec 2022 23:10:33 +0900 Subject: [PATCH 0263/3265] highlights(lua): use @method.call --- queries/lua/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/lua/highlights.scm b/queries/lua/highlights.scm index 48aed0529..1c17d823b 100644 --- a/queries/lua/highlights.scm +++ b/queries/lua/highlights.scm @@ -172,7 +172,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 From 507527711fdd8f701544024aeb1a9a068f986d89 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Wed, 14 Dec 2022 22:27:23 +0100 Subject: [PATCH 0264/3265] feat: allow to set keymappings to `false` Fixes #3954 --- README.md | 2 +- lua/nvim-treesitter/configs.lua | 2 +- lua/nvim-treesitter/incremental_selection.lua | 44 ++++++++++--------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index a3db5d966..d07855710 100644 --- a/README.md +++ b/README.md @@ -366,7 +366,7 @@ require'nvim-treesitter.configs'.setup { incremental_selection = { enable = true, keymaps = { - init_selection = "gnn", + init_selection = "gnn", -- set to `false` to disable one of the mappings node_incremental = "grn", scope_incremental = "grc", node_decremental = "grm", diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index cad4bb788..0b9eaa512 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -57,7 +57,7 @@ local builtin_modules = { module_path = "nvim-treesitter.incremental_selection", enable = false, keymaps = { - init_selection = "gnn", + init_selection = "gnn", -- set to `false` to disable one of the mappings node_incremental = "grn", scope_incremental = "grc", node_decremental = "grm", diff --git a/lua/nvim-treesitter/incremental_selection.lua b/lua/nvim-treesitter/incremental_selection.lua index 5deaaf84e..4d4f2aad6 100644 --- a/lua/nvim-treesitter/incremental_selection.lua +++ b/lua/nvim-treesitter/incremental_selection.lua @@ -130,33 +130,37 @@ local FUNCTION_DESCRIPTIONS = { function M.attach(bufnr) local config = configs.get_module "incremental_selection" for funcname, mapping in pairs(config.keymaps) do - local mode - local rhs - if funcname == "init_selection" then - mode = "n" - rhs = M[funcname] - else - mode = "x" - -- We need to move to command mode to access marks '< (visual area start) and '> (visual area end) which are not - -- properly accessible in visual mode. - rhs = string.format(":lua require'nvim-treesitter.incremental_selection'.%s()", funcname) + if mapping then + local mode + local rhs + if funcname == "init_selection" then + mode = "n" + rhs = M[funcname] + else + mode = "x" + -- We need to move to command mode to access marks '< (visual area start) and '> (visual area end) which are not + -- properly accessible in visual mode. + rhs = string.format(":lua require'nvim-treesitter.incremental_selection'.%s()", funcname) + end + vim.keymap.set( + mode, + mapping, + rhs, + { buffer = bufnr, silent = true, noremap = true, desc = FUNCTION_DESCRIPTIONS[funcname] } + ) end - vim.keymap.set( - mode, - mapping, - rhs, - { buffer = bufnr, silent = true, noremap = true, desc = FUNCTION_DESCRIPTIONS[funcname] } - ) end end function M.detach(bufnr) local config = configs.get_module "incremental_selection" for f, mapping in pairs(config.keymaps) do - if f == "init_selection" then - vim.keymap.del("n", mapping, { buffer = bufnr }) - else - vim.keymap.del("x", mapping, { buffer = bufnr }) + if mapping then + if f == "init_selection" then + vim.keymap.del("n", mapping, { buffer = bufnr }) + else + vim.keymap.del("x", mapping, { buffer = bufnr }) + end end end end From 36c6826274ac85e04558e875a30e82aca676e3fe Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 16 Dec 2022 06:38:27 +0000 Subject: [PATCH 0265/3265] Update parsers: c_sharp, php, sql --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index e308053b9..6579a78c8 100644 --- a/lockfile.json +++ b/lockfile.json @@ -27,7 +27,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "3ef3f7f99e16e528e6689eae44dff35150993307" + "revision": "8e4ec08f1dae1d72f082df0f7e1176772f553d47" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" @@ -273,7 +273,7 @@ "revision": "749d26fe13fb131b92e6515416096e572575b981" }, "php": { - "revision": "680244ac3a8092154125e91145fe8d631cd4583b" + "revision": "47dd3532df8204a444dd6eb042135f1e7964f9cb" }, "phpdoc": { "revision": "2f4d16c861b5a454b577d057f247f9902d7b47f5" @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "a4dd131eeb9fe7f3c9c2ca0f506f6d58d9986a97" + "revision": "8dc7fa0e51145f0312eedbb5aff9945bd967fb8f" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" From 69cbb6c6d3418476c3dc602141c45a8882fba045 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 17 Dec 2022 06:36:31 +0000 Subject: [PATCH 0266/3265] Update parsers: c_sharp, lua --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index 6579a78c8..1f87f319b 100644 --- a/lockfile.json +++ b/lockfile.json @@ -27,7 +27,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "8e4ec08f1dae1d72f082df0f7e1176772f553d47" + "revision": "d83b3c661db34fde4dcd80e79ce1653d4524998d" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" @@ -219,7 +219,7 @@ "revision": "e9948edc41e9e5869af99dddb2b5ff5cc5581af6" }, "lua": { - "revision": "f5e84ffc2b06858401e0d2edf5dce009efbe34b3" + "revision": "0fc89962b7ff5c7d676b8592c1cbce1ceaa806fd" }, "m68k": { "revision": "d097b123f19c6eaba2bf181c05420d88b9fc489d" From f2a5524add2b79cc656956a44b8a00e1ce6742e7 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 17 Dec 2022 11:52:32 +0100 Subject: [PATCH 0267/3265] ci: bump action versions --- .github/workflows/lint.yml | 4 ++-- .github/workflows/test-queries.yml | 6 +++--- .github/workflows/tests.yml | 6 +++--- .github/workflows/update-lockfile.yml | 4 ++-- .github/workflows/update-readme.yml | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8d0bb121f..021d53568 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -10,7 +10,7 @@ jobs: name: Luacheck runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Prepare run: | @@ -25,7 +25,7 @@ jobs: name: StyLua runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Lint with stylua uses: JohnnyMorganz/stylua-action@v1 with: diff --git a/.github/workflows/test-queries.yml b/.github/workflows/test-queries.yml index 738bad9a4..a39190104 100644 --- a/.github/workflows/test-queries.yml +++ b/.github/workflows/test-queries.yml @@ -55,9 +55,9 @@ jobs: NVIM: ${{ matrix.os == 'windows-2022' && 'nvim-win64\\bin\\nvim.exe' || 'nvim' }} ALLOWED_INSTALLATION_FAILURES: ${{ matrix.os == 'windows-2022' && 'rnoweb' }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: ilammy/msvc-dev-cmd@v1 - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 - name: Install and prepare Neovim env: @@ -68,7 +68,7 @@ jobs: - name: Setup Parsers Cache id: parsers-cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ./parser/ diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e8f462119..8e4551bf7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,8 +27,8 @@ jobs: env: CC: ${{ matrix.cc }} steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 - name: Test Dependencies run: | @@ -47,7 +47,7 @@ jobs: - name: Setup Parsers Cache id: parsers-cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ./parser/ diff --git a/.github/workflows/update-lockfile.yml b/.github/workflows/update-lockfile.yml index de70b5704..a42c4e077 100644 --- a/.github/workflows/update-lockfile.yml +++ b/.github/workflows/update-lockfile.yml @@ -13,7 +13,7 @@ jobs: name: Update lockfile runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: ref: master @@ -54,7 +54,7 @@ jobs: git clean -xf - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v4 with: title: "Update lockfile.json: ${{ env.UPDATED_PARSERS }}" branch: update-lockfile-pr diff --git a/.github/workflows/update-readme.yml b/.github/workflows/update-readme.yml index 62f8bd4fc..b8d40a009 100644 --- a/.github/workflows/update-readme.yml +++ b/.github/workflows/update-readme.yml @@ -11,7 +11,7 @@ jobs: name: Update README runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Prepare env: @@ -32,7 +32,7 @@ jobs: git clean -xf - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v4 with: commit-message: Update README title: Update README From 2603f1d4316acb0e569d1cdf04c631e867468e37 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 17 Dec 2022 11:58:10 +0000 Subject: [PATCH 0268/3265] Update parsers: astro --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 1f87f319b..b97880625 100644 --- a/lockfile.json +++ b/lockfile.json @@ -6,7 +6,7 @@ "revision": "c473c09f23b13d9404ec5208fad3eddea89d70f8" }, "astro": { - "revision": "947e93089e60c66e681eba22283f4037841451e7" + "revision": "22697b0e2413464b7abaea9269c5e83a59e39a83" }, "awk": { "revision": "e559793754c60c2cdf00cbb0409842d75f0a41dc" From 225846c5e8a30f70c930535946decf6ef648cc72 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 17 Dec 2022 13:08:06 +0100 Subject: [PATCH 0269/3265] ci: bump stylua action to v2 --- .github/workflows/lint.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 021d53568..71510b1b9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -27,7 +27,8 @@ jobs: steps: - uses: actions/checkout@v3 - name: Lint with stylua - uses: JohnnyMorganz/stylua-action@v1 + uses: JohnnyMorganz/stylua-action@v2 with: token: ${{ secrets.GITHUB_TOKEN }} + version: latest args: --check . From ee095abeac5842943a94a27c0ca75c61e7c614a2 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 17 Dec 2022 17:57:09 +0000 Subject: [PATCH 0270/3265] Update parsers: help --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index b97880625..587c9f9e2 100644 --- a/lockfile.json +++ b/lockfile.json @@ -159,7 +159,7 @@ "revision": "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" }, "help": { - "revision": "ce20f13c3f12506185754888feaae3f2ad54c287" + "revision": "61c75058299f3d1cf565697e4073d7b2cc6a6d6c" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" From a75aded7aeba98a89d018f9a6ae0cad9dfbe7c2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Lito=C5=A1?= <54900518+JosefLitos@users.noreply.github.com> Date: Sat, 17 Dec 2022 22:27:55 +0100 Subject: [PATCH 0271/3265] highlights(java): fix '!',param,global group --- queries/java/highlights.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/queries/java/highlights.scm b/queries/java/highlights.scm index 63cb01237..625c2b5b7 100644 --- a/queries/java/highlights.scm +++ b/queries/java/highlights.scm @@ -20,7 +20,8 @@ name: (identifier) @parameter) (spread_parameter - (variable_declarator) @parameter) ; int... foo + (variable_declarator + name: (identifier) @parameter)) ; int... foo ;; Lambda parameter (inferred_parameters (identifier) @parameter) ; (x,y) -> ... @@ -50,6 +51,7 @@ "&&" "|" "||" +"!" "!=" "==" "*" @@ -109,7 +111,8 @@ ; Fields (field_declaration - declarator: (variable_declarator) @field) + declarator: (variable_declarator + name: (identifier) @field)) (field_access field: (identifier) @field) From 6e37050e50e80e4324202a6b8fbac6c7fb90c546 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 18 Dec 2022 22:04:05 +0000 Subject: [PATCH 0272/3265] Update parsers: swift --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 587c9f9e2..ecc810e3e 100644 --- a/lockfile.json +++ b/lockfile.json @@ -360,7 +360,7 @@ "revision": "52e122ae68b316d3aa960a0a422d3645ba717f42" }, "swift": { - "revision": "693411cb5a1167311ccd84708348281630562726" + "revision": "f94e1d6dd8f4df6c7c8aa07da625e498ebb27d09" }, "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" From 8498ebd49b1ec1c55656eef85604e277cbb12c30 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 20 Dec 2022 06:40:33 +0000 Subject: [PATCH 0273/3265] Update parsers: c_sharp, jsonnet, query --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index ecc810e3e..1033d5854 100644 --- a/lockfile.json +++ b/lockfile.json @@ -27,7 +27,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "d83b3c661db34fde4dcd80e79ce1653d4524998d" + "revision": "f0e31b964d67598da03b54854eb7471f5c2560b5" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" @@ -198,7 +198,7 @@ "revision": "02b01653c8a1c198ae7287d566efa86a135b30d5" }, "jsonnet": { - "revision": "768a384989391237c6d55ff3d878a0d1e0d2b4fa" + "revision": "505f5bd90053ae895aa3d6f2bac8071dd9abd8b2" }, "julia": { "revision": "36b099e9ea577f64ba53323115028dadd2991d2c" @@ -300,7 +300,7 @@ "revision": "0b2b25bcaa7d4925d5f0dda16f6a99c588a437f1" }, "query": { - "revision": "0695cd0760532de7b54f23c667d459b5d1332b44" + "revision": "0717de07078a20a8608c98ad5f26c208949d0e15" }, "r": { "revision": "80efda55672d1293aa738f956c7ae384ecdc31b4" From eedb7b9c69b13afe86461b0742266bb62b811ece Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 20 Dec 2022 08:27:57 +0100 Subject: [PATCH 0274/3265] csharp: update query to parser change --- queries/c_sharp/highlights.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/queries/c_sharp/highlights.scm b/queries/c_sharp/highlights.scm index 3ecdffb6e..ee56f21da 100644 --- a/queries/c_sharp/highlights.scm +++ b/queries/c_sharp/highlights.scm @@ -69,7 +69,6 @@ [ (predefined_type) - (void_keyword) ] @type.builtin (implicit_type) @keyword From ca097525758a1d9a751d07fb7fd045ddfe047c0a Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 21 Dec 2022 06:38:40 +0000 Subject: [PATCH 0275/3265] Update parsers: c_sharp, gdscript, sql --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index 1033d5854..efb6e3ae1 100644 --- a/lockfile.json +++ b/lockfile.json @@ -27,7 +27,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "f0e31b964d67598da03b54854eb7471f5c2560b5" + "revision": "c86fd921a48f517730b2d73bbb5652da65270f6a" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" @@ -108,7 +108,7 @@ "revision": "19db2f47ba4c3a0f6238d4ae0e2abfca16e61dd6" }, "gdscript": { - "revision": "2a6abdaa47fcb91397e09a97c7433fd995ea46c6" + "revision": "a8fa839150d05baaf4d5a472520ee71e9b1d8b3c" }, "git_rebase": { "revision": "127f5b56c1ad3e8a449a7d6e0c7412ead7f7724c" @@ -348,7 +348,7 @@ "revision": "05f949d3c1c15e3261473a244d3ce87777374dec" }, "sql": { - "revision": "8dc7fa0e51145f0312eedbb5aff9945bd967fb8f" + "revision": "8635357363f8b01931ce6abbe0c937aa73e47bf8" }, "supercollider": { "revision": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0" From 87dd482e1a7056fee95891af6ba3e662e766af77 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Wed, 21 Dec 2022 12:22:45 +0100 Subject: [PATCH 0276/3265] fix(health): align the list of parsers when doing checkhealth Some parser names are too long for the given space, which shifts the features so they aren't in line. --- lua/nvim-treesitter/health.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/health.lua b/lua/nvim-treesitter/health.lua index 9501008df..40ec3448e 100644 --- a/lua/nvim-treesitter/health.lua +++ b/lua/nvim-treesitter/health.lua @@ -115,14 +115,14 @@ function M.check() install_health() queries.invalidate_query_cache() -- Parser installation checks - local parser_installation = { "Parser/Features H L F I J" } + local parser_installation = { "Parser/Features" .. string.rep(" ", 9) .. "H L F I J" } for _, parser_name in pairs(info.installed_parsers()) do local installed = #api.nvim_get_runtime_file("parser/" .. parser_name .. ".so", false) -- Only append information about installed parsers if installed >= 1 then local multiple_parsers = installed > 1 and "+" or "" - local out = " - " .. parser_name .. multiple_parsers .. string.rep(" ", 15 - (#parser_name + #multiple_parsers)) + local out = " - " .. parser_name .. multiple_parsers .. string.rep(" ", 20 - (#parser_name + #multiple_parsers)) for _, query_group in pairs(queries.built_in_query_groups) do local status, err = query_status(parser_name, query_group) out = out .. status .. " " From 770c66d43fa26cdf66227ed4ab66bd5fede85c21 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 21 Dec 2022 12:09:14 +0000 Subject: [PATCH 0277/3265] Update parsers: v --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index efb6e3ae1..f6489ab9c 100644 --- a/lockfile.json +++ b/lockfile.json @@ -393,7 +393,7 @@ "revision": "faad9094f4061a43d4e9005439e9e85c6541ebe7" }, "v": { - "revision": "66b92a89ef1e149300df79c0b2a934ad959c8eec" + "revision": "f0aa56eec7689f08a389c90ad8d3e5e0d18b3cd7" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From e8b765bee1f760b0153fb4edf2391ff5d7a85475 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Wed, 21 Dec 2022 14:15:02 +0100 Subject: [PATCH 0278/3265] ci: use builtin jq instead of downloading it --- .github/workflows/update-lockfile.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/update-lockfile.yml b/.github/workflows/update-lockfile.yml index a42c4e077..c95ecf73a 100644 --- a/.github/workflows/update-lockfile.yml +++ b/.github/workflows/update-lockfile.yml @@ -21,9 +21,6 @@ jobs: env: NVIM_TAG: stable run: | - wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 - mv ./jq-linux64 /tmp/jq - chmod +x /tmp/jq wget https://github.com/josephburnett/jd/releases/download/v1.6.1/jd-amd64-linux mv ./jd-amd64-linux /tmp/jd chmod +x /tmp/jd @@ -41,7 +38,7 @@ jobs: ./nvim.appimage --headless -c "luafile ./scripts/write-lockfile.lua" -c "q" # Pretty print cp lockfile.json /tmp/lockfile.json - cat /tmp/lockfile.json | /tmp/jq --sort-keys > lockfile.json + cat /tmp/lockfile.json | jq --sort-keys > lockfile.json - name: Commit changes run: | From d2d8980c5cef0d42aa7a2444d95d3c06fd216720 Mon Sep 17 00:00:00 2001 From: figsoda Date: Thu, 1 Dec 2022 10:38:01 -0500 Subject: [PATCH 0279/3265] injections(yaml): fix injections --- queries/yaml/highlights.scm | 2 +- queries/yaml/injections.scm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/queries/yaml/highlights.scm b/queries/yaml/highlights.scm index 7e3c3a5e6..fb3338eb3 100644 --- a/queries/yaml/highlights.scm +++ b/queries/yaml/highlights.scm @@ -2,7 +2,7 @@ (null_scalar) @constant.builtin (double_quote_scalar) @string (single_quote_scalar) @string -(block_scalar) @string +((block_scalar) @string (#set! "priority" 99)) (string_scalar) @string (escape_sequence) @string.escape (integer_scalar) @number diff --git a/queries/yaml/injections.scm b/queries/yaml/injections.scm index c2b5bf619..40727bbd2 100644 --- a/queries/yaml/injections.scm +++ b/queries/yaml/injections.scm @@ -9,7 +9,7 @@ (block_mapping_pair key: (flow_node) @_run (#any-of? @_run "run" "script" "before_script" "after_script") value: (block_node - (block_scalar) @bash (#offset! @bash 0 0 0 0))) + (block_scalar) @bash (#offset! @bash 0 1 0 0))) (block_mapping_pair key: (flow_node) @_run (#any-of? @_run "run" "script" "before_script" "after_script") @@ -24,4 +24,4 @@ (block_sequence (block_sequence_item (block_node - (block_scalar) @bash))))) + (block_scalar) @bash (#offset! @bash 0 1 0 0)))))) From 51df4212e7ae76d324ca406197185d913163e1ae Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 21 Dec 2022 22:38:59 +0000 Subject: [PATCH 0280/3265] Update parsers: c_sharp --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index f6489ab9c..5320ab7ff 100644 --- a/lockfile.json +++ b/lockfile.json @@ -27,7 +27,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "c86fd921a48f517730b2d73bbb5652da65270f6a" + "revision": "b5f3edbf6b98ad8519445a69df6c2142336ba6c7" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" From 2d48cbc831dcfc4ccce4380467d82e908effd0ee Mon Sep 17 00:00:00 2001 From: xasc Date: Sun, 6 Nov 2022 17:44:50 +0100 Subject: [PATCH 0281/3265] feat(t32): initial support --- lockfile.json | 3 + lua/nvim-treesitter/parsers.lua | 13 +++ queries/t32/folds.scm | 1 + queries/t32/highlights.scm | 141 ++++++++++++++++++++++++ queries/t32/injections.scm | 1 + queries/t32/locals.scm | 35 ++++++ tests/query/highlights/t32/comments.cmm | 10 ++ tests/query/highlights/t32/keywords.cmm | 103 +++++++++++++++++ tests/query/highlights/t32/literals.cmm | 37 +++++++ tests/query/highlights/t32/var.cmm | 27 +++++ 10 files changed, 371 insertions(+) create mode 100644 queries/t32/folds.scm create mode 100644 queries/t32/highlights.scm create mode 100644 queries/t32/injections.scm create mode 100644 queries/t32/locals.scm create mode 100644 tests/query/highlights/t32/comments.cmm create mode 100644 tests/query/highlights/t32/keywords.cmm create mode 100644 tests/query/highlights/t32/literals.cmm create mode 100644 tests/query/highlights/t32/var.cmm diff --git a/lockfile.json b/lockfile.json index 5320ab7ff..18f9e4b57 100644 --- a/lockfile.json +++ b/lockfile.json @@ -365,6 +365,9 @@ "sxhkdrc": { "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" }, + "t32": { + "revision": "20fe21a5a4eb79e1788f6424dcc6a1f2bd023ffa" + }, "teal": { "revision": "1ae8c68e90523b26b93af56feb7868fe4214e2b2" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 0246cde81..d0ef4a97a 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1206,6 +1206,19 @@ list.tiger = { maintainers = { "@ambroisie" }, } +list.t32 = { + install_info = { + url = "https://codeberg.org/xasc/tree-sitter-t32", + files = { "src/parser.c", "src/scanner.c" }, + branch = "main", + revision = "675cd7de4eb80f2faa1e6d3bc9ee195fa9ef9790", + generate_requires_npm = false, + requires_generate_from_grammar = false, + }, + filetype = "t32", + maintainers = { "@xasc" }, +} + list.sxhkdrc = { install_info = { url = "https://github.com/RaafatTurki/tree-sitter-sxhkdrc", diff --git a/queries/t32/folds.scm b/queries/t32/folds.scm new file mode 100644 index 000000000..fd7d23999 --- /dev/null +++ b/queries/t32/folds.scm @@ -0,0 +1 @@ +(block) @fold diff --git a/queries/t32/highlights.scm b/queries/t32/highlights.scm new file mode 100644 index 000000000..9fd1816ba --- /dev/null +++ b/queries/t32/highlights.scm @@ -0,0 +1,141 @@ +[ + "=" + "^^" + "||" + "&&" + "+" + "-" + "*" + "/" + "%" + "|" + "^" + "==" + "!=" + ">" + ">=" + "<=" + "<" + "<<" + ">>" + ".." + "--" + "++" + "+" + "-" + "~" + "!" + "&" + "->" + "*" +] @operator + +[ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +[ + "," + "." + ";" +] @punctuation.delimiter + +[ + (access_class) + (address) + (bitmask) + (file_handle) + (frequency) + (integer) + (percentage) + (time) +] @number + +(float) @float + +(string) @string + +(path) @string.special + +(symbol) @symbol + +(character) @character + +; Commands +(command_expression + command: (identifier) @keyword) +(macro_definition + command: (identifier) @keyword) + +; Returns +( + (command_expression + command: (identifier) @keyword.return) + (#match? @keyword.return "^[eE][nN][dD]([dD][oO])?$") +) +( + (command_expression + command: (identifier) @keyword.return) + (#match? @keyword.return "^[rR][eE][tT][uU][rR][nN]$") +) + +; Subroutine calls +(subroutine_call_expression + command: (identifier) @keyword + subroutine: (identifier) @function.call) + +; Variables, constants and labels +(macro) @variable.builtin +(internal_c_variable) @variable.builtin + +(argument_list + (identifier) @constant) +( + (argument_list (identifier) @constant.builtin) + (#match? @constant.builtin "^[%/][a-zA-Z][a-zA-Z0-9.]*$") +) + +( + (command_expression + command: (identifier) @keyword + arguments: (argument_list . (identifier) @label)) + (#match? @keyword "^[gG][oO][tT][oO]$") +) +(labeled_expression + label: (identifier) @label) + +; Subroutine blocks +(subroutine_block + command: (identifier) @keyword + subroutine: (identifier) @function) + +(labeled_expression + label: (identifier) @function + (block)) + +; Parameter declarations +(parameter_declaration + command: (identifier) @keyword + macro: (macro) @parameter) + +; Control flow +(if_block + command: (identifier) @conditional) +(else_block + command: (identifier) @conditional) + +(while_block + command: (identifier) @repeat) +(repeat_block + command: (identifier) @repeat) + +(call_expression + function: (identifier) @function.builtin) + +(type_identifier) @type +(comment) @comment @spell diff --git a/queries/t32/injections.scm b/queries/t32/injections.scm new file mode 100644 index 000000000..4bb7d675d --- /dev/null +++ b/queries/t32/injections.scm @@ -0,0 +1 @@ +(comment) @comment diff --git a/queries/t32/locals.scm b/queries/t32/locals.scm new file mode 100644 index 000000000..dd03b4246 --- /dev/null +++ b/queries/t32/locals.scm @@ -0,0 +1,35 @@ +(block) @scope + +; Parameter definitions +(parameter_declaration + command: (identifier) + macro: (macro) @definition.parameter) + +; Variable definitions +(macro_definition + command: (identifier) + macro: (macro) @definition.var) + +(command_expression + command: (identifier) + arguments: (argument_list + variable: (identifier) @definition.var)) + +; Function definitions +(subroutine_block + command: (identifier) + subroutine: (identifier) @definition.function) + +(labeled_expression + label: (identifier) @definition.function + (block)) + +; References +( + (subroutine_call_expression + command: (identifier) + subroutine: (identifier) @reference) + (set! reference.kind "function") +) + +(macro) @reference diff --git a/tests/query/highlights/t32/comments.cmm b/tests/query/highlights/t32/comments.cmm new file mode 100644 index 000000000..0bab130f6 --- /dev/null +++ b/tests/query/highlights/t32/comments.cmm @@ -0,0 +1,10 @@ +// This is a comment +; <- comment + +; Another comment +; <- comment + +ECHO &a // This is a trailing comment +; ^ comment + +// vim: set ft=t32: diff --git a/tests/query/highlights/t32/keywords.cmm b/tests/query/highlights/t32/keywords.cmm new file mode 100644 index 000000000..e9eb0e37f --- /dev/null +++ b/tests/query/highlights/t32/keywords.cmm @@ -0,0 +1,103 @@ +PRIVATE &password +; <- keyword +; ^ variable.builtin +ENTRY &password +; <- keyword +; ^ parameter + +IF "&password"=="" +; <- conditional +; ^ string +; ^ variable.builtin +; ^ operator +( + ECHO "Failed to provide password." + ENDDO +; ^ keyword.return +) +ELSE +; <- conditional +( + PRIVATE &pass + + &pass=FALSE() +; ^ function.builtin + WHILE !&pass +; ^ operator + ( + GOSUB verify_password "&password" +; ^ function.call + RETURNVALUES &pass +; ^ parameter + WAIT 10.ms +; ^ number + ) + + IF !&pass + GOTO fail +; ^ label + ELSE + ( + GOSUB start_debug +; ^ function.call + ) +) + +LOCAL &num +; ^ variable.builtin + +&num = 2. +; ^ number + +RePeaT &num PRINT "Password: &password" +; ^ variable.builtin +; ^ variable.builtin + +WinCLEAR +FramePOS ,,,,Maximized +; ^ punctuation.delimiter +; ^ constant +WinPOS 0% 50% 100% 35% +; ^ number +COVerage.ListFunc + +ENDDO + + +fail: +; <- label + PRINT %ERROR "Password verification failed." + END +; ^ keyword.return + + +verify_password: +; <- function +( + PARAMETERS &password +; ^ parameter + + SYStem.Option.KEYCODE "&password" + SYStem.JtagClock 1kHz +; ^ number + SYStem.Mode.Attach + + Data.Set EAXI:0x34000000 %Long 0x34000100 0x34000021 /verify +; ^ number +; ^ constant.builtin +; ^ constant + + RETURN TRUE() +; ^ keyword.return +) + + +SUBROUTINE start_debug +; ^ function +( + Go main + RETURN +; ^ keyword.return +) + +// vim: set ft=t32: diff --git a/tests/query/highlights/t32/literals.cmm b/tests/query/highlights/t32/literals.cmm new file mode 100644 index 000000000..f63348490 --- /dev/null +++ b/tests/query/highlights/t32/literals.cmm @@ -0,0 +1,37 @@ +WinPOS ,,1000.,,,,myWatchWindow +; ^ number + +PRinTer.OPEN "~~~/varwatch.txt" ASCIIE +; ^ string + +sYmbol.NEW _InitialSP 0x34000100 +; ^ number + +DO ~~~~/test.cmm +; ^ string.special + +WAIT 1.ns +; ^ number + +SYStem.JtagClock 100.GHZ +; ^ number + +DATA.SET P:&HEAD+0x4 %LONG DATA.LONG(EA:&HEAD+0x4)&0xFFFFFF +; ^ number + +List `main` +; ^ symbol + +&range = 'a'--'z'||'0'--'9' +; ^ character +; ^ operator +; ^ character + +Data.Set 0xffff800000 0y0011xx01xx&&a +; ^ number +; ^ operator + +WinPOS 0% 85% 100% 15% +; ^ number + +// vim: set ft=t32: diff --git a/tests/query/highlights/t32/var.cmm b/tests/query/highlights/t32/var.cmm new file mode 100644 index 000000000..a2d6f9b2a --- /dev/null +++ b/tests/query/highlights/t32/var.cmm @@ -0,0 +1,27 @@ +Var.NEWGLOBAL char[4][32] \myarr +; <- keyword +; ^ type +; ^ variable.builtin +LOCAL &i &data + +&data="zero|one|two|three" + +&i=0. +WHILE &i<4 +( + PRIVATE &val + &val=STRing.SPLIT("&data","|",&i) + Var.Assign \myarr[&i]="&val" +; ^ variable.builtin + &i=&i+1. +) + +Var.NEWLOCAL \x +; <- keyword +; ^ variable.builtin +Var.set \x=func3(5,3) +; ^ variable.builtin +PRINT Var.VALUE(\x) +; ^ variable.builtin + +// vim: set ft=t32: From 9efc2dffc3367e0c724b628675ca7cac13357dc6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 21 Dec 2022 22:48:57 +0000 Subject: [PATCH 0282/3265] Update parsers: c_sharp --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 18f9e4b57..9ae81de91 100644 --- a/lockfile.json +++ b/lockfile.json @@ -27,7 +27,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "b5f3edbf6b98ad8519445a69df6c2142336ba6c7" + "revision": "44630a63192399da9e17f9105e0fa53412d78961" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" From 38845442b715278fb848c8202d1345d9d0b10aa7 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 21 Dec 2022 22:58:22 +0000 Subject: [PATCH 0283/3265] Update parsers: c_sharp, t32 --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 9ae81de91..998a1a497 100644 --- a/lockfile.json +++ b/lockfile.json @@ -366,7 +366,7 @@ "revision": "440d5f913d9465c9c776a1bd92334d32febcf065" }, "t32": { - "revision": "20fe21a5a4eb79e1788f6424dcc6a1f2bd023ffa" + "revision": "f8106fcf5a27f905b3d9d55d9cd3e910bea70c60" }, "teal": { "revision": "1ae8c68e90523b26b93af56feb7868fe4214e2b2" From 779b4222a3734c165295c146b39351508822735c Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 28 Nov 2022 23:29:45 +0100 Subject: [PATCH 0284/3265] injections(go): inject regex into some regexp functions --- queries/go/injections.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/queries/go/injections.scm b/queries/go/injections.scm index 4bb7d675d..e0bdc99b9 100644 --- a/queries/go/injections.scm +++ b/queries/go/injections.scm @@ -1 +1,13 @@ (comment) @comment + +(call_expression + (selector_expression) @_function (#any-of? @_function + "regexp.Match" + "regexp.MatchReader" + "regexp.MatchString" + "regexp.Compile" + "regexp.CompilePOSIX" + "regexp.MustCompile" + "regexp.MustCompilePOSIX") + (argument_list + . [(raw_string_literal) (interpreted_string_literal)] @regex (#offset! @regex 0 1 0 -1))) From 23906e8838da6793effc46aaf52f82607d56c6d6 Mon Sep 17 00:00:00 2001 From: Emmanuel Briot Date: Wed, 14 Dec 2022 15:59:24 +0100 Subject: [PATCH 0285/3265] feat: add Ada --- README.md | 1 + lockfile.json | 3 + lua/nvim-treesitter/parsers.lua | 10 ++ queries/ada/folds.scm | 13 +++ queries/ada/highlights.scm | 179 ++++++++++++++++++++++++++++++++ queries/ada/locals.scm | 33 ++++++ 6 files changed, 239 insertions(+) create mode 100644 queries/ada/folds.scm create mode 100644 queries/ada/highlights.scm create mode 100644 queries/ada/locals.scm diff --git a/README.md b/README.md index d07855710..40aa11d6a 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ We are looking for maintainers to add more parsers and to write query files for +- [x] [ada](https://github.com/briot/tree-sitter-ada) (maintained by @briot) - [x] [agda](https://github.com/AusCyberman/tree-sitter-agda) (maintained by @Decodetalkers) - [x] [arduino](https://github.com/ObserverOfTime/tree-sitter-arduino) (maintained by @ObserverOfTime) - [x] [astro](https://github.com/virchau13/tree-sitter-astro) (maintained by @virchau13) diff --git a/lockfile.json b/lockfile.json index 998a1a497..b03afb585 100644 --- a/lockfile.json +++ b/lockfile.json @@ -1,4 +1,7 @@ { + "ada": { + "revision": "0210164cce71a6b6010ab24fb4fe77693469db14" + }, "agda": { "revision": "80ea622cf952a0059e168e5c92a798b2f1925652" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index d0ef4a97a..04a4cea66 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -60,6 +60,16 @@ local list = setmetatable({}, { end, }) +list.ada = { + install_info = { + url = "https://github.com/briot/tree-sitter-ada", + branch = "master", + files = { "src/parser.c" }, + }, + filetype = "ada", + maintainers = { "@briot" }, +} + list.agda = { install_info = { url = "https://github.com/AusCyberman/tree-sitter-agda", diff --git a/queries/ada/folds.scm b/queries/ada/folds.scm new file mode 100644 index 000000000..f6f908483 --- /dev/null +++ b/queries/ada/folds.scm @@ -0,0 +1,13 @@ +;; Support for folding in Ada +;; za toggles folding a package, subprogram, if statement or loop + +[ + (package_specification) + (package_body) + (subprogram_body) + (block_statement) + (if_statement) + (loop_statement) + (gnatprep_declarative_if_statement) + (gnatprep_if_statement) +] @fold diff --git a/queries/ada/highlights.scm b/queries/ada/highlights.scm new file mode 100644 index 000000000..0adb377ab --- /dev/null +++ b/queries/ada/highlights.scm @@ -0,0 +1,179 @@ +;; highlight queries. +;; See the syntax at https://tree-sitter.github.io/tree-sitter/using-parsers#pattern-matching-with-queries +;; See also https://github.com/nvim-treesitter/nvim-treesitter/blob/master/CONTRIBUTING.md#parser-configurations +;; for a list of recommended @ tags, though not all of them have matching +;; highlights in neovim. + +[ + "abort" + "abs" + "abstract" + "accept" + "access" + "all" + "array" + "at" + "begin" + "declare" + "delay" + "delta" + "digits" + "do" + "end" + "entry" + "exit" + "generic" + "interface" + "is" + "limited" + "null" + "of" + "others" + "out" + "pragma" + "private" + "range" + "synchronized" + "tagged" + "task" + "terminate" + "until" + "when" +] @keyword +[ + "aliased" + "constant" + "renames" +] @storageclass +[ + "mod" + "new" + "protected" + "record" + "subtype" + "type" +] @keyword.type +[ + "with" + "use" +] @include +[ + "body" + "function" + "overriding" + "procedure" + "package" + "separate" +] @keyword.function +[ + "and" + "in" + "not" + "or" + "xor" +] @keyword.operator +[ + "while" + "loop" + "for" + "parallel" + "reverse" + "some" +] @repeat +[ + "return" +] @keyword.return +[ + "case" + "if" + "else" + "then" + "elsif" + "select" +] @conditional +[ + "exception" + "raise" +] @exception +(comment) @comment +(comment) @spell ;; spell-check comments +(string_literal) @string +(string_literal) @spell ;; spell-check strings +(character_literal) @string +(numeric_literal) @number + +;; Highlight the name of subprograms +(procedure_specification name: (_) @function) +(function_specification name: (_) @function) +(package_specification name: (_) @function) +(package_body name: (_) @function) +(generic_instantiation name: (_) @function) + +;; Some keywords should take different categories depending on the context +(use_clause "use" @include "type" @include) +(with_clause "private" @include) +(with_clause "limited" @include) +(use_clause (_) @namespace) +(with_clause (_) @namespace) + +(loop_statement "end" @keyword.repeat) +(if_statement "end" @conditional) +(loop_parameter_specification "in" @keyword.repeat) +(loop_parameter_specification "in" @keyword.repeat) +(iterator_specification ["in" "of"] @keyword.repeat) +(range_attribute_designator "range" @keyword.repeat) + +(raise_statement "with" @exception) + +(gnatprep_declarative_if_statement) @preproc +(gnatprep_if_statement) @preproc +(gnatprep_identifier) @preproc + +(subprogram_declaration "is" @keyword.function "abstract" @keyword.function) +(aspect_specification "with" @keyword.function) + +(full_type_declaration "is" @keyword.type) +(subtype_declaration "is" @keyword.type) +(record_definition "end" @keyword.type) +(full_type_declaration (_ "access" @keyword.type)) +(array_type_definition "array" @keyword.type "of" @keyword.type) +(access_to_object_definition "access" @keyword.type) +(access_to_object_definition "access" @keyword.type + [ + (general_access_modifier "constant" @keyword.type) + (general_access_modifier "all" @keyword.type) + ] +) +(range_constraint "range" @keyword.type) +(signed_integer_type_definition "range" @keyword.type) +(index_subtype_definition "range" @keyword.type) +(record_type_definition "abstract" @keyword.type) +(record_type_definition "tagged" @keyword.type) +(record_type_definition "limited" @keyword.type) +(record_type_definition (record_definition "null" @keyword.type)) +(private_type_declaration "is" @keyword.type "private" @keyword.type) +(private_type_declaration "tagged" @keyword.type) +(private_type_declaration "limited" @keyword.type) +(task_type_declaration "task" @keyword.type "is" @keyword.type) + +;; Gray the body of expression functions +(expression_function_declaration + (function_specification) + "is" + (_) @attribute +) +(subprogram_declaration (aspect_specification) @attribute) + +;; Highlight full subprogram specifications +;(subprogram_body +; [ +; (procedure_specification) +; (function_specification) +; ] @function.spec +;) + +;; Highlight errors in red. This is not very useful in practice, as text will +;; be highlighted as user types, and the error could be elsewhere in the code. +;; This also requires defining :hi @error guifg=Red for instance. +(ERROR) @error + diff --git a/queries/ada/locals.scm b/queries/ada/locals.scm new file mode 100644 index 000000000..a1460153c --- /dev/null +++ b/queries/ada/locals.scm @@ -0,0 +1,33 @@ +;; Better highlighting by referencing to the definition, for variable +;; references. However, this is not yet supported by neovim +;; See https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables + +(compilation) @scope +(package_specification) @scope +(package_body) @scope +(subprogram_declaration) @scope +(subprogram_body) @scope +(block_statement) @scope + +(with_clause (identifier) @definition.import) +(procedure_specification name: (_) @definition.function) +(function_specification name: (_) @definition.function) +(package_specification name: (_) @definition.var) +(package_body name: (_) @definition.var) +(generic_instantiation . name: (_) @definition.var) +(component_declaration . (identifier) @definition.var) +(exception_declaration . (identifier) @definition.var) +(formal_object_declaration . (identifier) @definition.var) +(object_declaration . (identifier) @definition.var) +(parameter_specification . (identifier) @definition.var) +(full_type_declaration . (identifier) @definition.type) +(private_type_declaration . (identifier) @definition.type) +(private_extension_declaration . (identifier) @definition.type) +(incomplete_type_declaration . (identifier) @definition.type) +(protected_type_declaration . (identifier) @definition.type) +(formal_complete_type_declaration . (identifier) @definition.type) +(formal_incomplete_type_declaration . (identifier) @definition.type) +(task_type_declaration . (identifier) @definition.type) +(subtype_declaration . (identifier) @definition.type) + +(identifier) @reference From 6f9e5cdba77ff735e8a4b8a9022b23292a41ba95 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 22 Dec 2022 13:47:43 +0000 Subject: [PATCH 0286/3265] Update parsers: ada, c_sharp --- lockfile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lockfile.json b/lockfile.json index b03afb585..20e7c6885 100644 --- a/lockfile.json +++ b/lockfile.json @@ -1,6 +1,6 @@ { "ada": { - "revision": "0210164cce71a6b6010ab24fb4fe77693469db14" + "revision": "e9e2ec9d3b6302e9b455901bec00036e29d1c121" }, "agda": { "revision": "80ea622cf952a0059e168e5c92a798b2f1925652" @@ -30,7 +30,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "44630a63192399da9e17f9105e0fa53412d78961" + "revision": "0588adfffbec65dfb2bd845c84d35127932d930b" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" From eaeedfb80419e8145760d95d1840996a2746af7c Mon Sep 17 00:00:00 2001 From: Lucario387 Date: Sat, 17 Dec 2022 12:27:14 +0900 Subject: [PATCH 0287/3265] Fix vue injection queries --- queries/vue/injections.scm | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/queries/vue/injections.scm b/queries/vue/injections.scm index 34949ea29..36e3286e1 100644 --- a/queries/vue/injections.scm +++ b/queries/vue/injections.scm @@ -1,4 +1,35 @@ -; inherits: html_tags +( + (style_element + (start_tag) @_no_lang + (raw_text) @css) + (#not-contains? @_no_lang "lang=") +) + +( + (style_element + (start_tag + (attribute + (quoted_attribute_value (attribute_value) @_lang))) + (raw_text) @css) + (#eq? @_lang "css") +) + +; if start_tag does not specify `lang="..."` then set it to javascript +( + (script_element + (start_tag) @_no_lang + (raw_text) @javascript) + (#not-contains? @_no_lang "lang=") +) + +( + (script_element + (start_tag + (attribute + (quoted_attribute_value (attribute_value) @_lang))) + (raw_text) @javascript) + (#eq? @_lang "js") +) ( (style_element @@ -15,7 +46,7 @@ (attribute (quoted_attribute_value (attribute_value) @_lang))) (raw_text) @typescript) - (#any-of? @_lang "ts" "typescript") + (#eq? @_lang "ts") ) ((interpolation From 895d4a1202f36df561ba032c93b9deb72e1edee8 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 22 Dec 2022 21:42:38 +0000 Subject: [PATCH 0288/3265] Update parsers: c_sharp --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 20e7c6885..1c691db18 100644 --- a/lockfile.json +++ b/lockfile.json @@ -30,7 +30,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "0588adfffbec65dfb2bd845c84d35127932d930b" + "revision": "4f729938e8e368182dfa55c11743e49f4f8549cd" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" From 82cff67988b36450caefb557414ef697a83a58af Mon Sep 17 00:00:00 2001 From: "Sergio A. Vargas" Date: Fri, 23 Dec 2022 04:34:24 -0500 Subject: [PATCH 0289/3265] julia: update parser and highlights (#4016) - Replace `scoped_identifier` with `field_expression` in function names - Replace true and false with `boolean_literal` --- lockfile.json | 2 +- queries/julia/highlights.scm | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lockfile.json b/lockfile.json index 1c691db18..81e9cb850 100644 --- a/lockfile.json +++ b/lockfile.json @@ -204,7 +204,7 @@ "revision": "505f5bd90053ae895aa3d6f2bac8071dd9abd8b2" }, "julia": { - "revision": "36b099e9ea577f64ba53323115028dadd2991d2c" + "revision": "f254ff9c52e994f629a60821662917d2c6c0e8eb" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index 5e4922e14..89840dafe 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -30,9 +30,9 @@ name: (identifier) @function) (function_definition - name: (scoped_identifier (identifier) @function .)) + name: (field_expression (identifier) @function .)) (short_function_definition - name: (scoped_identifier (identifier) @function .)) + name: (field_expression (identifier) @function .)) ;; calls @@ -191,11 +191,7 @@ ;;; Literals -[ - (true) - (false) -] @boolean - +(boolean_literal) @boolean (integer_literal) @number (float_literal) @float From 7f7b5778ffbb7185e29f357082845bef9ecce5de Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Dec 2022 09:44:32 +0000 Subject: [PATCH 0290/3265] Update parsers: c_sharp (#4019) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 81e9cb850..10253c5a3 100644 --- a/lockfile.json +++ b/lockfile.json @@ -30,7 +30,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "4f729938e8e368182dfa55c11743e49f4f8549cd" + "revision": "530d86abae6ea264bf19ae347ad250b1b4bb81a7" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" From a851cef248f8a69fa644b04bba0cc308c632de63 Mon Sep 17 00:00:00 2001 From: figsoda Date: Mon, 28 Nov 2022 19:33:17 -0500 Subject: [PATCH 0291/3265] injections(nix): fix runCommand* --- queries/nix/injections.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/queries/nix/injections.scm b/queries/nix/injections.scm index 3b32b0eae..9765033a4 100644 --- a/queries/nix/injections.scm +++ b/queries/nix/injections.scm @@ -28,13 +28,13 @@ (#match? @_path "^text$")) (apply_expression - (apply_expression - function: (apply_expression function: (_) @_func) - argument: [ - (string_expression (string_fragment) @bash) - (indented_string_expression (string_fragment) @bash) - ]) - (#match? @_func "(^|\\.)runCommand(((No)?CC)?(Local)?)?$")) + function: (apply_expression + function: (apply_expression function: (_) @_func)) + argument: [ + (string_expression (string_fragment) @bash) + (indented_string_expression (string_fragment) @bash) + ] + (#match? @_func "(^|\\.)runCommand((No)?CC)?(Local)?$")) ((apply_expression function: (apply_expression function: (_) @_func) From df67a47a7e68c6df045e5a51ca87bca383891f1e Mon Sep 17 00:00:00 2001 From: figsoda Date: Mon, 28 Nov 2022 20:19:27 -0500 Subject: [PATCH 0292/3265] highlights(nix): improve highlights --- queries/nix/highlights.scm | 148 ++++++++++++++++++++++++++++++------- 1 file changed, 120 insertions(+), 28 deletions(-) diff --git a/queries/nix/highlights.scm b/queries/nix/highlights.scm index 3885d5d90..94ff7b2f1 100644 --- a/queries/nix/highlights.scm +++ b/queries/nix/highlights.scm @@ -1,22 +1,26 @@ ; basic keywords [ - ("assert") - ("with") - ("let") - ("in") - ("rec") - ("inherit") + "assert" + "in" + "inherit" + "let" + "rec" + "with" ] @keyword +; these are technically functions but they act more like keywords (abort and throw are control flow, derivation is a core language construct) +((identifier) @keyword + (#any-of? @keyword "abort" "derivation" "throw")) + ; if/then/else [ - ("if") - ("then") - ("else") + "if" + "then" + "else" ] @conditional ; field access default (`a.b or c`) -("or") @keyword.operator +"or" @keyword.operator ; comments (comment) @comment @@ -48,10 +52,9 @@ ] @punctuation.bracket ; `?` in `{ x ? y }:`, used to set defaults for named function arguments -; I'm not really sure what group this should go in, but it should probably have highlighting, so I'm putting it in @punctuation.special (formal name: (identifier) @parameter - "?"? @punctuation.special) + "?"? @operator) ; `...` in `{ ... }`, used to ignore unknown named function arguments (see above) (ellipses) @punctuation.special @@ -62,33 +65,122 @@ universal: (identifier) @parameter ":" @punctuation.special) +; function calls +(apply_expression + function: (variable_expression + name: (identifier) @function.call)) + ; basic identifiers (variable_expression) @variable ; builtin functions -((identifier) @_i (#match? @_i "^(builtins|baseNameOf|dirOf|fetchTarball|map|removeAttrs|toString)$")) @variable.builtin +; modified from `nix __dump-builtins | jq keys` +((identifier) @function.builtin (#any-of? @function.builtin + "add" + "all" + "any" + "attrNames" + "attrValues" + "baseNameOf" + "bitAnd" + "bitOr" + "bitXor" + "break" + "catAttrs" + "ceil" + "compareVersions" + "concatLists" + "concatMap" + "concatStringsSep" + "deepSeq" + "dirOf" + "div" + "elem" + "elemAt" + "fetchClosure" + "fetchGit" + "fetchTarball" + "fetchurl" + "filter" + "filterSource" + "floor" + "foldl'" + "fromJSON" + "functionArgs" + "genList" + "genericClosure" + "getAttr" + "getEnv" + "getFlake" + "groupBy" + "hasAttr" + "hashFile" + "hashString" + "head" + "intersectAttrs" + "isAttrs" + "isBool" + "isFloat" + "isFunction" + "isInt" + "isList" + "isNull" + "isPath" + "isString" + "length" + "lessThan" + "listToAttrs" + "map" + "mapAttrs" + "match" + "mul" + "parseDrvName" + "partition" + "path" + "pathExists" + "placeholder" + "readDir" + "readFile" + "removeAttrs" + "replaceStrings" + "seq" + "sort" + "split" + "splitVersion" + "storePath" + "stringLength" + "sub" + "substring" + "tail" + "toFile" + "toJSON" + "toPath" + "toString" + "toXML" + "trace" + "traceVerbose" + "tryEval" + "typeOf" + "zipAttrsWith" +)) -; display entire builtins path as builtin (ex. `builtins.filter` is highlighted as one long builtin) -(select_expression - expression: ((variable_expression) @_i (#eq? @_i "builtins")) - attrpath: (attrpath attr: (identifier) @variable.builtin)) @variable.builtin - -; import -((identifier) @_i (#eq? @_i "import")) @include - -; null -((identifier) @_i (#eq? @_i "import")) @constant.builtin - -; these are technically functions but they act more like keywords (abort and throw are control flow, derivation is a core language construct) -((identifier) @_i (#match? @_i "^(abort|derivation|throw)$")) @keyword +((identifier) @include (#eq? @include "import")) ; booleans -((identifier) @_i (#match? @_i "^(true|false)$")) @boolean +((identifier) @boolean (#any-of? @boolean "true" "false")) + +; constants +((identifier) @constant.builtin (#any-of? @constant.builtin "builtins" "null")) ; string interpolation (this was very annoying to get working properly) (interpolation "${" @punctuation.special (_) "}" @punctuation.special) @none -; fields (the `.` in `a.b = c;` isn't included) +; display entire builtins path as builtin (ex. `builtins.filter` is highlighted as one long builtin) +(select_expression + expression: ((variable_expression) @_i (#eq? @_i "builtins")) + attrpath: (attrpath attr: (identifier) @function.builtin)) + +(select_expression attrpath: (attrpath attr: (identifier) @field)) (attrset_expression (binding_set (binding . (attrpath (identifier) @field)))) (rec_attrset_expression (binding_set (binding . (attrpath (identifier) @field)))) From 90edaba46a1cd411d9a67794bfdaa64f004e1ed1 Mon Sep 17 00:00:00 2001 From: figsoda Date: Wed, 30 Nov 2022 10:19:53 -0500 Subject: [PATCH 0293/3265] highlights(nix): add all builtins --- queries/nix/highlights.scm | 115 ++++++------------------------------- 1 file changed, 16 insertions(+), 99 deletions(-) diff --git a/queries/nix/highlights.scm b/queries/nix/highlights.scm index 94ff7b2f1..e60091436 100644 --- a/queries/nix/highlights.scm +++ b/queries/nix/highlights.scm @@ -73,114 +73,31 @@ ; basic identifiers (variable_expression) @variable -; builtin functions -; modified from `nix __dump-builtins | jq keys` -((identifier) @function.builtin (#any-of? @function.builtin - "add" - "all" - "any" - "attrNames" - "attrValues" - "baseNameOf" - "bitAnd" - "bitOr" - "bitXor" - "break" - "catAttrs" - "ceil" - "compareVersions" - "concatLists" - "concatMap" - "concatStringsSep" - "deepSeq" - "dirOf" - "div" - "elem" - "elemAt" - "fetchClosure" - "fetchGit" - "fetchTarball" - "fetchurl" - "filter" - "filterSource" - "floor" - "foldl'" - "fromJSON" - "functionArgs" - "genList" - "genericClosure" - "getAttr" - "getEnv" - "getFlake" - "groupBy" - "hasAttr" - "hashFile" - "hashString" - "head" - "intersectAttrs" - "isAttrs" - "isBool" - "isFloat" - "isFunction" - "isInt" - "isList" - "isNull" - "isPath" - "isString" - "length" - "lessThan" - "listToAttrs" - "map" - "mapAttrs" - "match" - "mul" - "parseDrvName" - "partition" - "path" - "pathExists" - "placeholder" - "readDir" - "readFile" - "removeAttrs" - "replaceStrings" - "seq" - "sort" - "split" - "splitVersion" - "storePath" - "stringLength" - "sub" - "substring" - "tail" - "toFile" - "toJSON" - "toPath" - "toString" - "toXML" - "trace" - "traceVerbose" - "tryEval" - "typeOf" - "zipAttrsWith" -)) - ((identifier) @include (#eq? @include "import")) - -; booleans ((identifier) @boolean (#any-of? @boolean "true" "false")) +; builtin functions +((identifier) @function.builtin (#any-of? @function.builtin + ; nix eval --impure --expr 'with builtins; filter (x: x != "import" && isFunction builtins.${x}) (attrNames builtins)' + "abort" "add" "addErrorContext" "all" "any" "appendContext" "attrNames" "attrValues" "baseNameOf" "bitAnd" "bitOr" "bitXor" "break" "catAttrs" "ceil" "compareVersions" "concatLists" "concatMap" "concatStringsSep" "deepSeq" "derivation" "derivationStrict" "dirOf" "div" "elem" "elemAt" "fetchGit" "fetchMercurial" "fetchTarball" "fetchTree" "fetchurl" "filter" "filterSource" "findFile" "floor" "foldl'" "fromJSON" "fromTOML" "functionArgs" "genList" "genericClosure" "getAttr" "getContext" "getEnv" "getFlake" "groupBy" "hasAttr" "hasContext" "hashFile" "hashString" "head" "intersectAttrs" "isAttrs" "isBool" "isFloat" "isFunction" "isInt" "isList" "isNull" "isPath" "isString" "length" "lessThan" "listToAttrs" "map" "mapAttrs" "match" "mul" "parseDrvName" "partition" "path" "pathExists" "placeholder" "readDir" "readFile" "removeAttrs" "replaceStrings" "scopedImport" "seq" "sort" "split" "splitVersion" "storePath" "stringLength" "sub" "substring" "tail" "throw" "toFile" "toJSON" "toPath" "toString" "toXML" "trace" "traceVerbose" "tryEval" "typeOf" "unsafeDiscardOutputDependency" "unsafeDiscardStringContext" "unsafeGetAttrPos" "zipAttrsWith" + ; primops, `__` in `nix repl` + "__add" "__filter" "__isFunction" "__split" "__addErrorContext" "__filterSource" "__isInt" "__splitVersion" "__all" "__findFile" "__isList" "__storeDir" "__any" "__floor" "__isPath" "__storePath" "__appendContext" "__foldl'" "__isString" "__stringLength" "__attrNames" "__fromJSON" "__langVersion" "__sub" "__attrValues" "__functionArgs" "__length" "__substring" "__bitAnd" "__genList" "__lessThan" "__tail" "__bitOr" "__genericClosure" "__listToAttrs" "__toFile" "__bitXor" "__getAttr" "__mapAttrs" "__toJSON" "__catAttrs" "__getContext" "__match" "__toPath" "__ceil" "__getEnv" "__mul" "__toXML" "__compareVersions" "__getFlake" "__nixPath" "__trace" "__concatLists" "__groupBy" "__nixVersion" "__traceVerbose" "__concatMap" "__hasAttr" "__parseDrvName" "__tryEval" "__concatStringsSep" "__hasContext" "__partition" "__typeOf" "__currentSystem" "__hashFile" "__path" "__unsafeDiscardOutputDependency" "__currentTime" "__hashString" "__pathExists" "__unsafeDiscardStringContext" "__deepSeq" "__head" "__readDir" "__unsafeGetAttrPos" "__div" "__intersectAttrs" "__readFile" "__zipAttrsWith" "__elem" "__isAttrs" "__replaceStrings" "__elemAt" "__isBool" "__seq" "__fetchurl" "__isFloat" "__sort" +)) + ; constants -((identifier) @constant.builtin (#any-of? @constant.builtin "builtins" "null")) +((identifier) @constant.builtin (#any-of? @constant.builtin + ; nix eval --impure --expr 'with builtins; filter (x: !(isFunction builtins.${x} || isBool builtins.${x})) (attrNames builtins)' + "builtins" "currentSystem" "currentTime" "langVersion" "nixPath" "nixVersion" "null" "storeDir" +)) ; string interpolation (this was very annoying to get working properly) (interpolation "${" @punctuation.special (_) "}" @punctuation.special) @none -; display entire builtins path as builtin (ex. `builtins.filter` is highlighted as one long builtin) (select_expression - expression: ((variable_expression) @_i (#eq? @_i "builtins")) - attrpath: (attrpath attr: (identifier) @function.builtin)) - -(select_expression attrpath: (attrpath attr: (identifier) @field)) + expression: (_) @_expr + attrpath: (attrpath attr: (identifier) @field) + (#not-eq? @_expr "builtins") +) (attrset_expression (binding_set (binding . (attrpath (identifier) @field)))) (rec_attrset_expression (binding_set (binding . (attrpath (identifier) @field)))) From 668dec2903577517ef88f44d7de845a580148941 Mon Sep 17 00:00:00 2001 From: figsoda Date: Wed, 30 Nov 2022 12:18:58 -0500 Subject: [PATCH 0294/3265] highlights(nix): improve builtins and exceptions highlights --- queries/nix/highlights.scm | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/queries/nix/highlights.scm b/queries/nix/highlights.scm index e60091436..bce901a47 100644 --- a/queries/nix/highlights.scm +++ b/queries/nix/highlights.scm @@ -8,9 +8,16 @@ "with" ] @keyword -; these are technically functions but they act more like keywords (abort and throw are control flow, derivation is a core language construct) -((identifier) @keyword - (#any-of? @keyword "abort" "derivation" "throw")) +(variable_expression + name: (identifier) @keyword + (#eq? @keyword "derivation") + (#set! "priority" 101)) + +; exceptions +(variable_expression + name: (identifier) @exception + (#any-of? @exception "abort" "throw") + (#set! "priority" 101)) ; if/then/else [ @@ -73,19 +80,24 @@ ; basic identifiers (variable_expression) @variable -((identifier) @include (#eq? @include "import")) -((identifier) @boolean (#any-of? @boolean "true" "false")) +(variable_expression + name: (identifier) @include + (#eq? @include "import")) + +(variable_expression + name: (identifier) @boolean + (#any-of? @boolean "true" "false")) ; builtin functions -((identifier) @function.builtin (#any-of? @function.builtin - ; nix eval --impure --expr 'with builtins; filter (x: x != "import" && isFunction builtins.${x}) (attrNames builtins)' - "abort" "add" "addErrorContext" "all" "any" "appendContext" "attrNames" "attrValues" "baseNameOf" "bitAnd" "bitOr" "bitXor" "break" "catAttrs" "ceil" "compareVersions" "concatLists" "concatMap" "concatStringsSep" "deepSeq" "derivation" "derivationStrict" "dirOf" "div" "elem" "elemAt" "fetchGit" "fetchMercurial" "fetchTarball" "fetchTree" "fetchurl" "filter" "filterSource" "findFile" "floor" "foldl'" "fromJSON" "fromTOML" "functionArgs" "genList" "genericClosure" "getAttr" "getContext" "getEnv" "getFlake" "groupBy" "hasAttr" "hasContext" "hashFile" "hashString" "head" "intersectAttrs" "isAttrs" "isBool" "isFloat" "isFunction" "isInt" "isList" "isNull" "isPath" "isString" "length" "lessThan" "listToAttrs" "map" "mapAttrs" "match" "mul" "parseDrvName" "partition" "path" "pathExists" "placeholder" "readDir" "readFile" "removeAttrs" "replaceStrings" "scopedImport" "seq" "sort" "split" "splitVersion" "storePath" "stringLength" "sub" "substring" "tail" "throw" "toFile" "toJSON" "toPath" "toString" "toXML" "trace" "traceVerbose" "tryEval" "typeOf" "unsafeDiscardOutputDependency" "unsafeDiscardStringContext" "unsafeGetAttrPos" "zipAttrsWith" +(variable_expression name: (identifier) @function.builtin (#any-of? @function.builtin + ; nix eval --impure --expr 'with builtins; filter (x: !(elem x [ "abort" "derivation" "import" "throw" ]) && isFunction builtins.${x}) (attrNames builtins)' + "add" "addErrorContext" "all" "any" "appendContext" "attrNames" "attrValues" "baseNameOf" "bitAnd" "bitOr" "bitXor" "break" "catAttrs" "ceil" "compareVersions" "concatLists" "concatMap" "concatStringsSep" "deepSeq" "derivationStrict" "dirOf" "div" "elem" "elemAt" "fetchGit" "fetchMercurial" "fetchTarball" "fetchTree" "fetchurl" "filter" "filterSource" "findFile" "floor" "foldl'" "fromJSON" "fromTOML" "functionArgs" "genList" "genericClosure" "getAttr" "getContext" "getEnv" "getFlake" "groupBy" "hasAttr" "hasContext" "hashFile" "hashString" "head" "intersectAttrs" "isAttrs" "isBool" "isFloat" "isFunction" "isInt" "isList" "isNull" "isPath" "isString" "length" "lessThan" "listToAttrs" "map" "mapAttrs" "match" "mul" "parseDrvName" "partition" "path" "pathExists" "placeholder" "readDir" "readFile" "removeAttrs" "replaceStrings" "scopedImport" "seq" "sort" "split" "splitVersion" "storePath" "stringLength" "sub" "substring" "tail" "toFile" "toJSON" "toPath" "toString" "toXML" "trace" "traceVerbose" "tryEval" "typeOf" "unsafeDiscardOutputDependency" "unsafeDiscardStringContext" "unsafeGetAttrPos" "zipAttrsWith" ; primops, `__` in `nix repl` "__add" "__filter" "__isFunction" "__split" "__addErrorContext" "__filterSource" "__isInt" "__splitVersion" "__all" "__findFile" "__isList" "__storeDir" "__any" "__floor" "__isPath" "__storePath" "__appendContext" "__foldl'" "__isString" "__stringLength" "__attrNames" "__fromJSON" "__langVersion" "__sub" "__attrValues" "__functionArgs" "__length" "__substring" "__bitAnd" "__genList" "__lessThan" "__tail" "__bitOr" "__genericClosure" "__listToAttrs" "__toFile" "__bitXor" "__getAttr" "__mapAttrs" "__toJSON" "__catAttrs" "__getContext" "__match" "__toPath" "__ceil" "__getEnv" "__mul" "__toXML" "__compareVersions" "__getFlake" "__nixPath" "__trace" "__concatLists" "__groupBy" "__nixVersion" "__traceVerbose" "__concatMap" "__hasAttr" "__parseDrvName" "__tryEval" "__concatStringsSep" "__hasContext" "__partition" "__typeOf" "__currentSystem" "__hashFile" "__path" "__unsafeDiscardOutputDependency" "__currentTime" "__hashString" "__pathExists" "__unsafeDiscardStringContext" "__deepSeq" "__head" "__readDir" "__unsafeGetAttrPos" "__div" "__intersectAttrs" "__readFile" "__zipAttrsWith" "__elem" "__isAttrs" "__replaceStrings" "__elemAt" "__isBool" "__seq" "__fetchurl" "__isFloat" "__sort" )) ; constants -((identifier) @constant.builtin (#any-of? @constant.builtin +(variable_expression name: (identifier) @constant.builtin (#any-of? @constant.builtin ; nix eval --impure --expr 'with builtins; filter (x: !(isFunction builtins.${x} || isBool builtins.${x})) (attrNames builtins)' "builtins" "currentSystem" "currentTime" "langVersion" "nixPath" "nixVersion" "null" "storeDir" )) From 06989a933e24d1ae5c140e3934545218a1c1b48f Mon Sep 17 00:00:00 2001 From: figsoda Date: Sat, 3 Dec 2022 16:33:50 -0500 Subject: [PATCH 0295/3265] injections(nix): combine injections to work better with interpolations --- queries/nix/highlights.scm | 3 ++- queries/nix/injections.scm | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/queries/nix/highlights.scm b/queries/nix/highlights.scm index bce901a47..86b497e9f 100644 --- a/queries/nix/highlights.scm +++ b/queries/nix/highlights.scm @@ -33,7 +33,8 @@ (comment) @comment ; strings -[ (string_expression) (indented_string_expression) ] @string +([ (string_expression) (indented_string_expression) ] + (#set! "priority" 99)) @string ; paths and URLs [ (path_expression) (spath_expression) (uri_expression) ] @string.special diff --git a/queries/nix/injections.scm b/queries/nix/injections.scm index 9765033a4..3d965289a 100644 --- a/queries/nix/injections.scm +++ b/queries/nix/injections.scm @@ -7,6 +7,7 @@ (indented_string_expression (string_fragment) @regex) ] (#match? @_func "(^|\\.)match$")) + @combined (binding attrpath: (attrpath (identifier) @_path) @@ -15,6 +16,7 @@ (indented_string_expression (string_fragment) @bash) ] (#match? @_path "(^\\w*Phase|(pre|post)\\w*|(.*\\.)?\\w*([sS]cript|[hH]ook)|(.*\\.)?startup)$")) + @combined (apply_expression function: (_) @_func @@ -26,6 +28,7 @@ ]))) (#match? @_func "(^|\\.)writeShellApplication$") (#match? @_path "^text$")) + @combined (apply_expression function: (apply_expression @@ -35,6 +38,7 @@ (indented_string_expression (string_fragment) @bash) ] (#match? @_func "(^|\\.)runCommand((No)?CC)?(Local)?$")) + @combined ((apply_expression function: (apply_expression function: (_) @_func) @@ -43,6 +47,7 @@ (indented_string_expression (string_fragment) @bash) ]) (#match? @_func "(^|\\.)write(Bash|Dash|ShellScript)(Bin)?$")) + @combined ((apply_expression function: (apply_expression function: (_) @_func) @@ -51,6 +56,7 @@ (indented_string_expression (string_fragment) @fish) ]) (#match? @_func "(^|\\.)writeFish(Bin)?$")) + @combined ((apply_expression function: (apply_expression @@ -60,6 +66,7 @@ (indented_string_expression (string_fragment) @haskell) ]) (#match? @_func "(^|\\.)writeHaskell(Bin)?$")) + @combined ((apply_expression function: (apply_expression @@ -69,6 +76,7 @@ (indented_string_expression (string_fragment) @javascript) ]) (#match? @_func "(^|\\.)writeJS(Bin)?$")) + @combined ((apply_expression function: (apply_expression @@ -78,6 +86,7 @@ (indented_string_expression (string_fragment) @perl) ]) (#match? @_func "(^|\\.)writePerl(Bin)?$")) + @combined ((apply_expression function: (apply_expression @@ -87,6 +96,7 @@ (indented_string_expression (string_fragment) @python) ]) (#match? @_func "(^|\\.)write(PyPy|Python)[23](Bin)?$")) + @combined ((apply_expression function: (apply_expression @@ -96,3 +106,4 @@ (indented_string_expression (string_fragment) @rust) ]) (#match? @_func "(^|\\.)writeRust(Bin)?$")) + @combined From 381573a9d6ba444f35aba19c9de6d1ad4557ec5e Mon Sep 17 00:00:00 2001 From: Rishi Date: Sat, 1 Oct 2022 14:51:02 +0530 Subject: [PATCH 0296/3265] Inherit folds for SCSS from CSS --- queries/scss/folds.scm | 1 + 1 file changed, 1 insertion(+) create mode 100644 queries/scss/folds.scm diff --git a/queries/scss/folds.scm b/queries/scss/folds.scm new file mode 100644 index 000000000..cbe41875e --- /dev/null +++ b/queries/scss/folds.scm @@ -0,0 +1 @@ +; inherits: css From cf6b5cb1ede83741d5cca7071fd75df3b942d3ca Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Dec 2022 22:15:17 +0000 Subject: [PATCH 0297/3265] Update parsers: c_sharp (#4023) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 10253c5a3..8e48ad7fb 100644 --- a/lockfile.json +++ b/lockfile.json @@ -30,7 +30,7 @@ "revision": "7175a6dd5fc1cee660dce6fe23f6043d75af424a" }, "c_sharp": { - "revision": "530d86abae6ea264bf19ae347ad250b1b4bb81a7" + "revision": "1bd772f69b0db577122533514a239b184650adf2" }, "clojure": { "revision": "8c23e0ec078af461ccad43fffbbfc204aa6bc238" From 48a3da710369688df80beb2847dabbbd02e2180e Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sat, 24 Dec 2022 00:44:36 +0100 Subject: [PATCH 0298/3265] highlights(c_sharp): add ">>>" ">>>=" From upstream change https://github.com/tree-sitter/tree-sitter-c-sharp/pull/266/files --- queries/c_sharp/highlights.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/queries/c_sharp/highlights.scm b/queries/c_sharp/highlights.scm index ee56f21da..878ac75b9 100644 --- a/queries/c_sharp/highlights.scm +++ b/queries/c_sharp/highlights.scm @@ -275,9 +275,11 @@ "|=" "~" ">>" + ">>>" "<<" "<<=" ">>=" + ">>>=" "=>" ] @operator From f2b1d727e6ad46238baa84c4d1f968a297e415ab Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sun, 25 Dec 2022 13:23:36 +0100 Subject: [PATCH 0299/3265] chore: update usage `vim.split` to new signature Old usage was still working because of backward compatibility of nvim code: ```lua if type(kwargs) == 'boolean' then -- Support old signature for backward compatibility plain = kwargs else ``` `:h vim-split()` https://neovim.io/doc/user/lua.html#vim.split() --- lua/nvim-treesitter/parsers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 04a4cea66..f4e13974b 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1377,7 +1377,7 @@ function M.ft_to_lang(ft) if result then return result else - ft = vim.split(ft, ".", true)[1] + ft = vim.split(ft, ".", { plain = true })[1] return filetype_to_parsername[ft] or ft end end From 4547a3687c21be5dea6750cccf63f76883f412d9 Mon Sep 17 00:00:00 2001 From: Lucario387 Date: Sat, 24 Dec 2022 01:59:30 +0900 Subject: [PATCH 0300/3265] injections(vue): Update injection queries --- queries/vue/injections.scm | 82 +++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 27 deletions(-) diff --git a/queries/vue/injections.scm b/queries/vue/injections.scm index 36e3286e1..71faa74cf 100644 --- a/queries/vue/injections.scm +++ b/queries/vue/injections.scm @@ -1,52 +1,80 @@ ( (style_element - (start_tag) @_no_lang + (start_tag) @_no_attribute (raw_text) @css) - (#not-contains? @_no_lang "lang=") + (#match? @_no_attribute "<\\s*style\\s*>") ) ( (style_element (start_tag (attribute - (quoted_attribute_value (attribute_value) @_lang))) + (attribute_name) @_no_lang)) (raw_text) @css) - (#eq? @_lang "css") -) - -; if start_tag does not specify `lang="..."` then set it to javascript -( - (script_element - (start_tag) @_no_lang - (raw_text) @javascript) - (#not-contains? @_no_lang "lang=") -) - -( - (script_element - (start_tag - (attribute - (quoted_attribute_value (attribute_value) @_lang))) - (raw_text) @javascript) - (#eq? @_lang "js") -) + (#not-eq? @_no_lang "lang") +) ( (style_element (start_tag (attribute - (quoted_attribute_value (attribute_value) @_lang))) - (raw_text) @scss) - (#any-of? @_lang "scss" "postcss" "less") + (attribute_name) @_lang + (quoted_attribute_value (attribute_value) @_css))) + (raw_text) @css) + (#eq? @_lang "lang") + (#eq? @_css "css") +) + +; If script tag does not have any extra attributes, set it to javascript +( + (script_element + (start_tag) @_no_attribute + (raw_text) @javascript) + (#match? @_no_attribute "<\\s*script\\s*>") +) + +; if start_tag does not specify `lang="..."` then set it to javascript +( + (script_element + (start_tag + (attribute + (attribute_name) @_no_lang)) + (raw_text) @javascript) + (#not-eq? @_no_lang "lang") ) ( (script_element (start_tag (attribute - (quoted_attribute_value (attribute_value) @_lang))) + (attribute_name) @_lang + (quoted_attribute_value (attribute_value) @_js))) + (raw_text) @javascript) + (#eq? @_lang "lang") + (#eq? @_js "js") +) + +; TODO: When nvim-treesitter have postcss and less parser, use @language and @content instead +( + (style_element + (start_tag + (attribute + (attribute_name) @_lang + (quoted_attribute_value (attribute_value) @_scss))) + (raw_text) @scss) + (#eq? @_lang "lang") + (#any-of? @_scss "scss" "less" "postcss") +) + +( + (script_element + (start_tag + (attribute + (attribute_name) @_lang + (quoted_attribute_value (attribute_value) @_ts))) (raw_text) @typescript) - (#eq? @_lang "ts") + (#eq? @_lang "lang") + (#eq? @_ts "ts") ) ((interpolation From bbd7ecb25d607ce2bfd5294669014ede4669cc19 Mon Sep 17 00:00:00 2001 From: Lucario387 Date: Sat, 24 Dec 2022 16:30:19 +0900 Subject: [PATCH 0301/3265] add test file --- .../injections/vue/test-vue-injections.vue | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/query/injections/vue/test-vue-injections.vue diff --git a/tests/query/injections/vue/test-vue-injections.vue b/tests/query/injections/vue/test-vue-injections.vue new file mode 100644 index 000000000..522dbb392 --- /dev/null +++ b/tests/query/injections/vue/test-vue-injections.vue @@ -0,0 +1,41 @@ + + + + + + From 4bcd3a3cc31b9628a48ff126938262292b1ed988 Mon Sep 17 00:00:00 2001 From: Philip Gaudreau Date: Thu, 22 Dec 2022 14:28:28 -0500 Subject: [PATCH 0302/3265] Fix `update_selection` --- lua/nvim-treesitter/ts_utils.lua | 36 ++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/lua/nvim-treesitter/ts_utils.lua b/lua/nvim-treesitter/ts_utils.lua index 5994e4bcb..3d804ccba 100644 --- a/lua/nvim-treesitter/ts_utils.lua +++ b/lua/nvim-treesitter/ts_utils.lua @@ -259,18 +259,36 @@ end -- @param selection_mode One of "charwise" (default) or "v", "linewise" or "V", -- "blockwise" or "" (as a string with 5 characters or a single character) function M.update_selection(buf, node, selection_mode) - selection_mode = selection_mode or "charwise" local start_row, start_col, end_row, end_col = M.get_vim_range({ M.get_node_range(node) }, buf) + api.nvim_buf_set_mark(0, "<", start_row, start_col - 1, {}) + api.nvim_buf_set_mark(0, ">", end_row, end_col - 1, {}) - -- Start visual selection in appropriate mode local v_table = { charwise = "v", linewise = "V", blockwise = "" } - ---- Call to `nvim_replace_termcodes()` is needed for sending appropriate - ---- command to enter blockwise mode - local mode_string = vim.api.nvim_replace_termcodes(v_table[selection_mode] or selection_mode, true, true, true) - vim.cmd("normal! " .. mode_string) - vim.fn.setpos(".", { buf, start_row, start_col, 0 }) - vim.cmd "normal! o" - vim.fn.setpos(".", { buf, end_row, end_col, 0 }) + selection_mode = selection_mode or "charwise" + + -- Normalise selection_mode + if vim.tbl_contains(vim.tbl_keys(v_table), selection_mode) then + selection_mode = v_table[selection_mode] + end + + -- Call to `nvim_replace_termcodes()` is needed for sending appropriate command to enter blockwise mode + selection_mode = vim.api.nvim_replace_termcodes(selection_mode, true, true, true) + + local previous_mode = vim.fn.visualmode() + + -- visualmode() is set to "" when no visual selection has yet been made. Defaults it to "v" + if previous_mode == "" then + previous_mode = "v" + end + + if previous_mode == selection_mode then + selection_mode = "" + end + + -- "gv": Start Visual mode with the same area as the previous area and the same mode. + -- Hence, area will be what we defined in "<" and ">" marks. We only feed `selection_mode` if it is + -- different than previous `visualmode`, otherwise it will stop visual mode. + api.nvim_feedkeys("gv" .. selection_mode, "x", false) end -- Byte length of node range From 8abb563ca989569fd6778a86bb994291bd342cfc Mon Sep 17 00:00:00 2001 From: Lucario387 Date: Mon, 26 Dec 2022 00:38:57 +0900 Subject: [PATCH 0303/3265] Fix(vue): Invalid match queries --- queries/vue/injections.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/vue/injections.scm b/queries/vue/injections.scm index 71faa74cf..dcb7333db 100644 --- a/queries/vue/injections.scm +++ b/queries/vue/injections.scm @@ -2,7 +2,7 @@ (style_element (start_tag) @_no_attribute (raw_text) @css) - (#match? @_no_attribute "<\\s*style\\s*>") + (#match? @_no_attribute "^\\<\\s*style\\s*\\>$") ) ( @@ -30,7 +30,7 @@ (script_element (start_tag) @_no_attribute (raw_text) @javascript) - (#match? @_no_attribute "<\\s*script\\s*>") + (#match? @_no_attribute "^\\<\\s*script\\s*\\>$") ) ; if start_tag does not specify `lang="..."` then set it to javascript From f5d517f4a71e2570d1d63e7432471972a6b5418e Mon Sep 17 00:00:00 2001 From: Lucario387 Date: Mon, 26 Dec 2022 00:38:57 +0900 Subject: [PATCH 0304/3265] Fix(vue): Invalid match queries --- queries/vue/injections.scm | 1 + .../injections/vue/test-vue-injections.vue | 41 +++++++++++++++---- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/queries/vue/injections.scm b/queries/vue/injections.scm index dcb7333db..223791c09 100644 --- a/queries/vue/injections.scm +++ b/queries/vue/injections.scm @@ -3,6 +3,7 @@ (start_tag) @_no_attribute (raw_text) @css) (#match? @_no_attribute "^\\<\\s*style\\s*\\>$") + ; unsure why, but without escaping < and > the query breaks ) ( diff --git a/tests/query/injections/vue/test-vue-injections.vue b/tests/query/injections/vue/test-vue-injections.vue index 522dbb392..c7442a027 100644 --- a/tests/query/injections/vue/test-vue-injections.vue +++ b/tests/query/injections/vue/test-vue-injections.vue @@ -1,17 +1,17 @@ @@ -19,23 +19,50 @@ const foo = "1" // ^ javascript - + + + From a2d7e78b0714a0dc066416100b7398d3f0941c23 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 25 Dec 2022 16:44:36 +0000 Subject: [PATCH 0305/3265] Update parsers: hlsl --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 8e48ad7fb..7fd333023 100644 --- a/lockfile.json +++ b/lockfile.json @@ -168,7 +168,7 @@ "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" }, "hlsl": { - "revision": "329e3c8bd6f696a6128e0dccba34b2799dc3037e" + "revision": "39c822b795bd6533815d100b5e7d1ec7778a1c2a" }, "hocon": { "revision": "c390f10519ae69fdb03b3e5764f5592fb6924bcc" From cf6056489135f22dfe00b50b34e41439e2ea72dd Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sun, 25 Dec 2022 22:41:59 +0100 Subject: [PATCH 0306/3265] fix: do `vim.treesitter.start()` on highlight module attach Fixes #4026 --- lua/nvim-treesitter/highlight.lua | 38 ++++++++++++++++--------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/lua/nvim-treesitter/highlight.lua b/lua/nvim-treesitter/highlight.lua index 5f7dead61..b97b7a039 100644 --- a/lua/nvim-treesitter/highlight.lua +++ b/lua/nvim-treesitter/highlight.lua @@ -1,7 +1,5 @@ local api = vim.api -local ts = vim.treesitter -local parsers = require "nvim-treesitter.parsers" local configs = require "nvim-treesitter.configs" local M = {} @@ -21,25 +19,11 @@ local function enable_syntax(bufnr) api.nvim_buf_set_option(bufnr, "syntax", "ON") end ----@param bufnr integer -function M.stop(bufnr) - if ts.highlighter.active[bufnr] then - ts.highlighter.active[bufnr]:destroy() - end -end - ----@param bufnr integer ----@param lang string -function M.start(bufnr, lang) - local parser = parsers.get_parser(bufnr, lang) - ts.highlighter.new(parser, {}) -end - ---@param bufnr integer ---@param lang string function M.attach(bufnr, lang) local config = configs.get_module "highlight" - M.start(bufnr, lang) + vim.treesitter.start(bufnr, lang) if config and should_enable_vim_regex(config, lang) then enable_syntax(bufnr) end @@ -47,8 +31,26 @@ end ---@param bufnr integer function M.detach(bufnr) - M.stop(bufnr) + vim.treesitter.stop(bufnr) enable_syntax(bufnr) end +---@deprecated +function M.start(...) + vim.notify( + "`nvim-treesitter.highlight.start` is deprecated: use `nvim-treesitter.highlight.attach` or `vim.treesitter.start`", + vim.log.levels.WARN + ) + M.attach(...) +end + +---@deprecated +function M.stop(...) + vim.notify( + "`nvim-treesitter.highlight.stop` is deprecated: use `nvim-treesitter.highlight.detach` or `vim.treesitter.stop`", + vim.log.levels.WARN + ) + M.detach(...) +end + return M From f0a1c3df2403343bca1f636dfb60c36f7d96627c Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 26 Dec 2022 15:03:24 +0100 Subject: [PATCH 0307/3265] fix: require_language is needed after installation to update Vim's language table Fixes #4026 --- lua/nvim-treesitter/install.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 54a813cd4..26524d851 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -387,6 +387,7 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync, cmd = function() for _, buf in ipairs(vim.api.nvim_list_bufs()) do if parsers.get_buf_lang(buf) == lang then + vim.treesitter.language.require_language(lang) for _, mod in ipairs(require("nvim-treesitter.configs").available_modules()) do require("nvim-treesitter.configs").reattach_module(mod, buf) end From 7c9ddb72d198d45895d73bc7495e1b7e9627f6ca Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 26 Dec 2022 15:15:06 +0100 Subject: [PATCH 0308/3265] feat: allow hot-reloading parser after installation --- lua/nvim-treesitter/install.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 26524d851..2942f5117 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -387,6 +387,7 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync, cmd = function() for _, buf in ipairs(vim.api.nvim_list_bufs()) do if parsers.get_buf_lang(buf) == lang then + vim._ts_remove_language(lang) vim.treesitter.language.require_language(lang) for _, mod in ipairs(require("nvim-treesitter.configs").available_modules()) do require("nvim-treesitter.configs").reattach_module(mod, buf) From 0cb637ca9f4389172933e5aba36387ab8430b6fb Mon Sep 17 00:00:00 2001 From: "Sergio A. Vargas" Date: Tue, 27 Dec 2022 04:27:22 -0500 Subject: [PATCH 0309/3265] julia: update parser and highlights (#4035) - Update patterns for type definitions: The grammar was updated to parse `abstract type` and `primitive type` as a single token. - Update @symbol capture to highlight quoted operators as symbols. - Add pattern to highlight adjoint operator. - Update patterns and captures for: - "keyword" operators (in, isa, where) - type operators (<:, >:) - Parametrized types. --- lockfile.json | 2 +- queries/julia/highlights.scm | 41 ++++++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/lockfile.json b/lockfile.json index 7fd333023..0e98edf76 100644 --- a/lockfile.json +++ b/lockfile.json @@ -204,7 +204,7 @@ "revision": "505f5bd90053ae895aa3d6f2bac8071dd9abd8b2" }, "julia": { - "revision": "f254ff9c52e994f629a60821662917d2c6c0e8eb" + "revision": "1cd300bda52e680872053cd55a228c1809cb0c3a" }, "kotlin": { "revision": "b953dbdd05257fcb2b64bc4d9c1578fac12e3c28" diff --git a/queries/julia/highlights.scm b/queries/julia/highlights.scm index 89840dafe..f0b7609f5 100644 --- a/queries/julia/highlights.scm +++ b/queries/julia/highlights.scm @@ -13,7 +13,7 @@ (macro_definition name: (identifier) @function.macro) -(quote_expression ":" (identifier)) @symbol +(quote_expression ":" [(identifier) (operator)]) @symbol (field_expression (identifier) @field .) @@ -71,18 +71,21 @@ ;; Definitions (abstract_definition - name: (identifier) @type.definition) + name: (identifier) @type.definition) @keyword (primitive_definition - name: (identifier) @type.definition) + name: (identifier) @type.definition) @keyword (struct_definition name: (identifier) @type) -(subtype_clause [ - (identifier) @type - (field_expression (identifier) @type .)]) +(type_clause + ["<:" ">:"] @operator + [(identifier) @type + (field_expression (identifier) @type .)]) ;; Annotations -(parametrized_type_expression (_) @type) +(parametrized_type_expression + (_) @type + (curly_expression (_) @type)) (type_parameter_list (identifier) @type) @@ -96,7 +99,9 @@ return_type: (identifier) @type) (where_clause - (identifier) @type) ; where clause without braces + (identifier) @type) +(where_clause + (curly_expression (_) @type)) ;;; Keywords @@ -106,8 +111,6 @@ "local" "macro" "struct" - "type" - "where" ] @keyword "end" @keyword @@ -166,24 +169,30 @@ "return" @keyword.return) [ - "abstract" "const" "mutable" - "primitive" ] @type.qualifier ;;; Operators & Punctuation (operator) @operator -(for_binding ["in" "=" "∈"] @operator) -(range_expression ":" @operator) +(adjoint_expression "'" @operator) +(range_expression ":" @operator) (slurp_parameter "..." @operator) (splat_expression "..." @operator) -"." @operator -["::" "<:"] @operator +((operator) @keyword.operator + (#any-of? @keyword.operator "in" "isa")) + +(for_binding "in" @keyword.operator) +(for_binding ["=" "∈"] @operator) + +(where_clause "where" @keyword.operator) +(where_expression "where" @keyword.operator) + +["." "::"] @operator ["," ";"] @punctuation.delimiter ["(" ")" "[" "]" "{" "}"] @punctuation.bracket From 57e9e48f88acb228e39136cf13fda93a5955be5c Mon Sep 17 00:00:00 2001 From: Jared Moulton Date: Sun, 25 Dec 2022 15:09:16 -0500 Subject: [PATCH 0310/3265] update lockfile (slint) --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 0e98edf76..5582b92a3 100644 --- a/lockfile.json +++ b/lockfile.json @@ -342,7 +342,7 @@ "revision": "c478c6868648eff49eb04a4df90d703dc45b312a" }, "slint": { - "revision": "d422300f5d6ccce8f9a617dfed57aafb636fadb2" + "revision": "07547525cdf4627343dca5891f1743ae45e879bb" }, "solidity": { "revision": "52ed0880c0126df2f2c7693f215fe6f38e4a2e0a" From 55a9e3bbbc095b49c1b36a0ef1f01b5c7dc09568 Mon Sep 17 00:00:00 2001 From: Jared Moulton Date: Sun, 25 Dec 2022 14:36:28 -0500 Subject: [PATCH 0311/3265] Update slint highlight queries for rewrite --- queries/slint/highlights.scm | 92 ++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 42 deletions(-) diff --git a/queries/slint/highlights.scm b/queries/slint/highlights.scm index 54dc20369..280e24b08 100644 --- a/queries/slint/highlights.scm +++ b/queries/slint/highlights.scm @@ -1,23 +1,31 @@ - -(user_type_identifier) @type - -(var_identifier) @variable - -(state_identifier) @field - -(var_identifier - (post_identifier) @variable) - -(function_identifier) @function - -(reference_identifier) @keyword -(visibility_modifier) @include - +(identifier) @variable +(type_identifier) @type (comment) @comment +(int_literal) @number +(float_literal) @float +(string_literal) @string +(function_identifier) @function +[ +(image_macro) +(children_macro) +(radial_grad_macro) +(linear_grad_macro) +] @function.macro +(call_expression + function: (identifier) @function.call) +(call_expression + function: (field_expression + field: (identifier) @function.call)) +(vis) @include +(units) @type +(array_literal + (identifier) @type) +(transition_statement state: (identifier) @field) +(state_expression state: (identifier) @field) +(struct_block_definition + (identifier) @field) -(value) @number -(int_number) @number -(string) @string +; (state_identifier) @field [ "in" @@ -39,7 +47,8 @@ [ "root" "parent" -"this" +"duration" +"easing" ] @variable.builtin [ @@ -62,23 +71,25 @@ ] @keyword [ - "black" - "transparent" - "blue" - "ease" - "ease_in" - "ease-in" - "ease_in_out" - "ease-in-out" - "ease_out" - "ease-out" - "end" - "green" - "red" - "red" - "start" - "yellow" - ] @constant.builtin +"black" +"transparent" +"blue" +"ease" +"ease_in" +"ease-in" +"ease_in_out" +"ease-in-out" +"ease_out" +"ease-out" +"end" +"green" +"red" +"red" +"start" +"yellow" +"white" +"gray" +] @constant.builtin ; Punctuation @@ -99,15 +110,13 @@ "}" ] @punctuation.bracket -(property_definition ["<" ">"] @punctuation.bracket) +(define_property ["<" ">"] @punctuation.bracket) [ "angle" "bool" "brush" -; "color" // This causes problems -"duration" -"easing" +"color" "float" "image" "int" @@ -139,8 +148,7 @@ "*=" "/=" "?" - "=>" ] @operator -(ternary_expression [":" "?"] @conditional.ternary) +(ternary_expression [":" "?"] @conditional.ternary) \ No newline at end of file From fa09c1f3ef2128474914ef6d755666fad0dce08b Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 27 Dec 2022 16:28:56 +0100 Subject: [PATCH 0312/3265] Update slint indent queries --- queries/slint/highlights.scm | 10 +++++----- queries/slint/indents.scm | 13 +++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/queries/slint/highlights.scm b/queries/slint/highlights.scm index 280e24b08..8928bc9a5 100644 --- a/queries/slint/highlights.scm +++ b/queries/slint/highlights.scm @@ -18,11 +18,11 @@ field: (identifier) @function.call)) (vis) @include (units) @type -(array_literal +(array_literal (identifier) @type) (transition_statement state: (identifier) @field) (state_expression state: (identifier) @field) -(struct_block_definition +(struct_block_definition (identifier) @field) ; (state_identifier) @field @@ -35,7 +35,7 @@ "@" @keyword [ -"import" +"import" "from" ] @include @@ -116,7 +116,7 @@ "angle" "bool" "brush" -"color" +"color" "float" "image" "int" @@ -151,4 +151,4 @@ "=>" ] @operator -(ternary_expression [":" "?"] @conditional.ternary) \ No newline at end of file +(ternary_expression [":" "?"] @conditional.ternary) diff --git a/queries/slint/indents.scm b/queries/slint/indents.scm index 30761ef8f..44e426493 100644 --- a/queries/slint/indents.scm +++ b/queries/slint/indents.scm @@ -1,13 +1,14 @@ - [ -(field_declaration_list_body) -(list_definition_body) -(struct_field_declaration_list_body) +(comp_body) +(state_statement) +(transition_statement) +(handler_body) +(consequence_body) +(global_single) ] @indent "}" @indent_end (comment) @auto -(string) @auto - +(string_literal) @auto From 41e013dd9a4d27d0154475318b59fd2ca59cbe3d Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 26 Dec 2022 13:45:12 +0100 Subject: [PATCH 0313/3265] ci: improve CI output on query error --- scripts/check-queries.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/check-queries.lua b/scripts/check-queries.lua index 083e951ca..c142084de 100755 --- a/scripts/check-queries.lua +++ b/scripts/check-queries.lua @@ -65,8 +65,9 @@ local function do_check() table.insert(timings, { duration = duration, lang = lang, query_type = query_type }) io_print("Checking " .. lang .. " " .. query_type .. string.format(" (%.02fms)", duration * 1e-6)) if not ok then - vim.api.nvim_err_writeln(query) - last_error = query + local err_msg = lang .. " (" .. query_type .. "): " .. query + io_print(err_msg) + last_error = err_msg else if query then for _, capture in ipairs(query.captures) do From fb36ed4c9e962d9fbfa608cd4a5d9313b1e8a8b1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 27 Dec 2022 16:53:19 +0000 Subject: [PATCH 0314/3265] Update parsers: tlaplus --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 5582b92a3..c1bc23c9c 100644 --- a/lockfile.json +++ b/lockfile.json @@ -378,7 +378,7 @@ "revision": "a233ebe360a73a92c50978e5c4e9e471bc59ff42" }, "tlaplus": { - "revision": "27e6d238a5708b0490f43351f6e0baeaab4c9c1f" + "revision": "f2ad7272d145598ff2d27fda15379d26aa33a7e1" }, "todotxt": { "revision": "0207f6a4ab6aeafc4b091914d31d8235049a2578" From e5dd204291d16f1061157711a69884f7a2fe02b1 Mon Sep 17 00:00:00 2001 From: Ananda Umamil Date: Fri, 30 Dec 2022 02:11:49 +0700 Subject: [PATCH 0315/3265] highlights(haskell): lambda and function with type signature --- queries/haskell/highlights.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/queries/haskell/highlights.scm b/queries/haskell/highlights.scm index fa342fb8e..297a410da 100644 --- a/queries/haskell/highlights.scm +++ b/queries/haskell/highlights.scm @@ -111,9 +111,12 @@ (function name: (variable) @function patterns: (patterns)) -((signature (fun)) . (function (variable) @function)) -((signature (context (fun))) . (function (variable) @function)) -((signature (forall (context (fun)))) . (function (variable) @function)) +(function + name: (variable) @function + rhs: (exp_lambda)) +((signature (variable) @_type (fun)) . (function (variable) @function) (#eq? @function @_type)) +((signature (variable) @_type (context (fun))) . (function (variable) @function) (#eq? @function @_type)) +((signature (variable) @_type (forall (context (fun)))) . (function (variable) @function) (#eq? @function @_type)) (exp_infix (variable) @operator) ; consider infix functions as operators From c06baac6a19710d41ca871d5dc030fd986958bfd Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 29 Dec 2022 20:05:30 +0000 Subject: [PATCH 0316/3265] Update parsers: astro, ocaml, ocaml_interface --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index c1bc23c9c..bb4e18ade 100644 --- a/lockfile.json +++ b/lockfile.json @@ -9,7 +9,7 @@ "revision": "c473c09f23b13d9404ec5208fad3eddea89d70f8" }, "astro": { - "revision": "22697b0e2413464b7abaea9269c5e83a59e39a83" + "revision": "a1f66bf72ed68b87f779bce9a52e5c6521fc867e" }, "awk": { "revision": "e559793754c60c2cdf00cbb0409842d75f0a41dc" @@ -258,10 +258,10 @@ "revision": "8ad20059c6f128861c4506fff866150ffee1d6f4" }, "ocaml": { - "revision": "de07323343946c32759933cb3b7c78e821098cad" + "revision": "f1106bf834703f1f2f795da1a3b5f8f40174ffcc" }, "ocaml_interface": { - "revision": "de07323343946c32759933cb3b7c78e821098cad" + "revision": "f1106bf834703f1f2f795da1a3b5f8f40174ffcc" }, "ocamllex": { "revision": "ac1d5957e719d49bd6acd27439b79843e4daf8ed" From ee3e9f4dc0e5ee9e2bfb1ee47638375840b8fe0f Mon Sep 17 00:00:00 2001 From: Michael Hoffmann Date: Fri, 2 Dec 2022 23:47:19 +0100 Subject: [PATCH 0317/3265] feat(hcl,terraform): split terraform from hcl, add specialized queries for tf This enables us to have different queries for terraform and general hcl. It solve the situation where other dialects of hcl (nomad, packer, etc) might use a terraform keyword and get highlighted out of place. --- README.md | 1 + lockfile.json | 3 +++ lua/nvim-treesitter/parsers.lua | 12 ++++++++++- queries/hcl/highlights.scm | 15 ++++++------- queries/terraform/folds.scm | 1 + queries/terraform/highlights.scm | 21 +++++++++++++++++++ queries/terraform/indents.scm | 1 + queries/terraform/injections.scm | 1 + .../{hcl => terraform}/function_call.tf | 0 .../indent-in-multiline-objects.tf | 0 .../indent-in-multiline-tuples.tf | 0 .../{hcl => terraform}/multiline-comments.tf | 0 .../{hcl => terraform}/multiple-attributes.tf | 0 .../{hcl => terraform}/multiple-blocks.tf | 0 .../{hcl => terraform}/nested_blocks.tf | 0 .../no-indent-after-brace.tf | 0 .../{hcl_spec.lua => terraform_spec.lua} | 4 ++-- 17 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 queries/terraform/folds.scm create mode 100644 queries/terraform/highlights.scm create mode 100644 queries/terraform/indents.scm create mode 100644 queries/terraform/injections.scm rename tests/indent/{hcl => terraform}/function_call.tf (100%) rename tests/indent/{hcl => terraform}/indent-in-multiline-objects.tf (100%) rename tests/indent/{hcl => terraform}/indent-in-multiline-tuples.tf (100%) rename tests/indent/{hcl => terraform}/multiline-comments.tf (100%) rename tests/indent/{hcl => terraform}/multiple-attributes.tf (100%) rename tests/indent/{hcl => terraform}/multiple-blocks.tf (100%) rename tests/indent/{hcl => terraform}/nested_blocks.tf (100%) rename tests/indent/{hcl => terraform}/no-indent-after-brace.tf (100%) rename tests/indent/{hcl_spec.lua => terraform_spec.lua} (95%) diff --git a/README.md b/README.md index 40aa11d6a..2f210f718 100644 --- a/README.md +++ b/README.md @@ -296,6 +296,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [swift](https://github.com/alex-pinkus/tree-sitter-swift) (maintained by @alex-pinkus) - [x] [sxhkdrc](https://github.com/RaafatTurki/tree-sitter-sxhkdrc) (maintained by @RaafatTurki) - [x] [teal](https://github.com/euclidianAce/tree-sitter-teal) (maintained by @euclidianAce) +- [x] [terraform](https://github.com/MichaHoffmann/tree-sitter-hcl) (maintained by @MichaHoffmann) - [x] [tiger](https://github.com/ambroisie/tree-sitter-tiger) (maintained by @ambroisie) - [x] [tlaplus](https://github.com/tlaplus-community/tree-sitter-tlaplus) (maintained by @ahelwer, @susliko) - [x] [todotxt](https://github.com/arnarg/tree-sitter-todotxt.git) (experimental, maintained by @arnarg) diff --git a/lockfile.json b/lockfile.json index bb4e18ade..97aad4ec5 100644 --- a/lockfile.json +++ b/lockfile.json @@ -374,6 +374,9 @@ "teal": { "revision": "1ae8c68e90523b26b93af56feb7868fe4214e2b2" }, + "terraform": { + "revision": "0ff887f2a60a147452d52db060de6b42f42f1441" + }, "tiger": { "revision": "a233ebe360a73a92c50978e5c4e9e471bc59ff42" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index f4e13974b..6bd94f93b 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -8,7 +8,6 @@ local filetype_to_parsername = { PKGBUILD = "bash", html_tags = "html", ["typescript.tsx"] = "tsx", - terraform = "hcl", ["html.handlebars"] = "glimmer", systemverilog = "verilog", cls = "latex", @@ -618,6 +617,17 @@ list.hcl = { filetype = "hcl", } +list.terraform = { + install_info = { + url = "https://github.com/MichaHoffmann/tree-sitter-hcl", + files = { "src/parser.c", "src/scanner.cc" }, + branch = "main", + location = "dialects/terraform", + }, + maintainers = { "@MichaHoffmann" }, + filetype = "terraform", +} + list.markdown = { install_info = { url = "https://github.com/MDeiml/tree-sitter-markdown", diff --git a/queries/hcl/highlights.scm b/queries/hcl/highlights.scm index 658369292..4f2eb2300 100644 --- a/queries/hcl/highlights.scm +++ b/queries/hcl/highlights.scm @@ -81,7 +81,8 @@ (comment) @comment @spell (identifier) @variable -(block (identifier) @type) +(body (block (identifier) @keyword)) +(body (block (body (block (identifier) @type)))) (function_call (identifier) @function) (attribute (identifier) @field) @@ -90,13 +91,9 @@ ; highlight identifier keys as though they were block attributes (object_elem key: (expression (variable_expr (identifier) @field))) -((identifier) @keyword (#any-of? @keyword "module" "root" "cwd" "resource" "variable" "data" "locals" "terraform" "provider" "output")) -((identifier) @type.builtin (#any-of? @type.builtin "bool" "string" "number" "object" "tuple" "list" "map" "set" "any")) -(variable_expr (identifier) @variable.builtin (#any-of? @variable.builtin "var" "local" "path")) -(get_attr (identifier) @variable.builtin (#any-of? @variable.builtin "root" "cwd" "module")) - -(object_elem val: (expression - (variable_expr - (identifier) @type.builtin (#any-of? @type.builtin "bool" "string" "number" "object" "tuple" "list" "map" "set" "any")))) +; var.foo, data.bar +; +; first element in get_attr is a keyword or a reference to a keyword +(expression (variable_expr (identifier) @keyword) (get_attr (identifier) @field)) (ERROR) @error diff --git a/queries/terraform/folds.scm b/queries/terraform/folds.scm new file mode 100644 index 000000000..0e5ffc2db --- /dev/null +++ b/queries/terraform/folds.scm @@ -0,0 +1 @@ +; inherits: hcl diff --git a/queries/terraform/highlights.scm b/queries/terraform/highlights.scm new file mode 100644 index 000000000..d31b83c82 --- /dev/null +++ b/queries/terraform/highlights.scm @@ -0,0 +1,21 @@ +; inherits: hcl + +; Terraform specific references +; +; +; local/module/data/var/output +(expression (variable_expr (identifier) @type.builtin (#any-of? @type.builtin "data" "var" "local" "module" "output")) (get_attr (identifier) @field)) + +; path.root/cwd/module +(expression (variable_expr (identifier) @type.builtin (#eq? @type.builtin "path")) (get_attr (identifier) @variable.builtin (#any-of? @variable.builtin "root" "cwd" "module"))) + +; terraform.workspace +(expression (variable_expr (identifier) @type.builtin (#eq? @type.builtin "terraform")) (get_attr (identifier) @variable.builtin (#any-of? @variable.builtin "workspace"))) + +; Terraform specific keywords + +; FIXME: ideally only for identifiers under a `variable` block to minimize false positives +((identifier) @type.builtin (#any-of? @type.builtin "bool" "string" "number" "object" "tuple" "list" "map" "set" "any")) +(object_elem val: (expression + (variable_expr + (identifier) @type.builtin (#any-of? @type.builtin "bool" "string" "number" "object" "tuple" "list" "map" "set" "any")))) diff --git a/queries/terraform/indents.scm b/queries/terraform/indents.scm new file mode 100644 index 000000000..0e5ffc2db --- /dev/null +++ b/queries/terraform/indents.scm @@ -0,0 +1 @@ +; inherits: hcl diff --git a/queries/terraform/injections.scm b/queries/terraform/injections.scm new file mode 100644 index 000000000..0e5ffc2db --- /dev/null +++ b/queries/terraform/injections.scm @@ -0,0 +1 @@ +; inherits: hcl diff --git a/tests/indent/hcl/function_call.tf b/tests/indent/terraform/function_call.tf similarity index 100% rename from tests/indent/hcl/function_call.tf rename to tests/indent/terraform/function_call.tf diff --git a/tests/indent/hcl/indent-in-multiline-objects.tf b/tests/indent/terraform/indent-in-multiline-objects.tf similarity index 100% rename from tests/indent/hcl/indent-in-multiline-objects.tf rename to tests/indent/terraform/indent-in-multiline-objects.tf diff --git a/tests/indent/hcl/indent-in-multiline-tuples.tf b/tests/indent/terraform/indent-in-multiline-tuples.tf similarity index 100% rename from tests/indent/hcl/indent-in-multiline-tuples.tf rename to tests/indent/terraform/indent-in-multiline-tuples.tf diff --git a/tests/indent/hcl/multiline-comments.tf b/tests/indent/terraform/multiline-comments.tf similarity index 100% rename from tests/indent/hcl/multiline-comments.tf rename to tests/indent/terraform/multiline-comments.tf diff --git a/tests/indent/hcl/multiple-attributes.tf b/tests/indent/terraform/multiple-attributes.tf similarity index 100% rename from tests/indent/hcl/multiple-attributes.tf rename to tests/indent/terraform/multiple-attributes.tf diff --git a/tests/indent/hcl/multiple-blocks.tf b/tests/indent/terraform/multiple-blocks.tf similarity index 100% rename from tests/indent/hcl/multiple-blocks.tf rename to tests/indent/terraform/multiple-blocks.tf diff --git a/tests/indent/hcl/nested_blocks.tf b/tests/indent/terraform/nested_blocks.tf similarity index 100% rename from tests/indent/hcl/nested_blocks.tf rename to tests/indent/terraform/nested_blocks.tf diff --git a/tests/indent/hcl/no-indent-after-brace.tf b/tests/indent/terraform/no-indent-after-brace.tf similarity index 100% rename from tests/indent/hcl/no-indent-after-brace.tf rename to tests/indent/terraform/no-indent-after-brace.tf diff --git a/tests/indent/hcl_spec.lua b/tests/indent/terraform_spec.lua similarity index 95% rename from tests/indent/hcl_spec.lua rename to tests/indent/terraform_spec.lua index ee53d89fc..49fa22c20 100644 --- a/tests/indent/hcl_spec.lua +++ b/tests/indent/terraform_spec.lua @@ -1,13 +1,13 @@ local Runner = require("tests.indent.common").Runner --local XFAIL = require("tests.indent.common").XFAIL -local run = Runner:new(it, "tests/indent/hcl", { +local run = Runner:new(it, "tests/indent/terraform", { tabstop = 2, shiftwidth = 2, expandtab = true, }) -describe("indent HCL:", function() +describe("indent Terraform:", function() describe("whole file:", function() run:whole_file(".", { expected_failures = {}, From f00d610256b63cef3e35af2cbaf45212625b4cc5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 31 Dec 2022 10:21:11 +0000 Subject: [PATCH 0318/3265] Update parsers: qmljs (#4064) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 97aad4ec5..6c0e0290a 100644 --- a/lockfile.json +++ b/lockfile.json @@ -300,7 +300,7 @@ "revision": "bd087020f0d8c183080ca615d38de0ec827aeeaf" }, "qmljs": { - "revision": "0b2b25bcaa7d4925d5f0dda16f6a99c588a437f1" + "revision": "ab75be9750e6f2f804638824d1790034286a830c" }, "query": { "revision": "0717de07078a20a8608c98ad5f26c208949d0e15" From ae5ab287bbffc06f10e45d1e590d25fcf7f003d9 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sat, 31 Dec 2022 13:44:53 +0100 Subject: [PATCH 0319/3265] docs: link to Matrix instead of Zulip --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2f210f718..9c10ef064 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@

nvim-treesitter

- - Zulip Chat + + Matrix Chat Linting and Style From 58c0d78de8d4fee3742381d77173ea50e828b47b Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Sat, 29 Oct 2022 22:53:01 -0300 Subject: [PATCH 0320/3265] r: update highlights --- queries/r/highlights.scm | 35 +++++++++++++++++------- tests/query/highlights/r/test.r | 47 +++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 9 deletions(-) create mode 100644 tests/query/highlights/r/test.r diff --git a/queries/r/highlights.scm b/queries/r/highlights.scm index 179200d34..01d089559 100755 --- a/queries/r/highlights.scm +++ b/queries/r/highlights.scm @@ -17,10 +17,25 @@ (identifier) @variable +((dollar (identifier) @variable.builtin) + (#eq? @variable.builtin "self")) + +((dollar _ (identifier) @field)) + +; Parameters + (formal_parameters (identifier) @parameter) + (formal_parameters (default_parameter name: (identifier) @parameter)) +(default_argument name: (identifier) @parameter) + +; Namespace + +(namespace_get namespace: (identifier) @namespace) +(namespace_get_internal namespace: (identifier) @namespace) + ; Operators [ "=" @@ -34,6 +49,7 @@ "+" "!" "~" + "?" ] @operator) (binary operator: [ @@ -90,7 +106,7 @@ (nan) (na) (null) -] @type.builtin +] @constant.builtin [ "if" @@ -111,17 +127,18 @@ "function" @keyword.function -(call function: (identifier) @function) -(default_argument name: (identifier) @parameter) +; Functions/Methos -(namespace_get function: (identifier) @method) -(namespace_get_internal function: (identifier) @method) +(call function: (identifier) @function.call) -(namespace_get namespace: (identifier) @namespace - "::" @operator) +(call + (namespace_get function: (identifier) @function.call)) -(namespace_get_internal namespace: (identifier) @namespace - ":::" @operator) +(call + (namespace_get_internal function: (identifier) @function.call)) + +(call + function: ((dollar _ (identifier) @method.call))) ; Error (ERROR) @error diff --git a/tests/query/highlights/r/test.r b/tests/query/highlights/r/test.r new file mode 100644 index 000000000..8daf704ea --- /dev/null +++ b/tests/query/highlights/r/test.r @@ -0,0 +1,47 @@ +init <- 1 +# ^ @variable +# ^ @operator +# ^ @float + +r"{(\1\2)}" -> `%r%` +# ^ @string +# ^ @string.escape +# ^ @operator +# ^ @variable + + +foo <- c(1L, 2L) +# ^ @function.call +# ^ @number + +b <- list(TRUE, FALSE, NA, Inf) +# ^ @boolean +# ^ @boolean +# ^ @constant.builtin +# ^ @constant.builtin + +b <- list(name = "r", version = R.version$major) +# ^ @parameter +# ^ @string +# ^ @punctuation.special +# ^ @field + +Lang$new(name = "r")$print() +# ^ @method.call + +for(i in 1:10) { +# <- @repeat +# ^ @keyword +} + +add <- function(a, b = 1, ...) { +# ^ @keyword.function +# ^ @parameter +# ^ @parameter +# ^ @keyword + return(a + b) +} + +base::letters +# ^ @namespace +# ^ @variable From 966393dc38ddc8fd9af8bd5f987493fd83b9af35 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Sat, 29 Oct 2022 23:09:50 -0300 Subject: [PATCH 0321/3265] r: move inf to constant.builtin --- queries/r/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/r/highlights.scm b/queries/r/highlights.scm index 01d089559..e2a9da8c0 100755 --- a/queries/r/highlights.scm +++ b/queries/r/highlights.scm @@ -99,13 +99,13 @@ (dots) (break) (next) - (inf) ] @keyword [ (nan) (na) (null) + (inf) ] @constant.builtin [ From ec3d4af1045f403c2e7f45d3df8b5db0b1658739 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Tue, 29 Nov 2022 13:54:07 -0300 Subject: [PATCH 0322/3265] fix test --- queries/r/highlights.scm | 2 +- tests/query/highlights/r/test.r | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/r/highlights.scm b/queries/r/highlights.scm index e2a9da8c0..07fdde88c 100755 --- a/queries/r/highlights.scm +++ b/queries/r/highlights.scm @@ -88,7 +88,7 @@ "}" ] @punctuation.bracket -(dollar "$" @operator) +(dollar _ "$" @operator) (subset2 "[[" @punctuation.bracket diff --git a/tests/query/highlights/r/test.r b/tests/query/highlights/r/test.r index 8daf704ea..5568b61b5 100644 --- a/tests/query/highlights/r/test.r +++ b/tests/query/highlights/r/test.r @@ -23,7 +23,7 @@ b <- list(TRUE, FALSE, NA, Inf) b <- list(name = "r", version = R.version$major) # ^ @parameter # ^ @string -# ^ @punctuation.special +# ^ @operator # ^ @field Lang$new(name = "r")$print() From 6d2b0bd381428f5e550234dd058215502baeb3ab Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Tue, 29 Nov 2022 14:07:39 -0300 Subject: [PATCH 0323/3265] move 'in' to repeat --- queries/r/highlights.scm | 2 +- tests/query/highlights/r/test.r | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/queries/r/highlights.scm b/queries/r/highlights.scm index 07fdde88c..c65d766bf 100755 --- a/queries/r/highlights.scm +++ b/queries/r/highlights.scm @@ -95,7 +95,6 @@ "]]" @punctuation.bracket) [ - "in" (dots) (break) (next) @@ -118,6 +117,7 @@ "while" "repeat" "for" + "in" ] @repeat [ diff --git a/tests/query/highlights/r/test.r b/tests/query/highlights/r/test.r index 5568b61b5..b6bfd1ff5 100644 --- a/tests/query/highlights/r/test.r +++ b/tests/query/highlights/r/test.r @@ -31,7 +31,7 @@ Lang$new(name = "r")$print() for(i in 1:10) { # <- @repeat -# ^ @keyword +# ^ @repeat } add <- function(a, b = 1, ...) { From c2301adfcbf1f918e0aa549fd4581f213f0ca064 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 26 Dec 2022 15:35:29 +0100 Subject: [PATCH 0324/3265] highlights(cuda): add missing `"__global__"` --- queries/cuda/highlights.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/queries/cuda/highlights.scm b/queries/cuda/highlights.scm index 20a753be3..e5eada37f 100644 --- a/queries/cuda/highlights.scm +++ b/queries/cuda/highlights.scm @@ -5,6 +5,7 @@ [ "__host__" "__device__" + "__global__" "__forceinline__" ] @storageclass From 0598450eb80af38dbd071953f047afa0b574986f Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Tue, 27 Dec 2022 12:35:43 +0100 Subject: [PATCH 0325/3265] feat: also reload parsers after uninstallation --- lua/nvim-treesitter/install.lua | 35 ++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 2942f5117..1b16d5e01 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -42,6 +42,26 @@ local function get_job_status() .. "]" end +---@param lang string +---@return function +local function reattach_if_possible_fn(lang) + return function() + for _, buf in ipairs(vim.api.nvim_list_bufs()) do + if parsers.get_buf_lang(buf) == lang then + vim._ts_remove_language(lang) + local ok = pcall(vim.treesitter.language.require_language, lang) + for _, mod in ipairs(require("nvim-treesitter.configs").available_modules()) do + if ok then + require("nvim-treesitter.configs").reattach_module(mod, buf) + else + require("nvim-treesitter.configs").detach_module(mod, buf) + end + end + end + end + end +end + ---@param lang string ---@param validate boolean|nil ---@return InstallInfo @@ -384,17 +404,7 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync, end, }, { -- auto-attach modules after installation - cmd = function() - for _, buf in ipairs(vim.api.nvim_list_bufs()) do - if parsers.get_buf_lang(buf) == lang then - vim._ts_remove_language(lang) - vim.treesitter.language.require_language(lang) - for _, mod in ipairs(require("nvim-treesitter.configs").available_modules()) do - require("nvim-treesitter.configs").reattach_module(mod, buf) - end - end - end - end, + cmd = reattach_if_possible_fn(lang), }, }) if not from_local_path then @@ -594,6 +604,9 @@ function M.uninstall(...) end end, }, + { -- auto-reattach or detach modules after uninstallation + cmd = reattach_if_possible_fn(lang), + }, } M.iter_cmd(command_list, 1, lang, "Treesitter parser for " .. lang .. " has been uninstalled") elseif #all_parsers > 0 then From 29304e16bbb74559a22cb78ef7c59f086a9cc9e2 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Tue, 27 Dec 2022 20:39:33 +0100 Subject: [PATCH 0326/3265] fix: show errors when reload after installation fails --- lua/nvim-treesitter/configs.lua | 4 ++-- lua/nvim-treesitter/install.lua | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 0b9eaa512..87f930b8f 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -232,7 +232,7 @@ end ---Recurses through all modules including submodules ---@param accumulator function called for each module ----@param root {[string]: TSModule} root configuration table to start at +---@param root {[string]: TSModule}|nil root configuration table to start at ---@param path string|nil prefix path local function recurse_modules(accumulator, root, path) root = root or config.modules @@ -529,7 +529,7 @@ function M.reattach_module(mod_name, bufnr, lang) end ---Gets available modules ----@param root {[string]:TSModule} table to find modules +---@param root {[string]:TSModule}|nil table to find modules function M.available_modules(root) local modules = {} diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 1b16d5e01..c0128130b 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -44,15 +44,18 @@ end ---@param lang string ---@return function -local function reattach_if_possible_fn(lang) +local function reattach_if_possible_fn(lang, error_on_fail) return function() for _, buf in ipairs(vim.api.nvim_list_bufs()) do if parsers.get_buf_lang(buf) == lang then vim._ts_remove_language(lang) - local ok = pcall(vim.treesitter.language.require_language, lang) + local ok, err = pcall(vim.treesitter.language.require_language, lang) + if not ok and error_on_fail then + vim.notify("Could not load parser for " .. lang .. ": " .. vim.inspect(err)) + end for _, mod in ipairs(require("nvim-treesitter.configs").available_modules()) do if ok then - require("nvim-treesitter.configs").reattach_module(mod, buf) + require("nvim-treesitter.configs").reattach_module(mod, buf, lang) else require("nvim-treesitter.configs").detach_module(mod, buf) end @@ -404,7 +407,7 @@ local function run_install(cache_folder, install_folder, lang, repo, with_sync, end, }, { -- auto-attach modules after installation - cmd = reattach_if_possible_fn(lang), + cmd = reattach_if_possible_fn(lang, true), }, }) if not from_local_path then @@ -605,7 +608,7 @@ function M.uninstall(...) end, }, { -- auto-reattach or detach modules after uninstallation - cmd = reattach_if_possible_fn(lang), + cmd = reattach_if_possible_fn(lang, false), }, } M.iter_cmd(command_list, 1, lang, "Treesitter parser for " .. lang .. " has been uninstalled") From 817531ce6f0c7a6236e08aec435e9655e5835afb Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sun, 25 Dec 2022 17:40:05 +0100 Subject: [PATCH 0327/3265] parsers: add wgsl_bevy This adds an extension of tree-sitter-wgsl that understands [Bevy's](https://bevyengine.org/) preprocessor directives. --- lua/nvim-treesitter/parsers.lua | 9 +++++++++ queries/wgsl_bevy/folds.scm | 5 +++++ queries/wgsl_bevy/highlights.scm | 25 +++++++++++++++++++++++++ queries/wgsl_bevy/indents.scm | 7 +++++++ 4 files changed, 46 insertions(+) create mode 100644 queries/wgsl_bevy/folds.scm create mode 100644 queries/wgsl_bevy/highlights.scm create mode 100644 queries/wgsl_bevy/indents.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 6bd94f93b..0194f776c 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1183,6 +1183,15 @@ list.wgsl = { filetype = "wgsl", } +list.wgsl_bevy = { + install_info = { + url = "https://github.com/theHamsta/tree-sitter-wgsl-bevy", + files = { "src/parser.c" }, + generate_requires_npm = true, + }, + maintainers = { "@theHamsta" }, +} + list.m68k = { install_info = { url = "https://github.com/grahambates/tree-sitter-m68k", diff --git a/queries/wgsl_bevy/folds.scm b/queries/wgsl_bevy/folds.scm new file mode 100644 index 000000000..7d2547fa0 --- /dev/null +++ b/queries/wgsl_bevy/folds.scm @@ -0,0 +1,5 @@ +; inherits wgsl + +[ + (preproc_ifdef) +] @fold diff --git a/queries/wgsl_bevy/highlights.scm b/queries/wgsl_bevy/highlights.scm new file mode 100644 index 000000000..2b33eff66 --- /dev/null +++ b/queries/wgsl_bevy/highlights.scm @@ -0,0 +1,25 @@ +; inherits wgsl + +[ + "#import" + "#define_import_path" +] @include +"::" @punctuation.delimiter + +(import_path (identifier) @namespace (identifier)) + +(struct_declaration + (preproc_ifdef (struct_member (variable_identifier_declaration (identifier) @field)))) +(struct_declaration + (preproc_ifdef + (preproc_else (struct_member (variable_identifier_declaration (identifier) @field))))) + +(preproc_ifdef + name: (identifier) @constant.macro) + +[ + "#ifdef" + "#ifndef" + "#endif" + "#else" +] @preproc diff --git a/queries/wgsl_bevy/indents.scm b/queries/wgsl_bevy/indents.scm new file mode 100644 index 000000000..84d1845c0 --- /dev/null +++ b/queries/wgsl_bevy/indents.scm @@ -0,0 +1,7 @@ +; inherits wgsl +[ + "#ifdef" + "#ifndef" + "#else" + "#endif" +] @zero_indent From 5afa9e50407c137c61082627a4456ab99cfbed18 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sat, 24 Dec 2022 17:01:23 +0100 Subject: [PATCH 0328/3265] highlights(wgsl): highlight "->" for return types as `@punctuation.delimiter` --- queries/wgsl/highlights.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries/wgsl/highlights.scm b/queries/wgsl/highlights.scm index c9ab0668f..0411880d7 100644 --- a/queries/wgsl/highlights.scm +++ b/queries/wgsl/highlights.scm @@ -50,7 +50,7 @@ "return" @keyword.return -[ "," "." ":" ";" ] @punctuation.delimiter +[ "," "." ":" ";" "->" ] @punctuation.delimiter ["(" ")" "[" "]" "{" "}"] @punctuation.bracket From 168567efb8aa3874f3da8832dbcd3d1a4ff40d3b Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 31 Dec 2022 14:21:00 +0000 Subject: [PATCH 0329/3265] Update parsers: wgsl_bevy"] --- lockfile.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lockfile.json b/lockfile.json index 6c0e0290a..87416e4ef 100644 --- a/lockfile.json +++ b/lockfile.json @@ -422,6 +422,9 @@ "wgsl": { "revision": "61d2604525d47238ecbce8aa38f10cb81ba68fd3" }, + "wgsl_bevy": { + "revision": "c81dc770310795caea5e00996505deba024ec698" + }, "yaml": { "revision": "0e36bed171768908f331ff7dff9d956bae016efb" }, From b019eb30323635d680aa2f32e498a1831676ebb1 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 26 Dec 2022 16:47:30 +0100 Subject: [PATCH 0330/3265] indents(c): treat `"#ifndef"`, `"#elif"` like `"#ifdef"` --- queries/c/indents.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/queries/c/indents.scm b/queries/c/indents.scm index 1931471b9..661ae8228 100644 --- a/queries/c/indents.scm +++ b/queries/c/indents.scm @@ -31,6 +31,8 @@ [ "#define" "#ifdef" + "#ifndef" + "#elif" "#if" "#else" "#endif" From 4f3aa2af446ed31c9e8cd4ab7757883f825d448b Mon Sep 17 00:00:00 2001 From: Ananda Umamil Date: Sun, 1 Jan 2023 03:22:36 +0700 Subject: [PATCH 0331/3265] highlights(elm): improve highlights --- queries/elm/highlights.scm | 190 ++++++++++++++++++++++++++++--------- 1 file changed, 146 insertions(+), 44 deletions(-) diff --git a/queries/elm/highlights.scm b/queries/elm/highlights.scm index 63514eb3e..61601c442 100644 --- a/queries/elm/highlights.scm +++ b/queries/elm/highlights.scm @@ -1,12 +1,18 @@ -[(line_comment) (block_comment)] @comment +[ + (line_comment) + (block_comment) +] @comment + ; Keywords +;--------- + [ - "if" - "then" - "else" - (case) - (of) + "if" + "then" + "else" + (case) + (of) ] @conditional [ @@ -14,18 +20,28 @@ "in" (as) (port) - (exposing) (alias) (infix) (module) + (type) ] @keyword +[ + (import) + (exposing) +] @include + + +; Punctuation +;------------ + [ (double_dot) - "|" ] @punctuation.special + [ "," + "|" (dot) ] @punctuation.delimiter @@ -34,65 +50,151 @@ ")" "{" "}" + "[" + "]" ] @punctuation.bracket + +; Variables +;---------- + +(value_qid + (lower_case_identifier) @variable) +(value_declaration + (function_declaration_left (lower_case_identifier) @variable)) (type_annotation - (lower_case_identifier) @function) + (lower_case_identifier) @variable) (port_annotation - (lower_case_identifier) @function) + (lower_case_identifier) @variable) +(anything_pattern + (underscore) @variable) +(record_base_identifier + (lower_case_identifier) @variable) +(lower_pattern + (lower_case_identifier) @variable) +(exposed_value + (lower_case_identifier) @variable) + +(value_qid + ((dot) (lower_case_identifier) @field)) +(field_access_expr + ((dot) (lower_case_identifier) @field)) + (function_declaration_left - (lower_case_identifier) @function) + (anything_pattern (underscore) @parameter)) +(function_declaration_left + (lower_pattern (lower_case_identifier) @parameter)) + + +; Functions +;---------- + +(value_declaration + functionDeclarationLeft: + (function_declaration_left + (lower_case_identifier) @function + (pattern))) +(value_declaration + functionDeclarationLeft: + (function_declaration_left + (lower_case_identifier) @function + pattern: (_))) +(value_declaration + functionDeclarationLeft: + (function_declaration_left + (lower_case_identifier) @function) + body: (anonymous_function_expr)) +(type_annotation + name: (lower_case_identifier) @function + typeExpression: (type_expression (arrow))) +(port_annotation + name: (lower_case_identifier) @function + typeExpression: (type_expression (arrow))) + (function_call_expr - target: (value_expr) @function) + target: (value_expr + (value_qid (lower_case_identifier) @function.call))) -(value_qid (upper_case_identifier) @constructor) -(value_qid ((dot) (lower_case_identifier) @field)) -(field_access_expr ((dot) (lower_case_identifier) @field)) -(lower_pattern) @parameter -(record_base_identifier) @method - -[ - (backslash) - (underscore) -] @function +; Operators +;---------- [ (operator_identifier) (eq) (colon) (arrow) + (backslash) + "::" ] @operator -(import) @include -(number_constant_expr) @number - -(type) @keyword +; Modules +;-------- (module_declaration - (upper_case_qid (upper_case_identifier)) @constructor) -(type_declaration - (upper_case_identifier) @constructor) -(type_ref) @type -(type_alias_declaration - name: (upper_case_identifier) @type.definition) -(field_type name: - (lower_case_identifier) @property) - -(union_variant - (upper_case_identifier) @symbol) -(union_pattern) @symbol + (upper_case_qid (upper_case_identifier) @namespace)) +(import_clause + (upper_case_qid (upper_case_identifier) @namespace)) +(as_clause + (upper_case_identifier) @namespace) (value_expr - (upper_case_qid (upper_case_identifier)) @symbol) + (value_qid (upper_case_identifier) @namespace)) -; strings -(string_escape) @string -(open_quote) @string -(close_quote) @string -(regular_string_part) @string + +; Types +;------ + +(type_declaration + (upper_case_identifier) @type) +(type_ref + (upper_case_qid (upper_case_identifier) @type)) +(type_variable + (lower_case_identifier) @type) +(lower_type_name + (lower_case_identifier) @type) +(exposed_type + (upper_case_identifier) @type) + +(type_alias_declaration + (upper_case_identifier) @type.definition) + +(field_type + name: (lower_case_identifier) @property) +(field + name: (lower_case_identifier) @property) + +(type_declaration + (union_variant (upper_case_identifier) @constructor)) +(union_pattern + (upper_case_qid (upper_case_identifier) @constructor)) +(value_expr + (upper_case_qid (upper_case_identifier)) @constructor) + + +; Literals +;--------- + +(number_constant_expr + (number_literal) @number) + +(upper_case_qid + ((upper_case_identifier) @_bool (#match? @_bool "(True|False)")) @boolean) + +[ + (open_quote) + (close_quote) +] @string +(string_constant_expr + (string_escape) @string) +(string_constant_expr + (regular_string_part) @string) [ (open_char) (close_char) ] @character +(char_constant_expr + (string_escape) @character) +(char_constant_expr + (regular_string_part) @character) From ab414f8b1c84d8d321f6a56a080132c9f1ce5c0c Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sun, 1 Jan 2023 15:15:40 +0100 Subject: [PATCH 0332/3265] ci: allow negative assertions in tests --- .github/workflows/tests.yml | 2 +- tests/query/highlights/rust/super-crate-imports.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 tests/query/highlights/rust/super-crate-imports.rs diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8e4551bf7..4c807cdcb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -35,7 +35,7 @@ jobs: mkdir -p ~/.local/share/nvim/site/pack/plenary.nvim/start cd ~/.local/share/nvim/site/pack/plenary.nvim/start git clone https://github.com/nvim-lua/plenary.nvim - curl -L https://github.com/theHamsta/highlight-assertions/releases/download/v0.1.5/highlight-assertions_v0.1.5_x86_64-unknown-linux-gnu.tar.gz | tar -xz + curl -L https://github.com/theHamsta/highlight-assertions/releases/download/v0.1.6/highlight-assertions_v0.1.6_x86_64-unknown-linux-gnu.tar.gz | tar -xz cp highlight-assertions /usr/local/bin - name: Install and prepare Neovim diff --git a/tests/query/highlights/rust/super-crate-imports.rs b/tests/query/highlights/rust/super-crate-imports.rs new file mode 100644 index 000000000..49a0c2918 --- /dev/null +++ b/tests/query/highlights/rust/super-crate-imports.rs @@ -0,0 +1,12 @@ +use crate::a; +// ^ namespace +// ^ !keyword +use crate::{b, c}; +// ^ namespace +// ^ !keyword +use super::a; +// ^ namespace +// ^ !keyword +use super::{b, c}; +// ^ namespace +// ^ !keyword From 6a31d9086e38bde36415c736ed189747971cf2af Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sun, 1 Jan 2023 15:16:04 +0100 Subject: [PATCH 0333/3265] highlights(rust): use `@namespace` for `[(crate) (self) (super)]` Fixes https://github.com/nvim-treesitter/nvim-treesitter/issues/3992 --- queries/rust/highlights.scm | 8 +++--- tests/query/highlights_spec.lua | 48 ++++++++++++++++++++++----------- 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index c7cd1174b..db80fbb32 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -209,10 +209,10 @@ (type_cast_expression "as" @keyword.operator) (qualified_type "as" @keyword.operator) -(use_list (self) @keyword) -(scoped_use_list (self) @keyword) -(scoped_identifier [(crate) (super) (self)] @keyword) -(visibility_modifier [(crate) (super) (self)] @keyword) +(use_list (self) @namespace) +(scoped_use_list (self) @namespace) +(scoped_identifier [(crate) (super) (self)] @namespace) +(visibility_modifier [(crate) (super) (self)] @namespace) [ "else" diff --git a/tests/query/highlights_spec.lua b/tests/query/highlights_spec.lua index ff022ba21..8bfd3c2ec 100644 --- a/tests/query/highlights_spec.lua +++ b/tests/query/highlights_spec.lua @@ -76,21 +76,39 @@ local function check_assertions(file) end end end, true) - assert.True( - captures[assertion.expected_capture_name] or highlights[assertion.expected_capture_name], - "Error in at " - .. file - .. ":" - .. (row + 1) - .. ":" - .. (col + 1) - .. ': expected "' - .. assertion.expected_capture_name - .. '", captures: ' - .. vim.inspect(vim.tbl_keys(captures)) - .. '", highlights: ' - .. vim.inspect(vim.tbl_keys(highlights)) - ) + if assertion.expected_capture_name:match "^!" then + assert.Falsy( + captures[assertion.expected_capture_name:sub(2)] or highlights[assertion.expected_capture_name:sub(2)], + "Error in at " + .. file + .. ":" + .. (row + 1) + .. ":" + .. (col + 1) + .. ': expected "' + .. assertion.expected_capture_name + .. '", captures: ' + .. vim.inspect(vim.tbl_keys(captures)) + .. '", highlights: ' + .. vim.inspect(vim.tbl_keys(highlights)) + ) + else + assert.True( + captures[assertion.expected_capture_name] or highlights[assertion.expected_capture_name], + "Error in at " + .. file + .. ":" + .. (row + 1) + .. ":" + .. (col + 1) + .. ': expected "' + .. assertion.expected_capture_name + .. '", captures: ' + .. vim.inspect(vim.tbl_keys(captures)) + .. '", highlights: ' + .. vim.inspect(vim.tbl_keys(highlights)) + ) + end end end From ccc42a96d92b105629cb257c5bbe33d62a35f446 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 1 Jan 2023 14:49:31 +0000 Subject: [PATCH 0334/3265] Update parsers: latex --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 87416e4ef..a168dc4a0 100644 --- a/lockfile.json +++ b/lockfile.json @@ -213,7 +213,7 @@ "revision": "7744b56f03ac1e5643fad23c9dd90837fe97291e" }, "latex": { - "revision": "1ec3941b971dccfa36cb1cd6221a2e4a1cd3e250" + "revision": "dfb9bbb72f2198e73cbac67035b9e517012d4674" }, "ledger": { "revision": "47b8971448ce5e9abac865f450c1b14fb3b6eee9" From 612a76245506436dba36c3156c1317a212e6d0fb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 1 Jan 2023 15:07:05 +0000 Subject: [PATCH 0335/3265] Update parsers: latex (#4072) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index a168dc4a0..9b95bf110 100644 --- a/lockfile.json +++ b/lockfile.json @@ -213,7 +213,7 @@ "revision": "7744b56f03ac1e5643fad23c9dd90837fe97291e" }, "latex": { - "revision": "dfb9bbb72f2198e73cbac67035b9e517012d4674" + "revision": "6b7ea839307670e6bda011f888717d3a882ecc09" }, "ledger": { "revision": "47b8971448ce5e9abac865f450c1b14fb3b6eee9" From 3a621b9a8362fac358d828254485024986d6d81b Mon Sep 17 00:00:00 2001 From: Manuel Barros Date: Wed, 30 Nov 2022 11:50:36 +0000 Subject: [PATCH 0336/3265] highlights(haskell): Fix partially applied infix functions --- queries/haskell/highlights.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/queries/haskell/highlights.scm b/queries/haskell/highlights.scm index 297a410da..f89375664 100644 --- a/queries/haskell/highlights.scm +++ b/queries/haskell/highlights.scm @@ -119,6 +119,8 @@ ((signature (variable) @_type (forall (context (fun)))) . (function (variable) @function) (#eq? @function @_type)) (exp_infix (variable) @operator) ; consider infix functions as operators +(exp_section_right (variable) @operator) ; partially applied infix functions (sections) also get highlighted as operators +(exp_section_left (variable) @operator) (exp_infix (exp_name) @function.call (#set! "priority" 101)) (exp_apply . (exp_name (variable) @function.call)) From b67822bf58b0fbf0c496ae21a177d02fa8388edf Mon Sep 17 00:00:00 2001 From: Ananda Umamil Date: Mon, 2 Jan 2023 01:43:56 +0700 Subject: [PATCH 0337/3265] highlights(elm): zero args constructor pattern matching --- queries/elm/highlights.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/queries/elm/highlights.scm b/queries/elm/highlights.scm index 61601c442..f9150c8ae 100644 --- a/queries/elm/highlights.scm +++ b/queries/elm/highlights.scm @@ -166,6 +166,8 @@ (type_declaration (union_variant (upper_case_identifier) @constructor)) +(nullary_constructor_argument_pattern + (upper_case_qid (upper_case_identifier) @constructor)) (union_pattern (upper_case_qid (upper_case_identifier) @constructor)) (value_expr From ed824394f521086ab8a7f33f9f90ec7288ce10b9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 2 Jan 2023 09:50:13 +0000 Subject: [PATCH 0338/3265] Update parsers: help (#4075) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 9b95bf110..c3b626321 100644 --- a/lockfile.json +++ b/lockfile.json @@ -162,7 +162,7 @@ "revision": "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" }, "help": { - "revision": "61c75058299f3d1cf565697e4073d7b2cc6a6d6c" + "revision": "9dee68e3912d16e9878b06e3cd87e21ada3d9029" }, "hjson": { "revision": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0" From 12e95e160d7d45b76a36bca6303dd8447ab77490 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 2 Jan 2023 10:10:56 +0000 Subject: [PATCH 0339/3265] Update parsers: v (#4077) Co-authored-by: GitHub --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index c3b626321..3730282f1 100644 --- a/lockfile.json +++ b/lockfile.json @@ -402,7 +402,7 @@ "revision": "faad9094f4061a43d4e9005439e9e85c6541ebe7" }, "v": { - "revision": "f0aa56eec7689f08a389c90ad8d3e5e0d18b3cd7" + "revision": "0e3725a0c10d357f16b716f9a321a337bc802f02" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From 408d08810d875517ae094d53cea12f6bb52e1c22 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 3 Jan 2023 06:37:53 +0000 Subject: [PATCH 0340/3265] Update parsers: gitcommit, norg, v --- lockfile.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lockfile.json b/lockfile.json index 3730282f1..20a5863a0 100644 --- a/lockfile.json +++ b/lockfile.json @@ -120,7 +120,7 @@ "revision": "577a075d46ea109905c5cb6179809df88da61ce9" }, "gitcommit": { - "revision": "f838621d00831967a39ac8293cd3c23b0f49252e" + "revision": "74b40770e6299564f0b7ca474105d7d5238d0583" }, "gitignore": { "revision": "f4685bf11ac466dd278449bcfe5fd014e94aa504" @@ -255,7 +255,7 @@ "revision": "6b71a810c0acd49b980c50fc79092561f7cee307" }, "norg": { - "revision": "8ad20059c6f128861c4506fff866150ffee1d6f4" + "revision": "6348056b999f06c2c7f43bb0a5aa7cfde5302712" }, "ocaml": { "revision": "f1106bf834703f1f2f795da1a3b5f8f40174ffcc" @@ -402,7 +402,7 @@ "revision": "faad9094f4061a43d4e9005439e9e85c6541ebe7" }, "v": { - "revision": "0e3725a0c10d357f16b716f9a321a337bc802f02" + "revision": "e5ec6a42f1af42d4101fb226a98b8db0f4f21c88" }, "vala": { "revision": "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b" From ac9b33d5bde6d266ad4020f8a9e9b5e2a5310a3b Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sat, 31 Dec 2022 15:36:04 +0100 Subject: [PATCH 0341/3265] ci: trim final `"]` when parsers get added in update-lockfile.yml See https://github.com/nvim-treesitter/nvim-treesitter/pull/4066 The diff will look different when a whole parser gets added: ``` @ ["gleam","revision"] - "cfcbca3f8f734773878e00d7bfcedea98eb10be2" + "3eb2e1783f3bf6f85c16cdd150e2f256b2f6844e" @ ["nix","revision"] - "6b71a810c0acd49b980c50fc79092561f7cee307" + "1b69cf1fa92366eefbe6863c184e5d2ece5f187d" @ ["wgsl_bevy"] + {"revision":"c81dc770310795caea5e00996505deba024ec698"} ``` Co-authored-by: ObserverOfTime --- .github/workflows/update-lockfile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-lockfile.yml b/.github/workflows/update-lockfile.yml index c95ecf73a..41ab41308 100644 --- a/.github/workflows/update-lockfile.yml +++ b/.github/workflows/update-lockfile.yml @@ -45,7 +45,7 @@ jobs: git config user.name "GitHub" git config user.email "noreply@github.com" git add lockfile.json - UPDATED_PARSERS=$(echo $(/tmp/jd -set /tmp/old_lockfile.json lockfile.json | grep @ | sed 's/","revision"\]//' | sed 's/@ \["//') | sed 's/ /, /g') + UPDATED_PARSERS=$(/tmp/jd -set /tmp/old_lockfile.json lockfile.json | sed -n '/@/s/","revision"]//;s/"]//;s/@ \["//p' | sed 'N;s/\n/, /') echo "UPDATED_PARSERS=$UPDATED_PARSERS" >> $GITHUB_ENV git commit -m "Update parsers: $UPDATED_PARSERS" || echo 'No commit necessary!' git clean -xf From 7951eb53f8f9737c247f841f6911971b150ad78a Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 3 Jan 2023 10:33:53 +0000 Subject: [PATCH 0342/3265] Update parsers: scala --- lockfile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lockfile.json b/lockfile.json index 20a5863a0..a2a439a6d 100644 --- a/lockfile.json +++ b/lockfile.json @@ -333,7 +333,7 @@ "revision": "f7fb205c424b0962de59b26b931fe484e1262b35" }, "scala": { - "revision": "140c96cf398693189d4e50f76d19ddfcd8a018f8" + "revision": "314bc06e59b3e0a37f224b1d391fd764757abd70" }, "scheme": { "revision": "16bdcf0495865e17ae5b995257458e31e8b7f450" From 6f4b9b190baaa4c10d8e60108ceb61b486f6e1a3 Mon Sep 17 00:00:00 2001 From: Lucario387 Date: Mon, 2 Jan 2023 02:38:54 +0900 Subject: [PATCH 0343/3265] refactor(vue, html): Update injections Update html_tags injections so that html/vue/svelte parsers can use it without having a script/style tag being captured twice Signed-off-by: Pham Huy Hoang --- queries/html/injections.scm | 13 +--- queries/html_tags/injections.scm | 68 +++++++++++++++++-- queries/vue/injections.scm | 63 +++++------------ .../injections/html/test-html-injections.html | 45 ++++++++++++ 4 files changed, 126 insertions(+), 63 deletions(-) create mode 100644 tests/query/injections/html/test-html-injections.html diff --git a/queries/html/injections.scm b/queries/html/injections.scm index 682431195..7ddb5beae 100644 --- a/queries/html/injections.scm +++ b/queries/html/injections.scm @@ -1,12 +1 @@ -((style_element - (raw_text) @css)) - -((attribute - (attribute_name) @_attr - (quoted_attribute_value (attribute_value) @css)) - (#eq? @_attr "style")) - -((script_element - (raw_text) @javascript)) - -(comment) @comment +; inherits html_tags diff --git a/queries/html_tags/injections.scm b/queries/html_tags/injections.scm index 80c0d2a4a..63d00a753 100644 --- a/queries/html_tags/injections.scm +++ b/queries/html_tags/injections.scm @@ -1,7 +1,67 @@ -((style_element - (raw_text) @css)) +; +( + (style_element + (start_tag) @_no_attribute + (raw_text) @css) + (#match? @_no_attribute "^\\<\\s*style\\s*\\>$") + ; unsure why, but without escaping < and > the query breaks +) -((script_element - (raw_text) @javascript)) +; +; Add "lang" to predicate check so that vue/svelte can inherit this +; without having this element being captured twice +( + (style_element + (start_tag + (attribute + (attribute_name) @_no_set_type)) + (raw_text) @css) + (#not-any-of? @_no_set_type "type" "lang") +) + +( + (style_element + (start_tag + (attribute + (attribute_name) @_type + (quoted_attribute_value (attribute_value) @_css))) + (raw_text) @css) + (#eq? @_type "type") + (#eq? @_css "text/css") +) + +; +( + (script_element + (start_tag) @_no_attribute + (raw_text) @javascript) + (#match? @_no_attribute "^\\<\\s*script\\s*\\>$") +) + +; +( + (script_element + (start_tag + (attribute + (attribute_name) @_no_set_type)) + (raw_text) @javascript) + (#not-any-of? @_no_set_type "type" "lang") +) + +( + (script_element + (start_tag + (attribute + (attribute_name) @_type + (quoted_attribute_value (attribute_value) @_javascript))) + (raw_text) @javascript) + (#eq? @_type "type") + (#eq? @_javascript "text/javascript") +) + +((attribute + (attribute_name) @_attr + (quoted_attribute_value (attribute_value) @css)) + (#eq? @_attr "style")) (comment) @comment diff --git a/queries/vue/injections.scm b/queries/vue/injections.scm index 223791c09..84ac2160e 100644 --- a/queries/vue/injections.scm +++ b/queries/vue/injections.scm @@ -1,20 +1,6 @@ -( - (style_element - (start_tag) @_no_attribute - (raw_text) @css) - (#match? @_no_attribute "^\\<\\s*style\\s*\\>$") - ; unsure why, but without escaping < and > the query breaks -) - -( - (style_element - (start_tag - (attribute - (attribute_name) @_no_lang)) - (raw_text) @css) - (#not-eq? @_no_lang "lang") -) +; inherits html_tags +; + + +

+ + From 28baed769815c54b243f0df606ccb4114287e772 Mon Sep 17 00:00:00 2001 From: Lucario387 Date: Mon, 2 Jan 2023 10:47:46 +0900 Subject: [PATCH 0344/3265] refactor(svelte): Remove duplicated queries These injection queries are defined already in html_tags, remove them Signed-off-by: Pham Huy Hoang --- queries/svelte/injections.scm | 11 ++---- .../svelte/test-svelte-injections.svelte | 39 +++++++++++++++++++ 2 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 tests/query/injections/svelte/test-svelte-injections.svelte diff --git a/queries/svelte/injections.scm b/queries/svelte/injections.scm index d66530f7a..65adb5143 100644 --- a/queries/svelte/injections.scm +++ b/queries/svelte/injections.scm @@ -4,16 +4,13 @@ (style_element (start_tag (attribute + (attribute_name) @_attr (quoted_attribute_value (attribute_value) @_lang))) (raw_text) @scss) + (#eq? @_attr "lang") (#any-of? @_lang "scss" "postcss" "less") ) -((attribute - (attribute_name) @_attr - (quoted_attribute_value (attribute_value) @css)) - (#eq? @_attr "style")) - [ (raw_text_expr) (raw_text_each) @@ -23,9 +20,9 @@ (script_element (start_tag (attribute + (attribute_name) @_attr (quoted_attribute_value (attribute_value) @_lang))) (raw_text) @typescript) + (#eq? @_attr "lang") (#any-of? @_lang "ts" "typescript") ) - -(comment) @comment diff --git a/tests/query/injections/svelte/test-svelte-injections.svelte b/tests/query/injections/svelte/test-svelte-injections.svelte new file mode 100644 index 000000000..a821dd080 --- /dev/null +++ b/tests/query/injections/svelte/test-svelte-injections.svelte @@ -0,0 +1,39 @@ + + + + + + +
+

Test file

+ {#each someItems as someItem} + +
{someItem}
+ + {/each} + +
From 8c71c6c5edfa447aaa867858e2e913340ea964b7 Mon Sep 17 00:00:00 2001 From: Pham Huy Hoang Date: Mon, 2 Jan 2023 16:28:40 +0900 Subject: [PATCH 0345/3265] fix(html): fix wrong indents for script/style tags --- queries/html_tags/indents.scm | 27 ++++++++++++++++++++++-- tests/indent/html/issue-3986.html | 4 ++++ tests/indent/html/script_style.html | 12 +++++++++++ tests/indent/html/self_closing_tag.html | 14 +++++++++++++ tests/indent/html/start_tag.html | 8 +++++++ tests/indent/html_spec.lua | 28 +++++++++++++++++++++++++ 6 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 tests/indent/html/issue-3986.html create mode 100644 tests/indent/html/script_style.html create mode 100644 tests/indent/html/self_closing_tag.html create mode 100644 tests/indent/html/start_tag.html create mode 100644 tests/indent/html_spec.lua diff --git a/queries/html_tags/indents.scm b/queries/html_tags/indents.scm index 7b9d6afe1..a9e0794f5 100644 --- a/queries/html_tags/indents.scm +++ b/queries/html_tags/indents.scm @@ -1,9 +1,32 @@ [ - (element) + ( + (element + (start_tag + (tag_name) @_not_special) + ) + (#not-any-of? @_not_special "meta" "link") + ) + (element (self_closing_tag)) ] @indent +; These tags are usually written one-lined and doesnt use self-closing tags so special-cased them +; but add indent to the tag to make sure attributes inside them are still indented if written multi-lined +( + (start_tag + (tag_name) @_special) + (#any-of? @_special "meta" "link") +) @indent + + +; These are the nodes that will be captured when we do `normal o` +; But last element has already been ended, so capturing this +; to mark end of last element +(element (end_tag [">"] @indent_end)) +(element (self_closing_tag "/>" @indent_end)) + +; Script/style elements aren't indented, so only branch the end tag of other elements +(element (end_tag) @branch) [ - (end_tag) ">" "/>" ] @branch diff --git a/tests/indent/html/issue-3986.html b/tests/indent/html/issue-3986.html new file mode 100644 index 000000000..2e6d9f0d6 --- /dev/null +++ b/tests/indent/html/issue-3986.html @@ -0,0 +1,4 @@ +
+
+
+
diff --git a/tests/indent/html/script_style.html b/tests/indent/html/script_style.html new file mode 100644 index 000000000..b00f3f40f --- /dev/null +++ b/tests/indent/html/script_style.html @@ -0,0 +1,12 @@ + + + + + + diff --git a/tests/indent/html/self_closing_tag.html b/tests/indent/html/self_closing_tag.html new file mode 100644 index 000000000..79376b83d --- /dev/null +++ b/tests/indent/html/self_closing_tag.html @@ -0,0 +1,14 @@ + + + + + + + + + +
+ + +