From 3b3ff5ce771254854b6a08ac7779f014b0d62402 Mon Sep 17 00:00:00 2001 From: Abin Simon Date: Wed, 21 Aug 2024 18:46:22 +0530 Subject: [PATCH] Update treesit queries --- treesit-queries/_typescript/textobjects.scm | 6 ++ treesit-queries/ada/textobjects.scm | 21 +++++ treesit-queries/adl/textobjects.scm | 1 + treesit-queries/bash/textobjects.scm | 3 + treesit-queries/c/textobjects.scm | 14 +-- treesit-queries/cairo/textobjects.scm | 74 ++++++++++++++- treesit-queries/dart/textobjects.scm | 93 +++++++++++++++++++ .../docker-compose/textobjects.scm | 1 + treesit-queries/dockerfile/textobjects.scm | 4 + treesit-queries/earthfile/textobjects.scm | 1 + treesit-queries/ecma/textobjects.scm | 9 ++ treesit-queries/env/textobjects.scm | 6 ++ treesit-queries/gdscript/textobjects.scm | 11 +++ treesit-queries/git-config/textobjects.scm | 6 ++ treesit-queries/gjs/textobjects.scm | 1 + .../godot-resource/textobjects.scm | 23 +++++ treesit-queries/graphql/textobjects.scm | 23 +++++ treesit-queries/gts/textobjects.scm | 1 + treesit-queries/hcl/textobjects.scm | 11 +++ treesit-queries/hocon/textobjects.scm | 10 ++ treesit-queries/hurl/textobjects.scm | 5 + treesit-queries/inko/textobjects.scm | 38 ++++++++ treesit-queries/java/textobjects.scm | 9 ++ treesit-queries/jq/textobjects.scm | 8 ++ treesit-queries/json/textobjects.scm | 5 + treesit-queries/just/textobjects.scm | 53 +++-------- treesit-queries/kdl/textobjects.scm | 27 ++++++ treesit-queries/lua/textobjects.scm | 3 + treesit-queries/mojo/textobjects.scm | 1 + treesit-queries/nim/textobjects.scm | 44 ++++++--- treesit-queries/nix/textobjects.scm | 12 +++ treesit-queries/ohm/textobjects.scm | 40 ++++++++ treesit-queries/pest/textobjects.scm | 8 ++ treesit-queries/php/textobjects.scm | 12 +++ treesit-queries/pkgbuild/textobjects.scm | 1 + treesit-queries/prisma/textobjects.scm | 17 ++++ treesit-queries/protobuf/textobjects.scm | 9 ++ treesit-queries/python/textobjects.scm | 15 +-- treesit-queries/ruby/textobjects.scm | 12 +++ treesit-queries/rust/textobjects.scm | 31 +++++-- treesit-queries/scala/textobjects.scm | 65 +++++++++++++ treesit-queries/slint/textobjects.scm | 35 +++++++ treesit-queries/solidity/textobjects.scm | 54 +++++++++++ treesit-queries/sql/textobjects.scm | 4 + treesit-queries/swift/textobjects.scm | 23 +++++ treesit-queries/tact/textobjects.scm | 58 ++++++++++++ treesit-queries/toml/textobjects.scm | 5 + treesit-queries/typespec/textobjects.scm | 51 ++++++++++ treesit-queries/vala/textobjects.scm | 27 ++++++ treesit-queries/verilog/textobjects.scm | 6 +- treesit-queries/yaml/textobjects.scm | 7 ++ 51 files changed, 922 insertions(+), 82 deletions(-) create mode 100644 treesit-queries/ada/textobjects.scm create mode 100644 treesit-queries/adl/textobjects.scm create mode 100644 treesit-queries/dart/textobjects.scm create mode 100644 treesit-queries/docker-compose/textobjects.scm create mode 100644 treesit-queries/dockerfile/textobjects.scm create mode 100644 treesit-queries/earthfile/textobjects.scm create mode 100644 treesit-queries/env/textobjects.scm create mode 100644 treesit-queries/git-config/textobjects.scm create mode 100644 treesit-queries/gjs/textobjects.scm create mode 100644 treesit-queries/godot-resource/textobjects.scm create mode 100644 treesit-queries/graphql/textobjects.scm create mode 100644 treesit-queries/gts/textobjects.scm create mode 100644 treesit-queries/hcl/textobjects.scm create mode 100644 treesit-queries/hocon/textobjects.scm create mode 100644 treesit-queries/hurl/textobjects.scm create mode 100644 treesit-queries/inko/textobjects.scm create mode 100644 treesit-queries/jq/textobjects.scm create mode 100644 treesit-queries/json/textobjects.scm create mode 100644 treesit-queries/kdl/textobjects.scm create mode 100644 treesit-queries/mojo/textobjects.scm create mode 100644 treesit-queries/nix/textobjects.scm create mode 100644 treesit-queries/ohm/textobjects.scm create mode 100644 treesit-queries/pest/textobjects.scm create mode 100644 treesit-queries/pkgbuild/textobjects.scm create mode 100644 treesit-queries/prisma/textobjects.scm create mode 100644 treesit-queries/protobuf/textobjects.scm create mode 100644 treesit-queries/scala/textobjects.scm create mode 100644 treesit-queries/slint/textobjects.scm create mode 100644 treesit-queries/solidity/textobjects.scm create mode 100644 treesit-queries/sql/textobjects.scm create mode 100644 treesit-queries/swift/textobjects.scm create mode 100644 treesit-queries/tact/textobjects.scm create mode 100644 treesit-queries/toml/textobjects.scm create mode 100644 treesit-queries/typespec/textobjects.scm create mode 100644 treesit-queries/vala/textobjects.scm create mode 100644 treesit-queries/yaml/textobjects.scm diff --git a/treesit-queries/_typescript/textobjects.scm b/treesit-queries/_typescript/textobjects.scm index 9c21719..ce9fdee 100644 --- a/treesit-queries/_typescript/textobjects.scm +++ b/treesit-queries/_typescript/textobjects.scm @@ -4,3 +4,9 @@ (type_alias_declaration value: (_) @class.inner) ] @class.outer + +(enum_body + (_) @entry.outer) + +(enum_assignment (_) @entry.inner) + diff --git a/treesit-queries/ada/textobjects.scm b/treesit-queries/ada/textobjects.scm new file mode 100644 index 0000000..bf7fe80 --- /dev/null +++ b/treesit-queries/ada/textobjects.scm @@ -0,0 +1,21 @@ +;; Support for high-level text objects selections. +;; For instance: +;; maf (v)isually select (a) (f)unction or subprogram +;; mif (v)isually select (i)nside a (f)unction or subprogram +;; mai (v)isually select (a) (i)f statement (or loop) +;; mii (v)isually select (i)nside an (i)f statement (or loop) +;; +;; For navigations using textobjects, check link below: +;; https://docs.helix-editor.com/master/usage.html#navigating-using-tree-sitter-textobjects +;; +;; For Textobject queries explaination, check out link below: +;; https://docs.helix-editor.com/master/guides/textobject.html + +(subprogram_body) @function.outer +(subprogram_body (non_empty_declarative_part) @function.inner) +(subprogram_body (handled_sequence_of_statements) @function.inner) +(function_specification) @function.outer +(procedure_specification) @function.outer +(package_declaration) @function.outer +(generic_package_declaration) @function.outer +(package_body) @function.outer diff --git a/treesit-queries/adl/textobjects.scm b/treesit-queries/adl/textobjects.scm new file mode 100644 index 0000000..eb8f45a --- /dev/null +++ b/treesit-queries/adl/textobjects.scm @@ -0,0 +1 @@ +(struct (_) @function.inner) @funtion.outer diff --git a/treesit-queries/bash/textobjects.scm b/treesit-queries/bash/textobjects.scm index 8d19497..e100692 100644 --- a/treesit-queries/bash/textobjects.scm +++ b/treesit-queries/bash/textobjects.scm @@ -7,3 +7,6 @@ (comment) @comment.inner (comment)+ @comment.outer + +(array + (_) @entry.outer) diff --git a/treesit-queries/c/textobjects.scm b/treesit-queries/c/textobjects.scm index e6b6043..dd46155 100644 --- a/treesit-queries/c/textobjects.scm +++ b/treesit-queries/c/textobjects.scm @@ -20,14 +20,8 @@ (comment)+ @comment.outer -(for_statement - body: (_) @loop.inner) @loop.outer +(enumerator + (_) @entry.inner) @entry.outer -(while_statement - body: (_) @loop.inner) @loop.outer - -(do_statement - body: (_) @loop.inner) @loop.outer - -(if_statement - consequence: (_) @conditional.inner) @conditional.outer +(initializer_list + (_) @entry.outer) diff --git a/treesit-queries/cairo/textobjects.scm b/treesit-queries/cairo/textobjects.scm index ae55c7f..02e0123 100644 --- a/treesit-queries/cairo/textobjects.scm +++ b/treesit-queries/cairo/textobjects.scm @@ -1 +1,73 @@ -; inherits: rust +(function_item + body: (_) @function.inner) @function.outer + +(struct_item + body: (_) @class.inner) @class.outer + +(enum_item + body: (_) @class.inner) @class.outer + +(trait_item + body: (_) @class.inner) @class.outer + +(impl_item + body: (_) @class.inner) @class.outer + +(parameters + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(type_parameters + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(type_arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(field_initializer_list + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +[ + (line_comment) +] @comment.inner + +(line_comment)+ @comment.outer + +(; #[test] + (attribute_item + (attribute + (identifier) @_test_attribute)) + ; allow other attributes like #[should_panic] and comments + [ + (attribute_item) + (line_comment) + ]* + ; the test function + (function_item + body: (_) @test.inner) @test.outer + (#equal @_test_attribute "test")) + +(array_expression + (_) @entry.outer) + +(tuple_expression + (_) @entry.outer) + +(tuple_pattern + (_) @entry.outer) + +; Commonly used vec macro intializer is special cased +(macro_invocation + (identifier) @_id (token_tree (_) @entry.outer) + (#equal @_id "array")) + +(enum_variant) @entry.outer + +(field_declaration + (_) @entry.inner) @entry.outer + +(field_initializer + (_) @entry.inner) @entry.outer + +(shorthand_field_initializer) @entry.outer diff --git a/treesit-queries/dart/textobjects.scm b/treesit-queries/dart/textobjects.scm new file mode 100644 index 0000000..d5a92a1 --- /dev/null +++ b/treesit-queries/dart/textobjects.scm @@ -0,0 +1,93 @@ +(class_definition + body: (_) @class.inner) @class.outer + +(mixin_declaration + (class_body) @class.inner) @class.outer + +(extension_declaration + (extension_body) @class.inner) @class.outer + +(enum_declaration + body: (_) @class.inner) @class.outer + +(type_alias) @class.outer + +(_ + ( + [ + (getter_signature) + (setter_signature) + (function_signature) + (method_signature) + (constructor_signature) + ] + . + (function_body) @function.inner @function.outer + ) @function.outer +) + +(declaration + [ + (constant_constructor_signature) + (constructor_signature) + (factory_constructor_signature) + (redirecting_factory_constructor_signature) + (getter_signature) + (setter_signature) + (operator_signature) + (function_signature) + ] +) @function.outer + +(lambda_expression + body: (_) @function.inner +) @function.outer + +(function_expression + body: (_) @function.inner +) @function.outer + +[ + (comment) + (documentation_comment) +] @comment.inner + +(comment)+ @comment.outer + +(documentation_comment)+ @comment.outer + +(formal_parameter_list + ( + (formal_parameter) @parameter.inner . ","? @parameter.outer + ) @parameter.outer +) + +(optional_formal_parameters + ( + (formal_parameter) @parameter.inner . ","? @parameter.outer + ) @parameter.outer +) + +(arguments + ( + [ + (argument) @parameter.inner + (named_argument (label) . (_)* @parameter.inner) + ] + . ","? @parameter.outer + ) @parameter.outer +) + +(type_arguments + ( + ((_) . ("." . (_) @parameter.inner @parameter.outer)?) @parameter.inner + . ","? @parameter.outer + ) @parameter.outer +) + +(expression_statement + ((identifier) @_name (#any-of? @_name "test" "testWidgets")) + . + (selector (argument_part (arguments . (_) . (argument) @test.inner))) +) @test.outer + diff --git a/treesit-queries/docker-compose/textobjects.scm b/treesit-queries/docker-compose/textobjects.scm new file mode 100644 index 0000000..4ba254e --- /dev/null +++ b/treesit-queries/docker-compose/textobjects.scm @@ -0,0 +1 @@ +; inherits: yaml diff --git a/treesit-queries/dockerfile/textobjects.scm b/treesit-queries/dockerfile/textobjects.scm new file mode 100644 index 0000000..77102c1 --- /dev/null +++ b/treesit-queries/dockerfile/textobjects.scm @@ -0,0 +1,4 @@ +(comment) @comment.inner + +(comment)+ @comment.outer + diff --git a/treesit-queries/earthfile/textobjects.scm b/treesit-queries/earthfile/textobjects.scm new file mode 100644 index 0000000..01230c6 --- /dev/null +++ b/treesit-queries/earthfile/textobjects.scm @@ -0,0 +1 @@ +(target (block) @function.inner) @function.outer diff --git a/treesit-queries/ecma/textobjects.scm b/treesit-queries/ecma/textobjects.scm index d77c0a6..a43c18f 100644 --- a/treesit-queries/ecma/textobjects.scm +++ b/treesit-queries/ecma/textobjects.scm @@ -34,3 +34,12 @@ (comment) @comment.inner (comment)+ @comment.outer + +(array + (_) @entry.outer) + +(pair + (_) @entry.inner) @entry.outer + +(pair_pattern + (_) @entry.inner) @entry.outer diff --git a/treesit-queries/env/textobjects.scm b/treesit-queries/env/textobjects.scm new file mode 100644 index 0000000..ea8f772 --- /dev/null +++ b/treesit-queries/env/textobjects.scm @@ -0,0 +1,6 @@ +(comment) @comment.inner + +(comment)+ @comment.outer + +(variable_assignment + (_) @entry.inner) @entry.outer diff --git a/treesit-queries/gdscript/textobjects.scm b/treesit-queries/gdscript/textobjects.scm index ebe993c..ccefcfd 100644 --- a/treesit-queries/gdscript/textobjects.scm +++ b/treesit-queries/gdscript/textobjects.scm @@ -5,6 +5,8 @@ (function_definition (body) @function.inner) @function.outer +(lambda (body) @function.inner) @function.outer + (parameters [ (identifier) @@ -13,5 +15,14 @@ (typed_default_parameter) ] @parameter.inner @parameter.outer) +(arguments (_expression) @parameter.inner @parameter.outer) + +[ + (const_statement) + (variable_statement) + (pair) + (enumerator) +] @entry.outer + (comment) @comment.inner (comment)+ @comment.outer diff --git a/treesit-queries/git-config/textobjects.scm b/treesit-queries/git-config/textobjects.scm new file mode 100644 index 0000000..8f02d6b --- /dev/null +++ b/treesit-queries/git-config/textobjects.scm @@ -0,0 +1,6 @@ +(comment) @comment.inner + +(comment)+ @comment.outer + +(variable + (_) @entry.inner) @entry.outer diff --git a/treesit-queries/gjs/textobjects.scm b/treesit-queries/gjs/textobjects.scm new file mode 100644 index 0000000..5198385 --- /dev/null +++ b/treesit-queries/gjs/textobjects.scm @@ -0,0 +1 @@ +; inherits: _gjs,_javascript,ecma diff --git a/treesit-queries/godot-resource/textobjects.scm b/treesit-queries/godot-resource/textobjects.scm new file mode 100644 index 0000000..75863b8 --- /dev/null +++ b/treesit-queries/godot-resource/textobjects.scm @@ -0,0 +1,23 @@ +(section + (identifier) + (_) + (property) @class.inner +) @class.outer + +(attribute + (identifier) + (_) @parameter.inner) @parameter.outer + +(property + (path) + (_) @entry.inner) @entry.outer + +(pair + (_) @entry.inner) @entry.outer + +(array + (_) @entry.outer) + +(comment) @comment.inner + +(comment)+ @comment.outer diff --git a/treesit-queries/graphql/textobjects.scm b/treesit-queries/graphql/textobjects.scm new file mode 100644 index 0000000..8a60c0a --- /dev/null +++ b/treesit-queries/graphql/textobjects.scm @@ -0,0 +1,23 @@ +(type_definition) @class.outer + +(executable_definition) @function.outer + +(arguments_definition + (input_value_definition) @parameter.inner @parameter.movement) + +(arguments + (argument) @parameter.inner @parameter.movement) + +(selection + [(field) (fragment_spread)] @entry.outer) + +(selection + (field (selection_set) @entry.inner)) + +(field_definition + (_) @entry.inner) @entry.outer + +(input_fields_definition + (input_value_definition ) @entry.outer) + +(enum_value) @entry.outer diff --git a/treesit-queries/gts/textobjects.scm b/treesit-queries/gts/textobjects.scm new file mode 100644 index 0000000..5ad3ee1 --- /dev/null +++ b/treesit-queries/gts/textobjects.scm @@ -0,0 +1 @@ +; inherits: _gjs,_typescript,ecma diff --git a/treesit-queries/hcl/textobjects.scm b/treesit-queries/hcl/textobjects.scm new file mode 100644 index 0000000..133fbb9 --- /dev/null +++ b/treesit-queries/hcl/textobjects.scm @@ -0,0 +1,11 @@ +(comment) @comment.inner +(comment)+ @comment.outer + +(function_arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(attribute + (_) @entry.inner) @entry.outer + +(tuple + (_) @entry.outer) diff --git a/treesit-queries/hocon/textobjects.scm b/treesit-queries/hocon/textobjects.scm new file mode 100644 index 0000000..a782918 --- /dev/null +++ b/treesit-queries/hocon/textobjects.scm @@ -0,0 +1,10 @@ +(comment) @comment.inner + +(comment)+ @comment.outer + +(pair + (_) @entry.inner) @entry.outer + +(array + (_) @entry.outer) + diff --git a/treesit-queries/hurl/textobjects.scm b/treesit-queries/hurl/textobjects.scm new file mode 100644 index 0000000..3f7b1dd --- /dev/null +++ b/treesit-queries/hurl/textobjects.scm @@ -0,0 +1,5 @@ +(comment) @comment.inner + +(comment)+ @comment.outer + +(entry (_) @function.inner) @function.outer diff --git a/treesit-queries/inko/textobjects.scm b/treesit-queries/inko/textobjects.scm new file mode 100644 index 0000000..5886e74 --- /dev/null +++ b/treesit-queries/inko/textobjects.scm @@ -0,0 +1,38 @@ +(class + body: (_) @class.inner) @class.outer + +(trait + body: (_) @class.inner) @class.outer + +(method + body: (_) @function.inner) @function.outer + +(reopen_class + body: (_) @class.inner) @class.outer + +(implement_trait + body: (_) @class.inner) @class.outer + +(external_function + body: (_) @function.inner) @function.outer + +(closure + body: (_) @function.inner) @function.outer + +(arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(type_arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(line_comment) @comment.inner + +(line_comment)+ @comment.outer + +(array (_) @entry.outer) + +(tuple (_) @entry.outer) + +(tuple_pattern (_) @entry.outer) + +(define_field (_) @entry.inner) @entry.outer diff --git a/treesit-queries/java/textobjects.scm b/treesit-queries/java/textobjects.scm index 05871bc..f373c31 100644 --- a/treesit-queries/java/textobjects.scm +++ b/treesit-queries/java/textobjects.scm @@ -1,4 +1,7 @@ (method_declaration + body: (_)? @function.inner) @function.outer + +(constructor_declaration body: (_) @function.inner) @function.outer (interface_declaration @@ -33,3 +36,9 @@ (line_comment)+ @comment.outer (block_comment) @comment.outer + +(array_initializer + (_) @entry.outer) + +(enum_body + (enum_constant) @entry.outer) diff --git a/treesit-queries/jq/textobjects.scm b/treesit-queries/jq/textobjects.scm new file mode 100644 index 0000000..5154d16 --- /dev/null +++ b/treesit-queries/jq/textobjects.scm @@ -0,0 +1,8 @@ +(comment) @comment.inner +(comment)+ @comment.outer + +(funcdef + (query) @function.inner) @function.outer + +(objectkeyval + (_) @entry.inner) @entry.outer diff --git a/treesit-queries/json/textobjects.scm b/treesit-queries/json/textobjects.scm new file mode 100644 index 0000000..f20753d --- /dev/null +++ b/treesit-queries/json/textobjects.scm @@ -0,0 +1,5 @@ +(pair + (_) @entry.inner) @entry.outer + +(array + (_) @entry.outer) diff --git a/treesit-queries/just/textobjects.scm b/treesit-queries/just/textobjects.scm index 5675b9e..f11f973 100644 --- a/treesit-queries/just/textobjects.scm +++ b/treesit-queries/just/textobjects.scm @@ -1,48 +1,19 @@ -(body) @function.inner -(recipe) @function.outer -(expression - if:(expression) @function.inner -) -(expression - else:(expression) @function.inner -) -(interpolation (expression) @function.inner) @function.outer -(settinglist (stringlist) @function.inner) @function.outer +; Specify how to navigate around logical blocks in code -(call (NAME) @class.inner) @class.outer -(dependency (NAME) @class.inner) @class.outer -(depcall (NAME) @class.inner) +(assert_parameters + ((_) @parameter.inner . ","? @parameter.outer)) @parameter.outer -(dependency) @parameter.outer -(depcall) @parameter.inner -(depcall (expression) @parameter.inner) +(recipe + (recipe_body) @function.inner) @function.outer -(stringlist - (string) @parameter.inner - . ","? @_end - ; Commented out since we don't support `#make-range!` at the moment - ; (#make-range! "parameter.around" @parameter.inner @_end) -) -(parameters - [(parameter) - (variadic_parameters)] @parameter.inner - . " "? @_end - ; Commented out since we don't support `#make-range!` at the moment - ; (#make-range! "parameter.around" @parameter.inner @_end) -) +(recipe_parameters + ((_) @parameter.inner . ","? @parameter.outer)) @parameter.outer -(expression - (condition) @function.inner -) @function.outer -(expression - if:(expression) @function.inner -) -(expression - else:(expression) @function.inner -) +(recipe_dependency + (_) @parameter.inner) @parameter.outer -(item [(alias) (assignment) (export) (setting)]) @class.outer -(recipeheader) @class.outer -(line) @class.outer +(function_call + (function_parameters + ((_) @parameter.inner . ","? @parameter.outer)) @parameter.outer) @function.outer (comment) @comment.outer diff --git a/treesit-queries/kdl/textobjects.scm b/treesit-queries/kdl/textobjects.scm new file mode 100644 index 0000000..54f80fc --- /dev/null +++ b/treesit-queries/kdl/textobjects.scm @@ -0,0 +1,27 @@ +(type (_) @test.inner) @test.outer + +(node + children: (node_children)? @class.inner) @class.outer + +(node + children: (node_children)? @function.inner) @function.outer + +(node (identifier) @function.movement) + +[ + (single_line_comment) + (multi_line_comment) +] @comment.inner + +[ + (single_line_comment)+ + (multi_line_comment)+ +] @comment.outer + +[ + (prop) + (value) +] @parameter.inner + +(value (type) ? (_) @parameter.inner @parameter.movement . ) @parameter.outer + diff --git a/treesit-queries/lua/textobjects.scm b/treesit-queries/lua/textobjects.scm index 5d0c434..6884396 100644 --- a/treesit-queries/lua/textobjects.scm +++ b/treesit-queries/lua/textobjects.scm @@ -13,3 +13,6 @@ (comment) @comment.inner (comment)+ @comment.outer + +(table_constructor + (field (_) @entry.inner) @entry.outer) diff --git a/treesit-queries/mojo/textobjects.scm b/treesit-queries/mojo/textobjects.scm new file mode 100644 index 0000000..0b920cb --- /dev/null +++ b/treesit-queries/mojo/textobjects.scm @@ -0,0 +1 @@ +; inherits: python diff --git a/treesit-queries/nim/textobjects.scm b/treesit-queries/nim/textobjects.scm index 804848c..3482428 100644 --- a/treesit-queries/nim/textobjects.scm +++ b/treesit-queries/nim/textobjects.scm @@ -1,19 +1,33 @@ -(routine - (block) @function.inner) @function.outer +(proc_declaration + body: (_) @function.inner) @function.outer +(func_declaration + body: (_) @function.inner) @function.outer +(iterator_declaration + body: (_) @function.inner) @function.outer +(converter_declaration + body: (_) @function.inner) @function.outer +(method_declaration + body: (_) @function.inner) @function.outer +(template_declaration + body: (_) @function.inner) @function.outer +(macro_declaration + body: (_) @function.inner) @function.outer -; @class.inner (types?) -; @class.outer +(type_declaration (_) @class.inner) @class.outer -; paramListSuffix is strange and i do not understand it -(paramList - (paramColonEquals) @parameter.inner) @parameter.outer +(parameter_declaration + (symbol_declaration_list) @parameter.inner) @parameter.outer -(comment) @comment.inner -(multilineComment) @comment.inner -(docComment) @comment.inner -(multilineDocComment) @comment.inner +[ + (comment) + (block_comment) + (documentation_comment) + (block_documentation_comment) +] @comment.inner -(comment)+ @comment.outer -(multilineComment) @comment.outer -(docComment)+ @comment.outer -(multilineDocComment) @comment.outer +[ + (comment)+ + (block_comment) + (documentation_comment)+ + (block_documentation_comment)+ +] @comment.outer diff --git a/treesit-queries/nix/textobjects.scm b/treesit-queries/nix/textobjects.scm new file mode 100644 index 0000000..3c4b1a6 --- /dev/null +++ b/treesit-queries/nix/textobjects.scm @@ -0,0 +1,12 @@ +(comment) @comment.inner +(comment)+ @comment.outer + +(formals + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(function_expression + body: (_) @function.inner) @function.outer + +(binding + (_) @entry.inner) @entry.outer + diff --git a/treesit-queries/ohm/textobjects.scm b/treesit-queries/ohm/textobjects.scm new file mode 100644 index 0000000..14a5489 --- /dev/null +++ b/treesit-queries/ohm/textobjects.scm @@ -0,0 +1,40 @@ +; See: https://docs.helix-editor.com/guides/textobject.html + +; function.inside & around +; ------------------------ + +(rule + body: (_) @function.inner) @function.outer + +; class.inside & around +; --------------------- + +(grammar + body: (_) @class.inner) @class.outer + +; parameter.inside & around +; ------------------------- + +(formals + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(rule_body + ((_) @parameter.inner . "|"? @parameter.outer) @parameter.outer) + +(params + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(alt + ((_) @parameter.inner . "|"? @parameter.outer) @parameter.outer) + +; comment.inside +; -------------- + +(multiline_comment)+ @comment.inner +(singleline_comment)+ @comment.inner + +; comment.around +; -------------- + +(multiline_comment)+ @comment.outer +(singleline_comment)+ @comment.outer diff --git a/treesit-queries/pest/textobjects.scm b/treesit-queries/pest/textobjects.scm new file mode 100644 index 0000000..f17c10d --- /dev/null +++ b/treesit-queries/pest/textobjects.scm @@ -0,0 +1,8 @@ +(grammar_rule (_) @class.inner) @class.outer +(term (_) @entry.inner) @entry.outer + +(line_comment) @comment.inner +(line_comment)+ @comment.outer + +(block_comment) @comment.inner +(block_comment)+ @comment.outer diff --git a/treesit-queries/php/textobjects.scm b/treesit-queries/php/textobjects.scm index 0dc8f30..0bf9f94 100644 --- a/treesit-queries/php/textobjects.scm +++ b/treesit-queries/php/textobjects.scm @@ -38,3 +38,15 @@ (comment) @comment.inner (comment)+ @comment.outer + +(array_creation_expression + (array_element_initializer + (_) @entry.inner + ) @entry.outer @entry.movement) + +(list_literal + (_) @entry.inner @entry.outer @entry.movement) + +[ + (enum_case) +] @entry.outer @entry.movement diff --git a/treesit-queries/pkgbuild/textobjects.scm b/treesit-queries/pkgbuild/textobjects.scm new file mode 100644 index 0000000..b38e142 --- /dev/null +++ b/treesit-queries/pkgbuild/textobjects.scm @@ -0,0 +1 @@ +; inherits: bash diff --git a/treesit-queries/prisma/textobjects.scm b/treesit-queries/prisma/textobjects.scm new file mode 100644 index 0000000..2b15d0a --- /dev/null +++ b/treesit-queries/prisma/textobjects.scm @@ -0,0 +1,17 @@ +(model_declaration + ((statement_block) @class.inner)) @class.outer + +(call_expression + (arguments (_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(column_declaration) @entry.outer + +(array (_) @entry.outer) + +(assignment_expression + (_) @entry.inner) @entry.outer + +(developer_comment) @comment.inner + +(developer_comment)+ @comment.outer + diff --git a/treesit-queries/protobuf/textobjects.scm b/treesit-queries/protobuf/textobjects.scm new file mode 100644 index 0000000..56794ae --- /dev/null +++ b/treesit-queries/protobuf/textobjects.scm @@ -0,0 +1,9 @@ +(message (messageBody) @class.inner) @class.outer +(enum (enumBody) @class.inner) @class.outer +(service (serviceBody) @class.inner) @class.outer + +(rpc (enumMessageType) @parameter.inner) @function.inner +(rpc (enumMessageType) @parameter.outer) @function.outer + +(comment) @comment.inner +(comment)+ @comment.outer diff --git a/treesit-queries/python/textobjects.scm b/treesit-queries/python/textobjects.scm index 6e97f42..73a1741 100644 --- a/treesit-queries/python/textobjects.scm +++ b/treesit-queries/python/textobjects.scm @@ -22,11 +22,14 @@ body: (block)? @test.inner) @test.outer (#match "^test_" @_name)) -(for_statement - body: (_) @loop.inner) @loop.outer +(list + (_) @entry.outer) -(while_statement - body: (_) @loop.inner) @loop.outer +(tuple + (_) @entry.outer) -(if_statement - consequence: (_) @conditional.inner) @conditional.outer +(set + (_) @entry.outer) + +(pair + (_) @entry.inner) @entry.outer diff --git a/treesit-queries/ruby/textobjects.scm b/treesit-queries/ruby/textobjects.scm index cff8dde..9788462 100644 --- a/treesit-queries/ruby/textobjects.scm +++ b/treesit-queries/ruby/textobjects.scm @@ -42,3 +42,15 @@ ; Comments (comment) @comment.inner (comment)+ @comment.outer + +(pair + (_) @entry.inner) @entry.outer + +(array + (_) @entry.outer) + +(string_array + (_) @entry.outer) + +(symbol_array + (_) @entry.outer) diff --git a/treesit-queries/rust/textobjects.scm b/treesit-queries/rust/textobjects.scm index b86e9ad..cba4d5e 100644 --- a/treesit-queries/rust/textobjects.scm +++ b/treesit-queries/rust/textobjects.scm @@ -34,6 +34,9 @@ (arguments ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) +(field_initializer_list + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + [ (line_comment) (block_comment) @@ -57,14 +60,26 @@ body: (_) @test.inner) @test.outer (#equal @_test_attribute "test")) -(loop_expression - body: (_) @loop.inner) @loop.outer +(array_expression + (_) @entry.outer) + +(tuple_expression + (_) @entry.outer) + +(tuple_pattern + (_) @entry.outer) + +; Commonly used vec macro intializer is special cased +(macro_invocation + (identifier) @_id (token_tree (_) @entry.outer) + (#equal @_id "vec")) + +(enum_variant) @entry.outer -(while_expression - body: (_) @loop.inner) @loop.outer +(field_declaration + (_) @entry.inner) @entry.outer -(for_expression - body: (_) @loop.inner) @loop.outer +(field_initializer + (_) @entry.inner) @entry.outer -(if_expression - consequence: (_) @conditional.inner) @conditional.outer +(shorthand_field_initializer) @entry.outer diff --git a/treesit-queries/scala/textobjects.scm b/treesit-queries/scala/textobjects.scm new file mode 100644 index 0000000..f5f6925 --- /dev/null +++ b/treesit-queries/scala/textobjects.scm @@ -0,0 +1,65 @@ +; Function queries + +(function_definition + body: (_) @function.inner) @function.outer ; Does not include end marker + +(lambda_expression + (_) @function.inner) @function.outer + +; Scala 3 braceless lambda +(colon_argument + (_) @function.inner) @function.outer + + +; Class queries + +(object_definition + body: (_)? @class.inner) @class.outer + +(class_definition + body: (_)? @class.inner) @class.outer + +(trait_definition + body: (_)? @class.inner) @class.outer + +(type_definition) @class.outer + +(enum_case_definitions) @class.outer + +(enum_definition + body: (_)? @class.inner) @class.outer + + +; Parameter queries + +(parameters + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(class_parameters + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(parameter_types + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(bindings + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +; Does not match context bounds or higher-kinded types +(type_parameters + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(type_arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + + +; Comment queries + +[(comment) (block_comment)] @comment.inner +[(comment) (block_comment)] @comment.outer ; Does not match consecutive block comments + + +; Test queries +; Not supported diff --git a/treesit-queries/slint/textobjects.scm b/treesit-queries/slint/textobjects.scm new file mode 100644 index 0000000..0ef7036 --- /dev/null +++ b/treesit-queries/slint/textobjects.scm @@ -0,0 +1,35 @@ +(function_definition + (imperative_block) @funtion.inner) @function.outer + +(callback_event + (imperative_block) @function.inner) @function.outer + +(property + (imperative_block) @function.inner) @function.outer + +(struct_definition + (struct_block) @class.inner) @class.outer + +(enum_definition + (enum_block) @class.inner) @class.outer + +(global_definition + (global_block) @class.inner) @class.outer + +(component_definition + (block) @class.inner) @class.outer + +(component_definition + (block) @class.inner) @class.outer + +(comment) @comment.outer + +(typed_identifier + name: (_) @parameter.inner) @parameter.outer + +(callback + arguments: (_) @parameter.inner) + +(string_value + "\"" . (_) @text.inner . "\"") @text.outer + diff --git a/treesit-queries/solidity/textobjects.scm b/treesit-queries/solidity/textobjects.scm new file mode 100644 index 0000000..a7815a3 --- /dev/null +++ b/treesit-queries/solidity/textobjects.scm @@ -0,0 +1,54 @@ +(function_definition + body: (_) @function.inner) @function.outer + +(constructor_definition + body: (_) @function.inner) @function.outer + +(fallback_receive_definition + body: (_) @function.inner) @function.outer + +(yul_function_definition + (yul_block) @function.inner) @function.outer + +(function_definition + ((parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(constructor_definition + ((parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(return_type_definition + ((parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(modifier_definition + ((parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(event_definition + ((event_parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(error_declaration + ((error_parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(call_argument + ((call_struct_argument) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(call_expression + ((call_argument) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(variable_declaration_tuple + ((variable_declaration) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(emit_statement + ((call_argument) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(revert_arguments + ((call_argument) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(struct_declaration + body: (_) @class.inner) @class.outer + +(enum_declaration + body: (_) @class.inner) @class.outer + +(comment) @comment.inner + +(comment)+ @comment.outer diff --git a/treesit-queries/sql/textobjects.scm b/treesit-queries/sql/textobjects.scm new file mode 100644 index 0000000..77102c1 --- /dev/null +++ b/treesit-queries/sql/textobjects.scm @@ -0,0 +1,4 @@ +(comment) @comment.inner + +(comment)+ @comment.outer + diff --git a/treesit-queries/swift/textobjects.scm b/treesit-queries/swift/textobjects.scm new file mode 100644 index 0000000..2f880b5 --- /dev/null +++ b/treesit-queries/swift/textobjects.scm @@ -0,0 +1,23 @@ +(class_declaration + body: (_) @class.inner) @class.outer + +(protocol_declaration + body: (_) @class.inner) @class.outer + +(function_declaration + body: (_) @function.inner) @function.outer + +(parameter + (_) @parameter.inner) @parameter.outer + +(lambda_parameter + (_) @parameter.inner) @parameter.outer + +[ + (comment) + (multiline_comment) +] @comment.inner + +(comment)+ @comment.outer + +(multiline_comment) @comment.outer diff --git a/treesit-queries/tact/textobjects.scm b/treesit-queries/tact/textobjects.scm new file mode 100644 index 0000000..c73f4af --- /dev/null +++ b/treesit-queries/tact/textobjects.scm @@ -0,0 +1,58 @@ +; function.inside & around +; ------------------------ + +(static_function + body: (_) @function.inner) @function.outer + +(init_function + body: (_) @function.inner) @function.outer + +(bounced_function + body: (_) @function.inner) @function.outer + +(receive_function + body: (_) @function.inner) @function.outer + +(external_function + body: (_) @function.inner) @function.outer + +(function + body: (_) @function.inner) @function.outer + +; class.inside & around +; --------------------- + +(struct + body: (_) @class.inner) @class.outer + +(message + body: (_) @class.inner) @class.outer + +(contract + body: (_) @class.inner) @class.outer + +; NOTE: Marked as @definition.interface in tags, as it's semantically correct +(trait + body: (_) @class.inner) @class.outer + +; parameter.inside & around +; ------------------------- + +(parameter_list + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(argument_list + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(instance_argument_list + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +; comment.inside +; -------------- + +(comment) @comment.inner + +; comment.around +; -------------- + +(comment)+ @comment.outer \ No newline at end of file diff --git a/treesit-queries/toml/textobjects.scm b/treesit-queries/toml/textobjects.scm new file mode 100644 index 0000000..f20753d --- /dev/null +++ b/treesit-queries/toml/textobjects.scm @@ -0,0 +1,5 @@ +(pair + (_) @entry.inner) @entry.outer + +(array + (_) @entry.outer) diff --git a/treesit-queries/typespec/textobjects.scm b/treesit-queries/typespec/textobjects.scm new file mode 100644 index 0000000..75bc8fc --- /dev/null +++ b/treesit-queries/typespec/textobjects.scm @@ -0,0 +1,51 @@ +; Classes + +(enum_statement + (enum_body) @class.inner) @class.outer + +(model_statement + (model_expression) @class.inner) @class.outer + +(union_statement + (union_body) @class.inner) @class.outer + +; Interfaces + +(interface_statement + (interface_body + (interface_member) @function.outer) @class.inner) @class.outer + +; Comments + +[ + (single_line_comment) + (multi_line_comment) +] @comment.inner + +[ + (single_line_comment) + (multi_line_comment) +]+ @comment.outer + +; Functions + +[ + (decorator) + (decorator_declaration_statement) + (function_declaration_statement) + (operation_statement) +] @function.outer + +(function_parameter_list + (function_parameter)? @parameter.inner)* @function.inner + +(decorator_arguments + (expression_list + (_) @parameter.inner)*) @function.inner + +(operation_arguments + (model_property)? @parameter.inner)* @function.inner + +(template_parameters + (template_parameter_list + (template_parameter) @parameter.inner)) @function.inner diff --git a/treesit-queries/vala/textobjects.scm b/treesit-queries/vala/textobjects.scm new file mode 100644 index 0000000..70e8adf --- /dev/null +++ b/treesit-queries/vala/textobjects.scm @@ -0,0 +1,27 @@ +(method_declaration + (block) @function.inner) @function.outer + +(creation_method_declaration + (block) @function.inner) @function.outer + +(method_declaration + ((parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +[ + (class_declaration) + (struct_declaration) + (interface_declaration) +] @class.outer + +(type_arguments + ((_) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(creation_method_declaration + ((parameter) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(method_call_expression + ((argument) @parameter.inner . ","? @parameter.outer) @parameter.outer) + +(comment) @comment.inner + +(comment)+ @comment.outer diff --git a/treesit-queries/verilog/textobjects.scm b/treesit-queries/verilog/textobjects.scm index 68b6df7..7a7d77c 100644 --- a/treesit-queries/verilog/textobjects.scm +++ b/treesit-queries/verilog/textobjects.scm @@ -3,4 +3,8 @@ (function_body_declaration (function_identifier (function_identifier - (simple_identifier) @function.inner)))) @function.outer \ No newline at end of file + (simple_identifier) @function.inner)))) @function.outer + +(comment) @comment.inner + +(comment)+ @comment.outer diff --git a/treesit-queries/yaml/textobjects.scm b/treesit-queries/yaml/textobjects.scm new file mode 100644 index 0000000..f7d9539 --- /dev/null +++ b/treesit-queries/yaml/textobjects.scm @@ -0,0 +1,7 @@ +(comment) @comment.inner + +(comment)+ @comment.outer + +(block_mapping_pair + (_) @entry.inner) @entry.outer +