aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorL Lllvvuu <git@llllvvuu.dev>2023-09-27 02:51:42 -0700
committerChristian Clason <c.clason@uni-graz.at>2023-11-04 14:55:44 +0100
commit6c150e0b9312ece13f13b7ff2e9743592bc9d431 (patch)
tree5c4535c1570cf3520306930f71e6ba2046f74609
parentd3e9cbedc700a5ae9f64fdced07cdddbb4ef13d1 (diff)
downloadrneovim-6c150e0b9312ece13f13b7ff2e9743592bc9d431.tar.gz
rneovim-6c150e0b9312ece13f13b7ff2e9743592bc9d431.tar.bz2
rneovim-6c150e0b9312ece13f13b7ff2e9743592bc9d431.zip
docs(treesitter): add disclaimer about needing to parse before `get_node()`
Problem: --- Misuse of `get_node()` is common: https://github.com/search?q=get_node_at_cursor+language%3Alua&type=code Solution: --- Add a note clarifying proper usage.
-rw-r--r--runtime/doc/treesitter.txt6
-rw-r--r--runtime/lua/vim/treesitter.lua8
2 files changed, 14 insertions, 0 deletions
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt
index e19fda8fd1..c65c9c22ba 100644
--- a/runtime/doc/treesitter.txt
+++ b/runtime/doc/treesitter.txt
@@ -599,6 +599,12 @@ get_captures_at_pos({bufnr}, {row}, {col})
get_node({opts}) *vim.treesitter.get_node()*
Returns the smallest named node at the given position
+ NOTE: Calling this on an unparsed tree can yield an invalid node. If the
+ tree is not known to be parsed by, e.g., an active highlighter, parse the
+ tree first via >lua
+ vim.treesitter.get_parser(bufnr):parse(range)
+<
+
Parameters: ~
• {opts} (table|nil) Optional keyword arguments:
• bufnr integer|nil Buffer number (nil or 0 for current
diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua
index f863942d3b..e7a66c00b2 100644
--- a/runtime/lua/vim/treesitter.lua
+++ b/runtime/lua/vim/treesitter.lua
@@ -350,6 +350,14 @@ end
--- Returns the smallest named node at the given position
---
+--- NOTE: Calling this on an unparsed tree can yield an invalid node.
+--- If the tree is not known to be parsed by, e.g., an active highlighter,
+--- parse the tree first via
+---
+--- ```lua
+--- vim.treesitter.get_parser(bufnr):parse(range)
+--- ```
+---
---@param opts table|nil Optional keyword arguments:
--- - bufnr integer|nil Buffer number (nil or 0 for current buffer)
--- - pos table|nil 0-indexed (row, col) tuple. Defaults to cursor position in the