diff options
Diffstat (limited to 'lib/syntax_suggest/lex_value.rb')
| -rw-r--r-- | lib/syntax_suggest/lex_value.rb | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/lib/syntax_suggest/lex_value.rb b/lib/syntax_suggest/lex_value.rb deleted file mode 100644 index 008cc105b5..0000000000 --- a/lib/syntax_suggest/lex_value.rb +++ /dev/null @@ -1,70 +0,0 @@ -# frozen_string_literal: true - -module SyntaxSuggest - # Value object for accessing lex values - # - # This lex: - # - # [1, 0], :on_ident, "describe", CMDARG - # - # Would translate into: - # - # lex.line # => 1 - # lex.type # => :on_indent - # lex.token # => "describe" - class LexValue - attr_reader :line, :type, :token, :state - - def initialize(line, type, token, state, last_lex = nil) - @line = line - @type = type - @token = token - @state = state - - set_kw_end(last_lex) - end - - private def set_kw_end(last_lex) - @is_end = false - @is_kw = false - return if type != :on_kw - # - return if last_lex && last_lex.fname? # https://github.com/ruby/ruby/commit/776759e300e4659bb7468e2b97c8c2d4359a2953 - - case token - when "if", "unless", "while", "until" - # Only count if/unless when it's not a "trailing" if/unless - # https://github.com/ruby/ruby/blob/06b44f819eb7b5ede1ff69cecb25682b56a1d60c/lib/irb/ruby-lex.rb#L374-L375 - @is_kw = true unless expr_label? - when "def", "case", "for", "begin", "class", "module", "do" - @is_kw = true - when "end" - @is_end = true - end - end - - def fname? - state.allbits?(Ripper::EXPR_FNAME) - end - - def ignore_newline? - type == :on_ignored_nl - end - - def is_end? - @is_end - end - - def is_kw? - @is_kw - end - - def expr_beg? - state.anybits?(Ripper::EXPR_BEG) - end - - def expr_label? - state.allbits?(Ripper::EXPR_LABEL) - end - end -end |
