diff options
| author | George Harker <george@george-graphics.co.uk> | 2023-03-19 18:09:18 -0700 |
|---|---|---|
| committer | Amaan Qureshi <amaanq12@gmail.com> | 2023-03-24 13:07:53 -0400 |
| commit | d1333dd7e51729a581fed3e429fa035bff77a3db (patch) | |
| tree | 961499041e8e3da94963e7331e09754d423b40a1 /queries/python | |
| parent | fix: shim 0.9 deprecations (diff) | |
| download | nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.gz nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.bz2 nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.lz nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.xz nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.zst nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.zip | |
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
Diffstat (limited to 'queries/python')
| -rw-r--r-- | queries/python/indents.scm | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/queries/python/indents.scm b/queries/python/indents.scm index cc13587ec..82933c159 100644 --- a/queries/python/indents.scm +++ b/queries/python/indents.scm @@ -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 + |
