Format Clojure indent queries

This commit is contained in:
Garrett Hopper 2025-05-07 23:09:18 -05:00
parent c0eb1f39f8
commit 660370a337

View file

@ -1,37 +1,81 @@
; https://tonsky.me/blog/clojurefmt/ ; https://tonsky.me/blog/clojurefmt/
; Align lines within forms ; Align lines within forms
((list_lit open: _ @indent.open close: _ @indent.close) @indent.align) [
((vec_lit open: _ @indent.open close: _ @indent.close) @indent.align) (list_lit
((map_lit open: _ @indent.open close: _ @indent.close) @indent.align) open: _ @indent.open
((ns_map_lit open: _ @indent.open close: _ @indent.close) @indent.align) close: _ @indent.close)
((set_lit open: _ @indent.open close: _ @indent.close) @indent.align) (vec_lit
((anon_fn_lit open: _ @indent.open close: _ @indent.close) @indent.align) open: _ @indent.open
((read_cond_lit open: _ @indent.open close: _ @indent.close) @indent.align) close: _ @indent.close)
((splicing_read_cond_lit open: _ @indent.open close: _ @indent.close) @indent.align) (map_lit
open: _ @indent.open
close: _ @indent.close)
(ns_map_lit
open: _ @indent.open
close: _ @indent.close)
(set_lit
open: _ @indent.open
close: _ @indent.close)
(anon_fn_lit
open: _ @indent.open
close: _ @indent.close)
(read_cond_lit
open: _ @indent.open
close: _ @indent.close)
(splicing_read_cond_lit
open: _ @indent.open
close: _ @indent.close)
] @indent.align
([(list_lit) (vec_lit) (map_lit) (ns_map_lit) (set_lit) (anon_fn_lit) (read_cond_lit) (splicing_read_cond_lit)] ([
@indent.align (list_lit)
; Align lines even when parent open_delimiter is hanging (vec_lit)
(#set! indent.align_hanging 1) (map_lit)
; Allow parent nodes on same line to indent (e.g. '(' and '[' on single line) (ns_map_lit)
(#set! indent.propagate 1)) (set_lit)
(anon_fn_lit)
(read_cond_lit)
(splicing_read_cond_lit)
] @indent.align
; Align lines even when parent open_delimiter is hanging
(#set! indent.align_hanging 1)
; Allow indentation from multiple forms on same line (e.g. '(' and '[' on single line)
(#set! indent.propagate 1))
; Indent lists starting with a symbol by 2 spaces ; Indent lists starting with a symbol by 2 spaces
([(list_lit ((meta_lit)* . (sym_lit))) ([
(anon_fn_lit ((meta_lit)* . (sym_lit)))] (list_lit
@indent.align ((meta_lit)*
(#set! indent.increment 2)) .
(sym_lit)))
(anon_fn_lit
((meta_lit)*
.
(sym_lit)))
] @indent.align
(#set! indent.increment 2))
; Indent 1 space for forms: ', `, ~, #, @, #: ; Indent 1 space for forms: ', `, ~, #, @, #:
([(quoting_lit) (syn_quoting_lit) (unquoting_lit) (tagged_or_ctor_lit) (derefing_lit) (ns_map_lit)] ([
@indent.begin @indent.end (quoting_lit)
(#set! indent.increment 1) (syn_quoting_lit)
(#set! indent.propagate 1)) (unquoting_lit)
(tagged_or_ctor_lit)
(derefing_lit)
(ns_map_lit)
] @indent.begin @indent.end
(#set! indent.increment 1)
; Allow indentation from multiple forms on same line
(#set! indent.propagate 1))
; Indent 2 space for forms: ~@, #', #_, #= ; Indent 2 space for forms: ~@, #', #_, #=
; Note: old_meta_lit (#^), and sym_val_lit (##) are not supported ; Note: old_meta_lit (#^), and sym_val_lit (##) are not supported
([(unquote_splicing_lit) (var_quoting_lit) (dis_expr) (evaling_lit)] ([
@indent.begin @indent.end (unquote_splicing_lit)
(#set! indent.increment 2) (var_quoting_lit)
(#set! indent.propagate 1)) (dis_expr)
(evaling_lit)
] @indent.begin @indent.end
(#set! indent.increment 2)
; Allow indentation from multiple forms on same line
(#set! indent.propagate 1))