aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-09-12 16:27:38 +0200
committerThomas Vigouroux <tomvig38@gmail.com>2020-11-18 21:54:04 +0100
commit3674ad89df65bcdb7f13a21148efb9f7a4280188 (patch)
tree8dbd0bede3a33adae92a32d28c795ce83037df03
parentfeat(predicates): extend has-ancestor?, add has-parent?/has-type? (diff)
downloadnvim-treesitter-3674ad89df65bcdb7f13a21148efb9f7a4280188.tar
nvim-treesitter-3674ad89df65bcdb7f13a21148efb9f7a4280188.tar.gz
nvim-treesitter-3674ad89df65bcdb7f13a21148efb9f7a4280188.tar.bz2
nvim-treesitter-3674ad89df65bcdb7f13a21148efb9f7a4280188.tar.lz
nvim-treesitter-3674ad89df65bcdb7f13a21148efb9f7a4280188.tar.xz
nvim-treesitter-3674ad89df65bcdb7f13a21148efb9f7a4280188.tar.zst
nvim-treesitter-3674ad89df65bcdb7f13a21148efb9f7a4280188.zip
fix(predicates): Fix #446: highlight property only if not a method
-rw-r--r--lua/nvim-treesitter/query_predicates.lua1
-rw-r--r--queries/c/highlights.scm4
-rw-r--r--queries/cpp/highlights.scm5
3 files changed, 7 insertions, 3 deletions
diff --git a/lua/nvim-treesitter/query_predicates.lua b/lua/nvim-treesitter/query_predicates.lua
index 18e1401d0..06c13aa02 100644
--- a/lua/nvim-treesitter/query_predicates.lua
+++ b/lua/nvim-treesitter/query_predicates.lua
@@ -54,6 +54,7 @@ local function has_ancestor(match, pattern, bufnr, pred)
end
return false
end
+
query.add_predicate('has-ancestor?', has_ancestor)
query.add_predicate('has-parent?', has_ancestor)
diff --git a/queries/c/highlights.scm b/queries/c/highlights.scm
index 96b43cf0d..cef57a005 100644
--- a/queries/c/highlights.scm
+++ b/queries/c/highlights.scm
@@ -119,7 +119,9 @@
] @function.macro
; TODO (preproc_arg) @embedded
-(field_identifier) @property
+(((field_expression
+ (field_identifier) @property)) @_parent
+ (not-has-parent? @_parent template_method function_declarator call_expression))
(statement_identifier) @label
[
diff --git a/queries/cpp/highlights.scm b/queries/cpp/highlights.scm
index 38f7c463d..e4936b98e 100644
--- a/queries/cpp/highlights.scm
+++ b/queries/cpp/highlights.scm
@@ -23,8 +23,9 @@
(template_function
name: (identifier) @function)
-(template_method
- name: (field_identifier) @method)
+(((field_expression
+ (field_identifier) @method)) @_parent
+ (has-parent? @_parent template_method function_declarator call_expression))
(template_function
name: (scoped_identifier