Class: RubyLsp::PinkSpoon::LocalVarKindFinder
- Inherits:
-
Prism::Visitor
- Object
- Prism::Visitor
- RubyLsp::PinkSpoon::LocalVarKindFinder
- Defined in:
- lib/ruby_lsp/pink_spoon/hover_listener.rb
Overview
Determines whether a local variable is a method parameter, block parameter, or a plain local variable assignment.
Instance Method Summary collapse
-
#initialize(var_name, before_line) ⇒ LocalVarKindFinder
constructor
A new instance of LocalVarKindFinder.
- #kind ⇒ Object
- #visit_block_node(node) ⇒ Object
- #visit_block_parameter_node(node) ⇒ Object
- #visit_def_node(node) ⇒ Object
- #visit_keyword_rest_parameter_node(node) ⇒ Object
- #visit_lambda_node(node) ⇒ Object
- #visit_local_variable_and_write_node(node) ⇒ Object
- #visit_local_variable_operator_write_node(node) ⇒ Object
- #visit_local_variable_or_write_node(node) ⇒ Object
- #visit_local_variable_write_node(node) ⇒ Object
- #visit_optional_keyword_parameter_node(node) ⇒ Object
- #visit_optional_parameter_node(node) ⇒ Object
- #visit_required_keyword_parameter_node(node) ⇒ Object
- #visit_required_parameter_node(node) ⇒ Object
- #visit_rest_parameter_node(node) ⇒ Object
Constructor Details
#initialize(var_name, before_line) ⇒ LocalVarKindFinder
Returns a new instance of LocalVarKindFinder.
119 120 121 122 123 124 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 119 def initialize(var_name, before_line) @var_name = var_name @before_line = before_line @candidates = [] @context = [] end |
Instance Method Details
#kind ⇒ Object
126 127 128 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 126 def kind @candidates.last&.last end |
#visit_block_node(node) ⇒ Object
136 137 138 139 140 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 136 def visit_block_node(node) @context.push(:block) super @context.pop end |
#visit_block_parameter_node(node) ⇒ Object
157 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 157 def visit_block_parameter_node(node) = record_param(node) || super |
#visit_def_node(node) ⇒ Object
130 131 132 133 134 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 130 def visit_def_node(node) @context.push(:method) super @context.pop end |
#visit_keyword_rest_parameter_node(node) ⇒ Object
156 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 156 def visit_keyword_rest_parameter_node(node) = record_param(node) || super |
#visit_lambda_node(node) ⇒ Object
142 143 144 145 146 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 142 def visit_lambda_node(node) @context.push(:block) super @context.pop end |
#visit_local_variable_and_write_node(node) ⇒ Object
151 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 151 def visit_local_variable_and_write_node(node) = record(node, :local_var) || super |
#visit_local_variable_operator_write_node(node) ⇒ Object
149 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 149 def visit_local_variable_operator_write_node(node) = record(node, :local_var) || super |
#visit_local_variable_or_write_node(node) ⇒ Object
150 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 150 def visit_local_variable_or_write_node(node) = record(node, :local_var) || super |
#visit_local_variable_write_node(node) ⇒ Object
148 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 148 def visit_local_variable_write_node(node) = record(node, :local_var) || super |
#visit_optional_keyword_parameter_node(node) ⇒ Object
159 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 159 def visit_optional_keyword_parameter_node(node) = record_param(node) || super |
#visit_optional_parameter_node(node) ⇒ Object
154 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 154 def visit_optional_parameter_node(node) = record_param(node) || super |
#visit_required_keyword_parameter_node(node) ⇒ Object
158 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 158 def visit_required_keyword_parameter_node(node) = record_param(node) || super |
#visit_required_parameter_node(node) ⇒ Object
153 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 153 def visit_required_parameter_node(node) = record_param(node) || super |
#visit_rest_parameter_node(node) ⇒ Object
155 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 155 def visit_rest_parameter_node(node) = record_param(node) || super |