Skip to content

Commit 0c47b30

Browse files
authored
Merge pull request #465 from aycabta/fix-token-position
Fix seek position
2 parents f7c7ba9 + 574f5e9 commit 0c47b30

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

lib/rdoc/ruby_lex.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ def token
364364

365365
if TkSYMBEG === tk then
366366
tk1 = token
367-
set_token_position tk.line_no, tk.char_no
367+
set_token_position tk.seek, tk.line_no, tk.char_no
368368

369369
case tk1
370370
when TkId, TkOp, TkSTRING, TkDSTRING, TkSTAR, TkAMPER then

lib/rdoc/ruby_token.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ module RDoc::RubyToken
2626
Symbol = Integer
2727
end
2828

29-
def set_token_position(line, char)
29+
def set_token_position(seek, line, char)
30+
@prev_seek = seek
3031
@prev_line_no = line
3132
@prev_char_no = char
3233
end

test/test_rdoc_ruby_lex.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,31 @@ def setup
99
@TK = RDoc::RubyToken
1010
end
1111

12+
def test_token_position
13+
tokens = RDoc::RubyLex.tokenize '[ 1, :a, nil ]', nil
14+
15+
assert_equal '[', tokens[0].text
16+
assert_equal 0, tokens[0].seek
17+
assert_equal 1, tokens[0].line_no
18+
assert_equal 0, tokens[0].char_no
19+
assert_equal '1', tokens[2].text
20+
assert_equal 2, tokens[2].seek
21+
assert_equal 1, tokens[2].line_no
22+
assert_equal 2, tokens[2].char_no
23+
assert_equal ':a', tokens[5].text
24+
assert_equal 5, tokens[5].seek
25+
assert_equal 1, tokens[5].line_no
26+
assert_equal 5, tokens[5].char_no
27+
assert_equal 'nil', tokens[8].text
28+
assert_equal 9, tokens[8].seek
29+
assert_equal 1, tokens[8].line_no
30+
assert_equal 9, tokens[8].char_no
31+
assert_equal ']', tokens[10].text
32+
assert_equal 13, tokens[10].seek
33+
assert_equal 1, tokens[10].line_no
34+
assert_equal 13, tokens[10].char_no
35+
end
36+
1237
def test_class_tokenize
1338
tokens = RDoc::RubyLex.tokenize "def x() end", nil
1439

0 commit comments

Comments
 (0)