summaryrefslogtreecommitdiff
path: root/vendor/queries/clojure/textobjects.scm
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/queries/clojure/textobjects.scm')
-rw-r--r--vendor/queries/clojure/textobjects.scm76
1 files changed, 76 insertions, 0 deletions
diff --git a/vendor/queries/clojure/textobjects.scm b/vendor/queries/clojure/textobjects.scm
new file mode 100644
index 00000000..5121ff8c
--- /dev/null
+++ b/vendor/queries/clojure/textobjects.scm
@@ -0,0 +1,76 @@
+; Vendored from helix (https://github.com/helix-editor/helix) at 278b24389:
+; runtime/queries/clojure/textobjects.scm.
+; Licensed under the Mozilla Public License 2.0 (vendor/queries/helix.LICENSE,
+; https://mozilla.org/MPL/2.0/).
+
+; Function definitions (defn, defn-, defmacro, defmethod, etc.)
+(list_lit
+ .
+ (sym_lit) @_keyword
+ .
+ (sym_lit)
+ (_)* @function.inside
+ (#match? @_keyword "^(defn|defn-|defmacro|defmethod|defmulti|definline)$")) @function.around
+
+; Anonymous functions (fn)
+(list_lit
+ .
+ (sym_lit) @_fn
+ (_)* @function.inside
+ (#match? @_fn "^fn$")) @function.around
+
+; Anonymous function shorthand #()
+(anon_fn_lit
+ (_)* @function.inside) @function.around
+
+; deftype, defrecord, defprotocol
+(list_lit
+ .
+ (sym_lit) @_keyword
+ .
+ (sym_lit)
+ (_)* @class.inside
+ (#match? @_keyword "^(deftype|defrecord|defprotocol|definterface|defstruct)$")) @class.around
+
+; Test definitions (deftest)
+(list_lit
+ .
+ (sym_lit) @_keyword
+ .
+ (sym_lit)
+ (_)* @test.inside
+ (#match? @_keyword "^deftest$")) @test.around
+
+; Function parameters in vectors
+(vec_lit
+ (_)* @parameter.inside) @parameter.around
+
+; List entries
+(list_lit
+ (_) @entry.inside @entry.around)
+
+; Vector entries
+(vec_lit
+ (_) @entry.inside @entry.around)
+
+; Map entries
+(map_lit
+ (_) @entry.inside @entry.around)
+
+; Set entries
+(set_lit
+ (_) @entry.inside @entry.around)
+
+; Comments
+(comment) @comment.inside
+(comment)+ @comment.around
+
+; Discard expressions (also treated as comments)
+(dis_expr) @comment.inside
+
+; Comment special form (comment ...)
+(list_lit
+ .
+ (sym_lit) @_comment
+ (_)* @comment.inside
+ (#match? @_comment "^comment$")) @comment.around