aboutsummaryrefslogtreecommitdiffstats
path: root/queries/cpp
diff options
context:
space:
mode:
authorJohn Drouhard <john@drouhard.dev>2023-04-08 13:21:09 -0500
committerStephan Seitz <stephan.seitz@fau.de>2023-04-15 07:00:14 -0700
commitdad0864fa324d1df88242a978e9d7de383c5be68 (patch)
treefa88a6b447db5334c5e7cf651ce0e0f539fb7152 /queries/cpp
parentfix(php_inject): add missing @combined to text (diff)
downloadnvim-treesitter-dad0864fa324d1df88242a978e9d7de383c5be68.tar
nvim-treesitter-dad0864fa324d1df88242a978e9d7de383c5be68.tar.gz
nvim-treesitter-dad0864fa324d1df88242a978e9d7de383c5be68.tar.bz2
nvim-treesitter-dad0864fa324d1df88242a978e9d7de383c5be68.tar.lz
nvim-treesitter-dad0864fa324d1df88242a978e9d7de383c5be68.tar.xz
nvim-treesitter-dad0864fa324d1df88242a978e9d7de383c5be68.tar.zst
nvim-treesitter-dad0864fa324d1df88242a978e9d7de383c5be68.zip
feat(cpp): improve function.call to support any level of nesting for qualified identifiers
Diffstat (limited to 'queries/cpp')
-rw-r--r--queries/cpp/highlights.scm101
1 files changed, 68 insertions, 33 deletions
diff --git a/queries/cpp/highlights.scm b/queries/cpp/highlights.scm
index 586067155..97a3b9f39 100644
--- a/queries/cpp/highlights.scm
+++ b/queries/cpp/highlights.scm
@@ -49,58 +49,93 @@
(destructor_name
(identifier) @method)
+; functions
(function_declarator
- declarator: (qualified_identifier
- name: (identifier) @function))
+ (qualified_identifier
+ (identifier) @function))
(function_declarator
- declarator: (qualified_identifier
- name: (qualified_identifier
- name: (identifier) @function)))
+ (qualified_identifier
+ (qualified_identifier
+ (identifier) @function)))
(function_declarator
- declarator: (template_function
- name: (identifier) @function))
+ (qualified_identifier
+ (qualified_identifier
+ (qualified_identifier
+ (identifier) @function))))
+((qualified_identifier
+ (qualified_identifier
+ (qualified_identifier
+ (qualified_identifier
+ (identifier) @function)))) @_parent
+ (#has-ancestor? @_parent function_declarator))
+
(function_declarator
- declarator: (template_method
- name: (field_identifier) @method))
-((function_declarator
- declarator: (qualified_identifier
- name: (identifier) @constructor))
- (#lua-match? @constructor "^[A-Z]"))
+ (template_function
+ (identifier) @function))
(operator_name) @function
"operator" @function
"static_assert" @function.builtin
(call_expression
- function: (qualified_identifier
- name: (identifier) @function.call))
+ (qualified_identifier
+ (identifier) @function.call))
(call_expression
- function: (qualified_identifier
- name: (qualified_identifier
- name: (identifier) @function.call)))
+ (qualified_identifier
+ (qualified_identifier
+ (identifier) @function.call)))
(call_expression
- function:
+ (qualified_identifier
+ (qualified_identifier
(qualified_identifier
- name: (qualified_identifier
- name: (qualified_identifier
- name: (identifier) @function.call))))
+ (identifier) @function.call))))
+((qualified_identifier
+ (qualified_identifier
+ (qualified_identifier
+ (qualified_identifier
+ (identifier) @function.call)))) @_parent
+ (#has-ancestor? @_parent call_expression))
+
(call_expression
- function: (template_function
- name: (identifier) @function.call))
+ (template_function
+ (identifier) @function.call))
(call_expression
- function: (qualified_identifier
- name: (template_function
- name: (identifier) @function.call)))
+ (qualified_identifier
+ (template_function
+ (identifier) @function.call)))
+(call_expression
+ (qualified_identifier
+ (qualified_identifier
+ (template_function
+ (identifier) @function.call))))
(call_expression
- function:
+ (qualified_identifier
+ (qualified_identifier
(qualified_identifier
- name: (qualified_identifier
- name: (template_function
- name: (identifier) @function.call))))
+ (template_function
+ (identifier) @function.call)))))
+((qualified_identifier
+ (qualified_identifier
+ (qualified_identifier
+ (qualified_identifier
+ (template_function
+ (identifier) @function.call))))) @_parent
+ (#has-ancestor? @_parent call_expression))
+; methods
+(function_declarator
+ (template_method
+ (field_identifier) @method))
(call_expression
- function: (field_expression
- field: (field_identifier) @method.call))
+ (field_expression
+ (field_identifier) @method.call))
+
+; constructors
+
+((function_declarator
+ (qualified_identifier
+ (identifier) @constructor))
+ (#lua-match? @constructor "^[A-Z]"))
((call_expression
function: (identifier) @constructor)