Class: RubyLsp::Ree::ImportPackagesFormatter
- Inherits:
-
BaseFormatter
- Object
- BaseFormatter
- RubyLsp::Ree::ImportPackagesFormatter
- Includes:
- ReeLspUtils
- Defined in:
- lib/ruby_lsp/ruby_lsp_ree/formatters/import_packages_formatter.rb
Constant Summary
Constants included from ReeLspUtils
Instance Method Summary collapse
Methods included from ReeLspUtils
#camelize, #find_local_file_path, #get_range_for_fn_insert, #get_ree_type, #get_uri_path, #package_name_from_spec_uri, #package_name_from_uri, #package_path_from_uri, #parameter_name, #path_from_package_folder, #signature_params_from_node, #spec_relative_file_path_from_uri, #underscore
Methods inherited from BaseFormatter
Constructor Details
This class inherits a constructor from RubyLsp::Ree::BaseFormatter
Instance Method Details
#call(source, uri) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ruby_lsp/ruby_lsp_ree/formatters/import_packages_formatter.rb', line 9 def call(source, uri) return source unless @index current_package = package_name_from_uri(uri) parsed_doc = RubyLsp::Ree::ParsedDocumentBuilder.build_from_source(source, package_name: current_package) return source if !parsed_doc finder = ReeObjectFinder.new(@index) editor = RubyLsp::Ree::ReeSourceEditor.new(source) parsed_doc.link_nodes.select(&:object_name_type?).each do |link_node| next if finder.find_object_for_package(link_node.name, link_node.link_package_name) ree_objects = finder.find_objects(link_node.name) if ree_objects.size == 1 editor.change_link_package(link_node, ree_objects.first.object_package, current_package) else (link_node.name) end end editor.source end |