summaryrefslogtreecommitdiff
path: root/lib/syntax_suggest/lex_all.rb
diff options
context:
space:
mode:
-rw-r--r--lib/syntax_suggest/lex_all.rb24
1 files changed, 19 insertions, 5 deletions
@@ -11,8 +11,8 @@ module SyntaxSuggest
include Enumerable
def initialize(source:, source_lines: nil)
- @lex = Ripper::Lexer.new(source, "-", 1).parse.sort_by(&:pos)
- lineno = @lex.last.pos.first + 1
source_lines ||= source.lines
last_lineno = source_lines.length
@@ -20,17 +20,31 @@ module SyntaxSuggest
lines = source_lines[lineno..]
@lex.concat(
- Ripper::Lexer.new(lines.join, "-", lineno + 1).parse.sort_by(&:pos)
)
- lineno = @lex.last.pos.first + 1
end
last_lex = nil
@lex.map! { |elem|
- last_lex = LexValue.new(elem.pos.first, elem.event, elem.tok, elem.state, last_lex)
}
end
def to_a
@lex
end