aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-06-27 20:05:35 +0200
committerThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-07-14 22:34:43 +0200
commit5e83307a439f5a432f056f5731381ff911f2a155 (patch)
tree07e46ecefe9cf004157de8d022d36c905686b23e /queries
parentAdd Python textobjects (diff)
downloadnvim-treesitter-5e83307a439f5a432f056f5731381ff911f2a155.tar
nvim-treesitter-5e83307a439f5a432f056f5731381ff911f2a155.tar.gz
nvim-treesitter-5e83307a439f5a432f056f5731381ff911f2a155.tar.bz2
nvim-treesitter-5e83307a439f5a432f056f5731381ff911f2a155.tar.lz
nvim-treesitter-5e83307a439f5a432f056f5731381ff911f2a155.tar.xz
nvim-treesitter-5e83307a439f5a432f056f5731381ff911f2a155.tar.zst
nvim-treesitter-5e83307a439f5a432f056f5731381ff911f2a155.zip
Add C/C++ textobjects
Diffstat (limited to 'queries')
-rw-r--r--queries/c/textobjects.scm47
-rw-r--r--queries/cpp/textobjects.scm6
2 files changed, 53 insertions, 0 deletions
diff --git a/queries/c/textobjects.scm b/queries/c/textobjects.scm
index 7b59d5123..839169164 100644
--- a/queries/c/textobjects.scm
+++ b/queries/c/textobjects.scm
@@ -6,3 +6,50 @@
(function_definition
body: (compound_statement) @function.inner) @function.outer
+
+(struct_specifier
+ body: (_) @class.inner) @class.outer
+
+; conditional
+(if_statement
+ consequence: (_)? @conditional.inner
+ alternative: (_)? @conditional.inner
+ ) @conditional.outer
+
+(if_statement
+ condition: (_) @conditional.inner)
+
+; loops
+(for_statement
+ (_)? @loop.inner) @loop.outer
+(while_statement
+ (_)? @loop.inner) @loop.outer
+(do_statement
+ (_)? @loop.inner) @loop.outer
+
+
+(compound_statement) @block.outer
+(comment) @comment.outer
+
+(call_expression) @call.outer
+(call_expression (_) @call.inner)
+
+; Statements
+
+;(expression_statement ;; this is what we actually want to capture in most cases (";" is missing) probaly
+ ;(_) @statement.inner) ;; the otther statement like node type is declaration but declaration has a ";"
+
+(compound_statement
+ (_) @statement.outer)
+
+(field_declaration_list
+ (_) @statement.outer)
+
+(preproc_if
+ (_) @statement.outer)
+
+(preproc_elif
+ (_) @statement.outer)
+
+(preproc_else
+ (_) @statement.outer)
diff --git a/queries/cpp/textobjects.scm b/queries/cpp/textobjects.scm
new file mode 100644
index 000000000..2a808047a
--- /dev/null
+++ b/queries/cpp/textobjects.scm
@@ -0,0 +1,6 @@
+
+(class_specifier
+ body: (_) @class.inner) @class.outer
+
+(for_range_loop
+ (_)? @loop.inner) @loop.outer