Compile a InterpolatedRegularExpressionNode
node
Foo ||= bar
becomes
defined?(Foo) ? Foo : Foo = bar
Dispatch enter and leave events for CallOperatorWriteNode
nodes and continue walking the tree.
Dispatch enter and leave events for ConstantOrWriteNode
nodes and continue walking the tree.
Dispatch enter and leave events for IndexOperatorWriteNode
nodes and continue walking the tree.
Dispatch enter and leave events for InstanceVariableReadNode
nodes and continue walking the tree.
Dispatch enter and leave events for InterpolatedRegularExpressionNode
nodes and continue walking the tree.
Inspect a InterpolatedRegularExpressionNode
node.
Copy a InterpolatedRegularExpressionNode
node
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
Create a new ClassVariableOperatorWriteNode
node.