ruby-lsp-ree 0.1.24 → 0.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -5
- data/lib/ruby_lsp/ruby_lsp_ree/completion/completion_items_mapper.rb +3 -2
- data/lib/ruby_lsp/ruby_lsp_ree/formatters/sort_links_formatter.rb +1 -1
- data/lib/ruby_lsp/ruby_lsp_ree/handlers/completion_handler.rb +3 -1
- data/lib/ruby_lsp/ruby_lsp_ree/handlers/definition_handler.rb +2 -2
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/body_objects_parser.rb +8 -0
- data/lib/ruby_lsp/ruby_lsp_ree/ree_object_finder.rb +7 -0
- data/lib/ruby_lsp_ree/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26ce3da4d64d7bb6e48fe5691055ca3f78f3455f27c72c63ddc5691e56bddd6c
|
4
|
+
data.tar.gz: 5f5371e99f045a27c434f73acb1f3eaa7191c02e3d25a6cbbc1f6de304f798f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fa9a236ddb1e5bef4b79170423f79e566c98f9fceae7baae5ef8a62595d2eff5e321016da8c23f1565b864a714dbb5e9c68caf04b301fdeed03efefe65e98ea
|
7
|
+
data.tar.gz: '079e28850e8302a889f556d9844cae69d5be21cff0b0d389c68445acbf907091d96965319c5c291a0b8c964c3945c27a72835fc393c0d56974b6f05be8235a6a'
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-lsp-ree (0.1.
|
4
|
+
ruby-lsp-ree (0.1.25)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -26,11 +26,10 @@ GEM
|
|
26
26
|
diff-lcs (>= 1.2.0, < 2.0)
|
27
27
|
rspec-support (~> 3.13.0)
|
28
28
|
rspec-support (3.13.2)
|
29
|
-
ruby-lsp (0.
|
29
|
+
ruby-lsp (0.25.0)
|
30
30
|
language_server-protocol (~> 3.17.0)
|
31
31
|
prism (>= 1.2, < 2.0)
|
32
|
-
rbs (>= 3, <
|
33
|
-
sorbet-runtime (>= 0.5.10782)
|
32
|
+
rbs (>= 3, < 5)
|
34
33
|
sorbet (0.5.11835)
|
35
34
|
sorbet-static (= 0.5.11835)
|
36
35
|
sorbet-runtime (0.5.11835)
|
@@ -47,7 +46,7 @@ PLATFORMS
|
|
47
46
|
DEPENDENCIES
|
48
47
|
rake (~> 13.0)
|
49
48
|
rspec
|
50
|
-
ruby-lsp
|
49
|
+
ruby-lsp (~> 0.25.0)
|
51
50
|
ruby-lsp-ree!
|
52
51
|
sorbet-static-and-runtime
|
53
52
|
|
@@ -90,7 +90,7 @@ module RubyLsp
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
def map_class_name_objects(class_name_objects, node, parsed_doc)
|
93
|
+
def map_class_name_objects(class_name_objects, node, parsed_doc, ree_context)
|
94
94
|
imported_consts = []
|
95
95
|
not_imported_consts = []
|
96
96
|
|
@@ -128,6 +128,7 @@ module RubyLsp
|
|
128
128
|
detail: entry_comment + " #{file_name}"
|
129
129
|
)
|
130
130
|
|
131
|
+
addition_edits = ree_context.is_link_object? ? [] : ConstAdditionalTextEditsCreator.call(parsed_doc, class_name, package_name, entry)
|
131
132
|
not_imported_consts << Interface::CompletionItem.new(
|
132
133
|
label: class_name,
|
133
134
|
label_details: label_details,
|
@@ -137,7 +138,7 @@ module RubyLsp
|
|
137
138
|
new_text: class_name,
|
138
139
|
),
|
139
140
|
kind: Constant::CompletionItemKind::CLASS,
|
140
|
-
additional_text_edits:
|
141
|
+
additional_text_edits: addition_edits
|
141
142
|
)
|
142
143
|
end
|
143
144
|
end
|
@@ -36,7 +36,7 @@ module RubyLsp
|
|
36
36
|
link_group.map{ renderer.render(_1) }.join('')
|
37
37
|
end
|
38
38
|
|
39
|
-
editor.insert_link_block(parsed_doc, link_groups_texts.select{ _1.size > 0 }.join(
|
39
|
+
editor.insert_link_block(parsed_doc, link_groups_texts.select{ _1.size > 0 }.join(''))
|
40
40
|
editor.source
|
41
41
|
end
|
42
42
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative "../utils/ree_lsp_utils"
|
2
2
|
require_relative "../ree_object_finder"
|
3
3
|
require_relative '../completion/completion_items_mapper'
|
4
|
+
require_relative "../ree_context"
|
4
5
|
|
5
6
|
module RubyLsp
|
6
7
|
module Ree
|
@@ -18,6 +19,7 @@ module RubyLsp
|
|
18
19
|
@root_node = @node_context.instance_variable_get(:@nesting_nodes).first
|
19
20
|
@finder = ReeObjectFinder.new(@index)
|
20
21
|
@mapper = RubyLsp::Ree::CompletionItemsMapper.new(@index)
|
22
|
+
@ree_context = RubyLsp::Ree::ReeContext.new(node_context)
|
21
23
|
end
|
22
24
|
|
23
25
|
def get_ree_receiver(receiver_node)
|
@@ -65,7 +67,7 @@ module RubyLsp
|
|
65
67
|
|
66
68
|
parsed_doc = RubyLsp::Ree::ParsedDocumentBuilder.build_from_ast(@root_node, @uri)
|
67
69
|
|
68
|
-
@mapper.map_class_name_objects(class_name_objects.take(CANDIDATES_LIMIT), node, parsed_doc)
|
70
|
+
@mapper.map_class_name_objects(class_name_objects.take(CANDIDATES_LIMIT), node, parsed_doc, @ree_context)
|
69
71
|
end
|
70
72
|
|
71
73
|
def get_ree_objects_completions_items(node)
|
@@ -48,7 +48,7 @@ module RubyLsp
|
|
48
48
|
|
49
49
|
uri = File.join(Dir.pwd, path)
|
50
50
|
elsif link_node.import_link_type?
|
51
|
-
class_candidates = @finder.
|
51
|
+
class_candidates = @finder.find_classes(node.name.to_s)
|
52
52
|
next unless class_candidates
|
53
53
|
|
54
54
|
class_candidates = class_candidates.flatten
|
@@ -271,7 +271,7 @@ module RubyLsp
|
|
271
271
|
|
272
272
|
def find_object_uri_for_package(link_node, package_name)
|
273
273
|
if link_node.import_link_type?
|
274
|
-
class_candidates = @finder.
|
274
|
+
class_candidates = @finder.find_classes(link_node.imports.first)
|
275
275
|
return nil unless class_candidates
|
276
276
|
|
277
277
|
class_candidates = class_candidates.flatten
|
@@ -61,6 +61,14 @@ class RubyLsp::Ree::BodyObjectsParser < RubyLsp::Ree::BasicParser
|
|
61
61
|
target_objects += parse(node.elements)
|
62
62
|
end
|
63
63
|
|
64
|
+
if node.respond_to?(:conditions)
|
65
|
+
target_objects += parse(node.conditions)
|
66
|
+
end
|
67
|
+
|
68
|
+
if node.respond_to?(:expression)
|
69
|
+
target_objects += parse([node.expression])
|
70
|
+
end
|
71
|
+
|
64
72
|
if node.respond_to?(:predicate)
|
65
73
|
target_objects += parse([node.predicate])
|
66
74
|
end
|
@@ -49,6 +49,13 @@ module RubyLsp
|
|
49
49
|
@index.instance_variable_get(:@entries).values_at(*keys)
|
50
50
|
end
|
51
51
|
|
52
|
+
def find_classes(name)
|
53
|
+
keys = @index
|
54
|
+
.names
|
55
|
+
.select{ _1.split('::').last == name}
|
56
|
+
@index.instance_variable_get(:@entries).values_at(*keys)
|
57
|
+
end
|
58
|
+
|
52
59
|
def find_object(name)
|
53
60
|
objects_by_name = @index[name]
|
54
61
|
return unless objects_by_name
|
data/lib/ruby_lsp_ree/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lsp-ree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruslan Gatiyatov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby LSP addon that adds extra editor functionality for Ree applications
|
14
14
|
email:
|