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.
200 201 202 203 204 205 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 200 def initialize(var_name, before_line) @var_name = var_name @before_line = before_line @candidates = [] @context = [] end |
Instance Method Details
#kind ⇒ Object
207 208 209 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 207 def kind @candidates.last&.last end |
#visit_block_node(node) ⇒ Object
217 218 219 220 221 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 217 def visit_block_node(node) @context.push(:block) super @context.pop end |
#visit_block_parameter_node(node) ⇒ Object
238 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 238 def visit_block_parameter_node(node) = record_param(node) || super |
#visit_def_node(node) ⇒ Object
211 212 213 214 215 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 211 def visit_def_node(node) @context.push(:method) super @context.pop end |
#visit_keyword_rest_parameter_node(node) ⇒ Object
237 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 237 def visit_keyword_rest_parameter_node(node) = record_param(node) || super |
#visit_lambda_node(node) ⇒ Object
223 224 225 226 227 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 223 def visit_lambda_node(node) @context.push(:block) super @context.pop end |
#visit_local_variable_and_write_node(node) ⇒ Object
232 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 232 def visit_local_variable_and_write_node(node) = record(node, :local_var) || super |
#visit_local_variable_operator_write_node(node) ⇒ Object
230 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 230 def visit_local_variable_operator_write_node(node) = record(node, :local_var) || super |
#visit_local_variable_or_write_node(node) ⇒ Object
231 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 231 def visit_local_variable_or_write_node(node) = record(node, :local_var) || super |
#visit_local_variable_write_node(node) ⇒ Object
229 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 229 def visit_local_variable_write_node(node) = record(node, :local_var) || super |
#visit_optional_keyword_parameter_node(node) ⇒ Object
240 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 240 def visit_optional_keyword_parameter_node(node) = record_param(node) || super |
#visit_optional_parameter_node(node) ⇒ Object
235 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 235 def visit_optional_parameter_node(node) = record_param(node) || super |
#visit_required_keyword_parameter_node(node) ⇒ Object
239 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 239 def visit_required_keyword_parameter_node(node) = record_param(node) || super |
#visit_required_parameter_node(node) ⇒ Object
234 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 234 def visit_required_parameter_node(node) = record_param(node) || super |
#visit_rest_parameter_node(node) ⇒ Object
236 |
# File 'lib/ruby_lsp/pink_spoon/hover_listener.rb', line 236 def visit_rest_parameter_node(node) = record_param(node) || super |