END {} ^^^^^^
A shareable constant.
Visit the list of statements of a statements node. We support nil statements in the list. This would normally not be allowed by the structure of the prism parse tree, but we manually add them here so that we can mirror Ripper’s void stmt.
Interpolate substitution vars in the arg (i.e. $(DEFFILE))
Load extra data embed into binary format String
object.
Example:
x.foo ^^^^ x.foo(42) ^^^^ x&.foo ^^^^^ x[42] ^^^^ x.foo = 1 ^^^^^^ x[42] = 1 ^^^^^^ x + 1 ^ +x ^ foo(42) ^^^ foo 42 ^^^ foo ^^^
Example:
x.foo(42) ^^ x[42] ^^ x.foo = 1 ^ x[42] = 1 ^^^^^^^ x[] = 1 ^^^^^ x + 1 ^ foo(42) ^^ foo 42 ^^
Return the best specification that contains the file matching path
, among those already activated.
Return the best specification in the record that contains the file matching path
, among those already activated.
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
Parses the most indented lines into blocks that are marked and added to the frontier
Returns the node id for the given backtrace location.
begin raise rescue => e loc = e.backtrace_locations.first RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location(loc) end # => 0