From 267c7525f738cdd6024c39da758e885c026ffaaa Mon Sep 17 00:00:00 2001 From: Riley Bruins Date: Wed, 2 Oct 2024 10:34:14 -0700 Subject: feat(treesitter): introduce child_with_descendant() This commit also marks `child_containing_descendant()` as deprecated (per upstream's documentation), and uses `child_with_descendant()` in its place. Minimum required tree-sitter version will now be `0.24`. --- runtime/lua/vim/treesitter.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'runtime/lua/vim/treesitter.lua') diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua index ed7d31e1f7..4727c0d61d 100644 --- a/runtime/lua/vim/treesitter.lua +++ b/runtime/lua/vim/treesitter.lua @@ -152,8 +152,7 @@ function M.is_ancestor(dest, source) return false end - -- child_containing_descendant returns nil if dest is a direct parent - return source:parent() == dest or dest:child_containing_descendant(source) ~= nil + return dest:child_with_descendant(source) ~= nil end --- Returns the node's range or an unpacked range table -- cgit From 3f3e4837d5f7d2d9cb1c89bd3a5b2ee8a730772a Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Wed, 16 Oct 2024 17:03:48 +0100 Subject: perf(validate): use lighter version - Also fix `vim.validate()` for PUC Lua when showing errors for values that aren't string or number. --- runtime/lua/vim/treesitter.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'runtime/lua/vim/treesitter.lua') diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua index 4727c0d61d..c24a732fe3 100644 --- a/runtime/lua/vim/treesitter.lua +++ b/runtime/lua/vim/treesitter.lua @@ -133,10 +133,8 @@ end --- ---@return vim.treesitter.LanguageTree object to use for parsing function M.get_string_parser(str, lang, opts) - vim.validate({ - str = { str, 'string' }, - lang = { lang, 'string' }, - }) + vim.validate('str', str, 'string') + vim.validate('lang', lang, 'string') return LanguageTree.new(str, lang, opts) end -- cgit From 3572319b4cb1a4163624a5fe328886f1928dbc4a Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Fri, 18 Oct 2024 11:33:12 +0100 Subject: feat(vim.validate): improve fast form and deprecate spec form Problem: `vim.validate()` takes two forms when it only needs one. Solution: - Teach the fast form all the features of the spec form. - Deprecate the spec form. - General optimizations for both forms. - Add a `message` argument which can be used alongside or in place of the `optional` argument. --- runtime/lua/vim/treesitter.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'runtime/lua/vim/treesitter.lua') diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua index c24a732fe3..9f6dc53932 100644 --- a/runtime/lua/vim/treesitter.lua +++ b/runtime/lua/vim/treesitter.lua @@ -241,11 +241,9 @@ end --- ---@return boolean True if the {node} contains the {range} function M.node_contains(node, range) - vim.validate({ - -- allow a table so nodes can be mocked - node = { node, { 'userdata', 'table' } }, - range = { range, M._range.validate, 'integer list with 4 or 6 elements' }, - }) + -- allow a table so nodes can be mocked + vim.validate('node', node, { 'userdata', 'table' }) + vim.validate('range', range, M._range.validate, 'integer list with 4 or 6 elements') return M._range.contains({ node:range() }, range) end -- cgit From 1d4ba8c1edba064421b34c1197c3470a09798218 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Thu, 31 Oct 2024 11:28:02 +0000 Subject: fix: another round of type annotation fixes --- runtime/lua/vim/treesitter.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/lua/vim/treesitter.lua') diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua index 9f6dc53932..dca89f413c 100644 --- a/runtime/lua/vim/treesitter.lua +++ b/runtime/lua/vim/treesitter.lua @@ -165,7 +165,7 @@ function M.get_node_range(node_or_range) if type(node_or_range) == 'table' then return unpack(node_or_range) else - return node_or_range:range() + return node_or_range:range(false) end end -- cgit