diff options
author | Matthieu Coudron <mattator@gmail.com> | 2020-06-30 00:02:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-30 00:02:46 +0200 |
commit | 1920ba4b5597a872973de0a5d558cbbf23063fb6 (patch) | |
tree | d3c2cda699808a08493c6ce7883533b5186de46d /runtime | |
parent | fd545d46fa9d9472159485ebc03e1f39417ee9c0 (diff) | |
parent | 69816f5e134f0e965352367b5928835794da1698 (diff) | |
download | rneovim-1920ba4b5597a872973de0a5d558cbbf23063fb6.tar.gz rneovim-1920ba4b5597a872973de0a5d558cbbf23063fb6.tar.bz2 rneovim-1920ba4b5597a872973de0a5d558cbbf23063fb6.zip |
Merge pull request #12491 from vigoux/treesitter-set-ranges
[RDY] Treesitter set ranges
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/lua.txt | 13 | ||||
-rw-r--r-- | runtime/lua/vim/treesitter.lua | 6 |
2 files changed, 19 insertions, 0 deletions
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index 5a49d36503..00126f668b 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -512,6 +512,9 @@ retained for the lifetime of a buffer but this is subject to change. A plugin should keep a reference to the parser object as long as it wants incremental updates. +Parser methods *lua-treesitter-parser* + +tsparser:parse() *tsparser:parse()* Whenever you need to access the current syntax tree, parse the buffer: > tstree = parser:parse() @@ -528,6 +531,16 @@ shouldn't be done directly in the change callback anyway as they will be very frequent. Rather a plugin that does any kind of analysis on a tree should use a timer to throttle too frequent updates. +tsparser:set_included_ranges(ranges) *tsparser:set_included_ranges()* + Changes the ranges the parser should consider. This is used for + language injection. `ranges` should be of the form (all zero-based): > + { + {start_node, end_node}, + ... + } +< + NOTE: `start_node` and `end_node` are both inclusive. + Tree methods *lua-treesitter-tree* tstree:root() *tstree:root()* diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua index c502e45bd0..f356673839 100644 --- a/runtime/lua/vim/treesitter.lua +++ b/runtime/lua/vim/treesitter.lua @@ -30,6 +30,12 @@ function Parser:_on_lines(bufnr, _, start_row, old_stop_row, stop_row, old_byte_ self.valid = false end +function Parser:set_included_ranges(ranges) + self._parser:set_included_ranges(ranges) + -- The buffer will need to be parsed again later + self.valid = false +end + local M = { parse_query = vim._ts_parse_query, } |