[
  (class_declaration)
  (function_declaration)
  (enum_declaration)
  (array)
  (block)
  (table)
  (anonymous_function)
  (parenthesized_expression)
  (while_statement)
  (switch_statement)
  (for_statement)
  (foreach_statement)
  ; (try_statement)
  (catch_statement)
] @indent.begin

((if_statement)
  (ERROR
    "else") @indent.begin)

(if_statement
  condition: (_) @indent.begin)

(if_statement
  consequence: (_)
  (else_statement) @indent.begin)

(do_while_statement
  "do"
  (_) @indent.begin)

(try_statement
  (_) @indent.begin
  (catch_statement) @indent.begin)

[
  "{"
  "}"
] @indent.branch

[
  "("
  ")"
] @indent.branch

[
  "["
  "]"
] @indent.branch

[
  "}"
  ")"
  "]"
] @indent.end

[
  (ERROR)
  (comment)
  (string)
  (verbatim_string)
] @indent.auto
