diff --git a/queries/clojure/indents.scm b/queries/clojure/indents.scm new file mode 100644 index 000000000..7783e91e0 --- /dev/null +++ b/queries/clojure/indents.scm @@ -0,0 +1,21 @@ +; https://tonsky.me/blog/clojurefmt/ + +; Align lines within forms +((list_lit) @indent.align (#set! indent.open_delimiter "(") (#set! indent.close_delimiter ")")) +((vec_lit) @indent.align (#set! indent.open_delimiter "[") (#set! indent.close_delimiter "]")) +((map_lit) @indent.align (#set! indent.open_delimiter "{") (#set! indent.close_delimiter "}")) +((set_lit) @indent.align (#set! indent.open_delimiter "{") (#set! indent.close_delimiter "}")) +((anon_fn_lit) @indent.align (#set! indent.open_delimiter "(") (#set! indent.close_delimiter ")")) + +([(map_lit) (set_lit) (vec_lit) (list_lit) (anon_fn_lit)] + @indent.align + ; Align lines even when parent open_delimiter is hanging + (#set! indent.align_hanging 1) + ; Allow parent nodes on same line to indent (e.g. '(' and '[' on single line) + (#set! indent.propagate 1)) + +; Indent lists starting with a symbol by 2 spaces +([(list_lit . (sym_lit)) + (anon_fn_lit . (sym_lit))] + @indent.align + (#set! indent.increment 2))