[ (class_body) (enum_body) (interface_body) (constructor_body) (annotation_type_body) (module_body) (block) (switch_block) ; statements after a `case`/`default` label (the group also holds the label, ; so the default tail scope indents only the body lines, not the label) (switch_block_statement_group) (array_initializer) (argument_list) (formal_parameters) (annotation_argument_list) (element_value_array_initializer) ] @indent [ "}" ")" "]" ] @outdent ; Single statement after if/while/for without braces. Capture the body child ; naturally; on a typed newline the engine descends into it. (if_statement consequence: (_) @indent (#not-kind-eq? @indent "block") (#set! "scope" "header")) ; Braceless `else` body (the body is the alternative field). Skip `else if` ; (alternative is an if_statement) and braced bodies. (if_statement alternative: (_) @indent (#not-kind-eq? @indent "block") (#not-kind-eq? @indent "if_statement") (#set! "scope" "header")) (while_statement body: (_) @indent (#not-kind-eq? @indent "block") (#set! "scope" "header")) (for_statement body: (_) @indent (#not-kind-eq? @indent "block") (#set! "scope" "header")) (string_literal) @opaque