Server IP : 66.29.132.122 / Your IP : 18.216.111.153 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/proc/thread-self/root/proc/thread-self/root/proc/self/root/proc/thread-self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/opt/alt/ruby33/share/ruby/syntax_suggest/ |
Upload File : |
# 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