class RubyLex

def calc_indent_level(opens)

def calc_indent_level(opens)
  indent_level = 0
  opens.each_with_index do |t, index|
    case t.event
    when :on_heredoc_beg
      if opens[index + 1]&.event != :on_heredoc_beg
        if t.tok.match?(/^<<[~-]/)
          indent_level += 1
        else
          indent_level = 0
        end
      end
    when :on_tstring_beg, :on_regexp_beg, :on_symbeg, :on_backtick
      # can be indented if t.tok starts with `%`
    when :on_words_beg, :on_qwords_beg, :on_symbols_beg, :on_qsymbols_beg, :on_embexpr_beg
      # can be indented but not indented in current implementation
    when :on_embdoc_beg
      indent_level = 0
    else
      indent_level += 1
    end
  end
  indent_level
end