Interpolate substitution vars in the arg (i.e. $(DEFFILE))
Load extra data embed into binary format String
object.
Example:
x[1] += 42 ^^^ (for []) x[1] += 42 ^ (for +) x[1] += 42 ^^^^^^ (for []=)
Example:
x.foo += 42 ^^^ (for foo) x.foo += 42 ^ (for +) x.foo += 42 ^^^^^^^ (for foo=)
Example:
x.foo(42) ^^ x[42] ^^ x.foo = 1 ^ x[42] = 1 ^^^^^^^ x[] = 1 ^^^^^ x + 1 ^ foo(42) ^^ foo 42 ^^
Foo ||= bar
becomes
defined?(Foo) ? Foo : Foo = bar
The end offset from the start of the file in code units using the given cache to fetch or calculate the value.
The start column in code units using the given cache to fetch or calculate the value.
Reset nil attributes to their default values to make the spec valid
When there is an invalid block with a keyword missing an end right before another end, it is unclear where which keyword is missing the end
Take this example:
class Dog # 1 def bark # 2 puts "woof" # 3 end # 4
However due to github.com/ruby/syntax_suggest/issues/32 the problem line will be identified as:
> class Dog # 1
Because lines 2, 3, and 4 are technically valid code and are expanded first, deemed valid, and hidden. We need to un-hide the matching end line 4. Also work backwards and if there’s a mis-matched keyword, show it too
foo.bar, = 1 ^^^^^^^
case foo; in bar; end ^^^^^^^^^^^^^^^^^^^^^