Something went wrong. Try again.
A paredit implementation for the Helix editor
plugin paredit helix-editor steel-scheme
Something went wrong. Try again.
1.1 kB · 68 lines
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869;; langs/clojure.scm — Clojure language definition.
(require "../lang.scm")
(define clojure-pairs-query "(list_lit (sym_lit) @fn-name (#any-of? @fn-name \"let\" \"loop\" \"binding\" \"with-open\" \"with-redefs\")
(vec_lit (_) @pair))
(map_lit (_) @pair)
(list_lit (sym_lit) @fn-name (#eq? @fn-name \"case\")
(_) . ((_) @pair . (_) @pair)+ (_)?)
(list_lit (sym_lit) @fn-name (#eq? @fn-name \"cond\")
((_) @pair (_) @pair)+)
(list_lit (sym_lit) @fn-name (#any-of? @fn-name \"cond->\" \"cond->>\") (_) . ((_) @pair . (_) @pair)+)
(list_lit (sym_lit) @fn-name (#eq? @fn-name \"condp\")
(_) (_) . ((_) @pair . (_) @pair)+ . (_)?)")
(register-language! (Language "clojure" ;; form-kinds '("list_lit" "set_lit" "vec_lit" "anon_fn_lit" "read_cond_lit" "map_lit" "ns_map_lit") ;; comment-kinds '("comment") ;; string-kinds '("str_lit") ;; whitespace — Clojure treats commas as whitespace (list #\space #\tab #\newline #\,) ;; pairs-query-src clojure-pairs-query))