Steven Sojka
929f194145
feat(treesitter): add offset predicate for language injection
...
refactor(treesitter): add directives to queries
2020-12-15 07:03:47 -06:00
Thomas Vigouroux
99007bcc12
Merge pull request #13450 from nvim-treesitter/fix-unknown-language-parser
...
fix(treesitter): don't throw an error for missing injected langs
2020-12-10 11:12:39 +01:00
Steven Sojka
e15c5f58df
fix(treesitter): don't throw an error for missing injected langs
2020-12-04 16:56:29 -06:00
Steven Sojka
2985c17867
fix(treesitter): incorrect method name call
2020-12-04 16:15:47 -06:00
Björn Linse
ca7fa2a43a
Merge pull request #13357 from vigoux/luahl-priority
...
feat(luahl): add priority mechanism
2020-11-25 12:43:08 +01:00
Thomas Vigouroux
c0a6989d93
feat(luahl): add priority mechanism
...
Base priority is 0x1000, in order to stay kinda backward compatible.
Also set tree-sitter default highlight to 100 (middle-ish value)
2020-11-25 10:10:05 +01:00
Thomas Vigouroux
e6d1656831
languagetree: call changedtree callback per tree
...
Also fix a typo
2020-11-24 16:53:03 +01:00
Thomas Vigouroux
52d76f0a32
fix(treesitter): allow ranges in set_included_ranges
2020-11-23 15:09:32 +01:00
Steven Sojka
1a631026a9
feat(treesitter): add language tree
...
Implement the LanguageTree structure to enable language injection.
This is done be removing the old Parser metatable and replacing by the
new structure, with the same API (almost).
Some noticeable differences :
- `parser:parse()` now returns a table of trees
- There is no incremental parsing for child (injected) languages
Co-authored-by: Thomas Vigouroux <tomvig38@gmail.com >
2020-11-23 08:06:17 +01:00
Stephan Seitz
0276c8addd
tree-sitter: Put base languages first in queries
...
This reverts the handling of base languages to the old way how
nvim-treesitter handled them. When a language extends a base language
it usually wants to be able to overwrite queries.
Related: https://github.com/nvim-treesitter/nvim-treesitter/issues/633
2020-11-08 13:55:42 +01:00
Thomas Vigouroux
186ba3b688
Merge pull request #13178 from steelsojka/fix-empty-main-query-file
...
fix(treesitter): account for no main query file
2020-11-02 18:16:37 +01:00
Björn Linse
03c478ae53
treesitter: add node:id()
2020-11-01 14:59:17 +01:00
Steven Sojka
e27af09052
fix(treesitter): account for no main query file
2020-10-28 07:34:11 -05:00
Thomas Vigouroux
95238598e4
treesitter: allow multiple highlighters per buffer
2020-10-12 18:23:14 +02:00
Thomas Vigouroux
bdbc56f931
treesitter: allow custom parser for highlighter
...
Also allow to get parser ranges.
This will be useful for language injection, allowing us to tweak the
parser's ranges on the fly.
Update runtime/lua/vim/treesitter.lua
Co-authored-by: Paul Burlumi <paul@burlumi.com >
2020-10-12 18:23:14 +02:00
Thomas Vigouroux
d3f544002c
treesitter: runtime queries
...
Runtime queries just work like ftplugins, that is:
- Queries in the `after` directory are sourced _after_ the "base" query
- Otherwise, the last define query takes precedence.
Queries can be found in the `queries` directory.
Update runtime/lua/vim/treesitter/query.lua
Co-authored-by: Paul Burlumi <paul@burlumi.com >
2020-10-11 21:18:28 +02:00
Björn Linse
0b615dae07
api: multiple decoration providers at once
2020-10-10 15:16:45 +02:00
Thomas Vigouroux
3c5141d2cf
treesitter: add string parser ( #13008 )
2020-09-30 09:32:43 -04:00
Björn Linse
4042975df4
luahl: global the luahl
2020-09-13 07:46:39 +02:00
Thomas Vigouroux
e4b5efa51e
fix: use luahl in treesitter
2020-09-13 07:46:39 +02:00
Thomas Vigouroux
cf0e1bc1fe
wip trying to fix the highlighter
2020-09-09 21:22:21 +02:00
Björn Linse
9437327d5e
treesitter: use new on_bytes interface
...
This will significantly reduce the parsing work
needed e.g. when rehighlighting after every keypress
in insert mode.
Also add safety check for tree-sitter trying to read
past the end of a line. This can happen after we sent
an incorrect buffer update.
2020-09-09 21:22:21 +02:00
Thomas Vigouroux
1ff064126d
treesitter: revert wrong optimization in highlights
2020-09-09 16:00:19 +02:00
Thomas Vigouroux
c3e6b6119c
Merge pull request #12858 from kyazdani42/fix/no-ts-hl-without-query-value
...
treesitter: check hl group exists before passing it in nvim_get_hl_id_by_name
2020-09-06 17:18:47 +02:00
kiyan42
7e0c4e5329
apply bfredl suggestion
2020-09-06 15:32:24 +02:00
Björn Linse
9c929e7d23
lint: just bit twiddlin'
2020-09-06 11:25:23 +02:00
Thomas Vigouroux
20c1526552
treesitter: simplify match_preds
2020-09-06 10:30:39 +02:00
Thomas Vigouroux
2d6437f5fb
treesitter: use lua-match? instead of match?
2020-09-06 10:29:47 +02:00
kiyan42
981f3f17a0
treesitter: check hl group exists before passing it in nvim_get_hl_id_by_name
2020-09-05 21:43:40 +02:00
Björn Linse
1e14dacd08
Merge pull request #12847 from nvim-treesitter/ts-list-predicates
...
treesitter: allow to list supported predicates
2020-09-04 17:01:49 +02:00
Thomas Vigouroux
3fd6e3b923
treesitter: allow to list supported predicates
2020-09-04 15:24:23 +02:00
Thomas Vigouroux
1832d18083
treesitter: update to use buf_set_extmark
2020-09-03 15:40:31 +02:00
Stephan Seitz
b058c671d2
treesitter: avoid escaping complete query strings
...
Escape "\\" only for `vim-match?` not for `match?`
Fixes #12595
2020-08-31 17:24:38 +02:00
Thomas Vigouroux
6a8dcfab4b
treesitter: allow to force predicate addition
2020-08-13 20:40:40 +02:00
Thomas Vigouroux
9564803d1a
treesitter: add predicate negation
2020-08-13 20:30:15 +02:00
Thomas Vigouroux
d7b12e58df
treesitter: add and test vim-match? predicate
2020-08-13 20:30:15 +02:00
Thomas Vigouroux
58e37d7df8
treesitter: add contains? predicate
2020-08-13 20:30:15 +02:00
Thomas Vigouroux
18c0e77528
treesitter(docs): update and refresh docs
2020-08-13 20:30:15 +02:00
Thomas Vigouroux
613068071e
treesitter: refactor and use lua regexes
2020-08-13 20:30:15 +02:00