mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 19:17:02 -04:00
refactor(indent)!: Rework indent, aligned indent
indents now use @indent.X style captures, and indent.PROP for properties to set on those captures, as documented in the help. Captures are: indent.auto indent.begin indent.end indent.dedent indent.branch indent.ignore indent.align indent.zero Properties are: indent.immediate indent.start_at_same_line indent.open_delimiter indent.close_delimiter indent.increment indent.avoid_last_matching_next Multiple opening delims on one line and multiple closing on a line are collapsed so as not to over indent, The final line of @indent.align blocks which must in some cases be treated specially to avoid clashing with the next line is treated the same regardless of whether the @indent.align capture actually uses aligned indentation or just normal indentation. The indent.avoid_last_matching_next property controls this. Adjust python to use these. List, set, dict and tuple all use @indent.align which permits both hanging and aligned styles. Finally, try: on it’s own will indent when typing live but make no guaranteeds about whole-file formatting. Includes lucario387:fix-align-indent
This commit is contained in:
parent
90ead4ed58
commit
d1333dd7e5
14 changed files with 298 additions and 53 deletions
|
|
@ -1,8 +1,4 @@
|
|||
[
|
||||
(list)
|
||||
(dictionary)
|
||||
(set)
|
||||
|
||||
(import_from_statement)
|
||||
|
||||
(parenthesized_expression)
|
||||
|
|
@ -20,6 +16,16 @@
|
|||
(concatenated_string)
|
||||
] @indent
|
||||
|
||||
((list) @aligned_indent
|
||||
(#set! "delimiter" "[]")
|
||||
)
|
||||
((dictionary) @aligned_indent
|
||||
(#set! "delimiter" "{}")
|
||||
)
|
||||
((set) @aligned_indent
|
||||
(#set! "delimiter" "{}")
|
||||
)
|
||||
|
||||
((for_statement) @indent
|
||||
(#set! "immediate_indent" 1))
|
||||
((if_statement) @indent
|
||||
|
|
@ -28,8 +34,7 @@
|
|||
(#set! "immediate_indent" 1))
|
||||
((try_statement) @indent
|
||||
(#set! "immediate_indent" 1))
|
||||
((ERROR "try" ":") @indent
|
||||
(#set! "immediate_indent" 1))
|
||||
(ERROR "try" ":" @indent (#set! "immediate_indent" 1))
|
||||
((function_definition) @indent
|
||||
(#set! "immediate_indent" 1))
|
||||
((class_definition) @indent
|
||||
|
|
@ -40,27 +45,24 @@
|
|||
(if_statement
|
||||
condition: (parenthesized_expression) @aligned_indent
|
||||
(#set! "delimiter" "()")
|
||||
(#set! "final_line_indent" 1) ; parenthesized_expression already indented
|
||||
)
|
||||
(#set! "avoid_last_matching_next" 1))
|
||||
(while_statement
|
||||
condition: (parenthesized_expression) @aligned_indent
|
||||
(#set! "delimiter" "()")
|
||||
(#set! "final_line_indent" 1) ; parenthesized_expression already indented
|
||||
)
|
||||
(#set! "avoid_last_matching_next" 1))
|
||||
|
||||
((ERROR "(" . (_)) @aligned_indent
|
||||
(#set! "delimiter" "()"))
|
||||
((argument_list ")" @indent_end) @aligned_indent
|
||||
(ERROR "(" @aligned_indent (#set! "delimiter" "()") . (_))
|
||||
((argument_list) @aligned_indent
|
||||
(#set! "delimiter" "()"))
|
||||
((parameters) @aligned_indent
|
||||
(#set! "delimiter" "()")
|
||||
(#set! "final_line_indent" 1))
|
||||
((tuple ")" @indent_end) @aligned_indent
|
||||
(#set! "avoid_last_matching_next" 1))
|
||||
((tuple) @aligned_indent
|
||||
(#set! "delimiter" "()"))
|
||||
|
||||
(list "]" @indent_end)
|
||||
(dictionary "}" @indent_end)
|
||||
(set "}" @indent_end)
|
||||
(ERROR "[" @aligned_indent (#set! "delimiter" "[]") . (_))
|
||||
|
||||
(ERROR "{" @aligned_indent (#set! "delimiter" "{}") . (_))
|
||||
|
||||
(parenthesized_expression ")" @indent_end)
|
||||
(generator_expression ")" @indent_end)
|
||||
|
|
@ -75,9 +77,17 @@
|
|||
(return_statement
|
||||
[
|
||||
(_) @indent_end
|
||||
(_ (_) @indent_end .)
|
||||
(_
|
||||
[
|
||||
(_)
|
||||
")"
|
||||
"}"
|
||||
"]"
|
||||
] @indent_end .)
|
||||
(attribute
|
||||
attribute: (_) @indent_end)
|
||||
(call
|
||||
arguments: (_ ")" @indent_end))
|
||||
"return" @indent_end
|
||||
] .)
|
||||
|
||||
|
|
@ -92,3 +102,4 @@
|
|||
] @branch
|
||||
|
||||
(string) @auto
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue