mirror of
https://github.com/ruby/ruby.git
synced 2025-08-27 06:56:13 +02:00
[ruby/prism] Add character APIs for locations
(https://github.com/ruby/prism/pull/1809)
d493ccd093
This commit is contained in:
parent
adee7dab3e
commit
f2ed7eaba0
4 changed files with 83 additions and 23 deletions
|
@ -71,6 +71,38 @@ module Prism
|
|||
end
|
||||
end
|
||||
|
||||
def test_location_character_offsets
|
||||
program = Prism.parse("😀 + 😀\n😍 ||= 😍").value
|
||||
|
||||
# first 😀
|
||||
location = program.statements.body.first.receiver.location
|
||||
assert_equal 0, location.start_character_offset
|
||||
assert_equal 1, location.end_character_offset
|
||||
assert_equal 0, location.start_character_column
|
||||
assert_equal 1, location.end_character_column
|
||||
|
||||
# second 😀
|
||||
location = program.statements.body.first.arguments.arguments.first.location
|
||||
assert_equal 4, location.start_character_offset
|
||||
assert_equal 5, location.end_character_offset
|
||||
assert_equal 4, location.start_character_column
|
||||
assert_equal 5, location.end_character_column
|
||||
|
||||
# first 😍
|
||||
location = program.statements.body.last.name_loc
|
||||
assert_equal 6, location.start_character_offset
|
||||
assert_equal 7, location.end_character_offset
|
||||
assert_equal 0, location.start_character_column
|
||||
assert_equal 1, location.end_character_column
|
||||
|
||||
# second 😍
|
||||
location = program.statements.body.last.value.location
|
||||
assert_equal 12, location.start_character_offset
|
||||
assert_equal 13, location.end_character_offset
|
||||
assert_equal 6, location.start_character_column
|
||||
assert_equal 7, location.end_character_column
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def parse_expression(source)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue