mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-21 12:50:09 -04:00
Format Clojure indent queries
This commit is contained in:
parent
c0eb1f39f8
commit
660370a337
1 changed files with 71 additions and 27 deletions
|
|
@ -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))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue