lib/ruby_lsp/requests/support/common.rb in ruby-lsp-0.10.1 vs lib/ruby_lsp/requests/support/common.rb in ruby-lsp-0.11.0

- old
+ new

@@ -3,16 +3,17 @@ module RubyLsp module Requests module Support module Common - # WARNING: Methods in this class may be used by Ruby LSP extensions such as https://github.com/Shopify/ruby-lsp-rails, - # or extensions by created by developers outside of Shopify, so be cautious of changing anything. + # WARNING: Methods in this class may be used by Ruby LSP addons such as + # https://github.com/Shopify/ruby-lsp-rails, or addons by created by developers outside of Shopify, so be + # cautious of changing anything. extend T::Sig - sig { params(node: SyntaxTree::Node).returns(Interface::Range) } - def range_from_syntax_tree_node(node) + sig { params(node: YARP::Node).returns(Interface::Range) } + def range_from_node(node) loc = node.location Interface::Range.new( start: Interface::Position.new( line: loc.start_line - 1, @@ -20,50 +21,40 @@ ), end: Interface::Position.new(line: loc.end_line - 1, character: loc.end_column), ) end - sig do - params(node: T.any(SyntaxTree::ConstPathRef, SyntaxTree::ConstRef, SyntaxTree::TopConstRef)).returns(String) + sig { params(location: YARP::Location).returns(Interface::Range) } + def range_from_location(location) + Interface::Range.new( + start: Interface::Position.new( + line: location.start_line - 1, + character: location.start_column, + ), + end: Interface::Position.new(line: location.end_line - 1, character: location.end_column), + ) end - def full_constant_name(node) - name = node.constant.value.dup - constant = T.let(node, SyntaxTree::Node) - while constant.is_a?(SyntaxTree::ConstPathRef) - constant = constant.parent - - case constant - when SyntaxTree::ConstPathRef - name.prepend("#{constant.constant.value}::") - when SyntaxTree::VarRef - name.prepend("#{constant.value.value}::") - end - end - - name - end - - sig { params(node: T.nilable(SyntaxTree::Node), range: T.nilable(T::Range[Integer])).returns(T::Boolean) } + sig { params(node: T.nilable(YARP::Node), range: T.nilable(T::Range[Integer])).returns(T::Boolean) } def visible?(node, range) return true if range.nil? return false if node.nil? loc = node.location range.cover?(loc.start_line - 1) && range.cover?(loc.end_line - 1) end sig do params( - node: SyntaxTree::Node, + node: YARP::Node, title: String, command_name: String, arguments: T.nilable(T::Array[T.untyped]), data: T.nilable(T::Hash[T.untyped, T.untyped]), ).returns(Interface::CodeLens) end def create_code_lens(node, title:, command_name:, arguments:, data:) - range = range_from_syntax_tree_node(node) + range = range_from_node(node) Interface::CodeLens.new( range: range, command: Interface::Command.new( title: title,