aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc
diff options
context:
space:
mode:
authorRaymond W. Ko <raymond.w.ko@gmail.com>2021-05-14 11:41:20 -0400
committerGitHub <noreply@github.com>2021-05-14 17:41:20 +0200
commit7c95697026e76f9ee817cbea5ab11232a2443c15 (patch)
treee0d8dbea5cd65dca635ec75ec5a550b4e12d20bb /runtime/doc
parent61aefaf2993c0b55f6123ba4b0bd41b1caf1fcd3 (diff)
downloadrneovim-7c95697026e76f9ee817cbea5ab11232a2443c15.tar.gz
rneovim-7c95697026e76f9ee817cbea5ab11232a2443c15.tar.bz2
rneovim-7c95697026e76f9ee817cbea5ab11232a2443c15.zip
treesitter: add predicate "any-of?" (#14344)
For the case of Clojure and other Lisp syntax highlighting, it is necessary to create huge regexps consisting of hundreds of symbols with the pipe (|) character. To make things more difficult, these Lisp symbols sometimes consists of special characters that are themselves part of special regexp characters like '*'. In addition to being difficult to maintain, it's performance is suboptimal. This patch introduces a new predicate to perform 'source' matching in amortized constant time. This is accomplished by compiling a hash table on the first use.
Diffstat (limited to 'runtime/doc')
-rw-r--r--runtime/doc/treesitter.txt5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt
index 1f4b5d3097..39522898f9 100644
--- a/runtime/doc/treesitter.txt
+++ b/runtime/doc/treesitter.txt
@@ -212,6 +212,11 @@ Here is a list of built-in predicates :
((identifier) @foo (#contains? @foo "foo"))
((identifier) @foo-bar (#contains @foo-bar "foo" "bar"))
<
+ `any-of?` *ts-predicate-any-of?*
+ Will check if the text is the same as any of the following
+ arguments : >
+ ((identifier) @foo (#any-of? @foo "foo" "bar"))
+<
*lua-treesitter-not-predicate*
Each predicate has a `not-` prefixed predicate that is just the negation of
the predicate.