ruby-lsp-ree 0.1.26 → 0.1.27
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/.ruby-version +1 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +5 -2
- data/lib/ruby_lsp/ruby_lsp_ree/formatters/missing_imports_formatter.rb +1 -0
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/body_objects_parser.rb +8 -0
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_base_document.rb +4 -0
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_document_builder.rb +12 -2
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_entity_document.rb +24 -1
- data/lib/ruby_lsp/ruby_lsp_ree/ree_indexing_enhancement.rb +1 -1
- data/lib/ruby_lsp_ree/version.rb +1 -1
- data/ruby-lsp-ree.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d23029bb34a76a14f958b8b3e5eab820f8cba36689edb56e6631c413b582cab6
|
|
4
|
+
data.tar.gz: 53019d360a4b95981c22b7f9a38392b1fcf103146258b9e3510728dfc0fafa2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6ee0262d2ea64ea404027224327333d7a4c65ec6389fbebb6718cf0e8af1298f23e6146740f061f02378debe68e7ff0ef4375609bc72e6e52ad28e87e04d4ea1
|
|
7
|
+
data.tar.gz: ad6b4dea9ef74a883467e61025af3cf7db897eca3414953e5b2a477fdba76e47a93e90b79b03d717672050a9f235ac3e1caa56495a994be64c9f6718e4e2b8ec
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.0.1
|
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.27)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
@@ -9,6 +9,7 @@ GEM
|
|
|
9
9
|
diff-lcs (1.6.0)
|
|
10
10
|
language_server-protocol (3.17.0.4)
|
|
11
11
|
logger (1.6.6)
|
|
12
|
+
ostruct (0.6.3)
|
|
12
13
|
prism (1.3.0)
|
|
13
14
|
rake (13.2.1)
|
|
14
15
|
rbs (3.8.1)
|
|
@@ -40,11 +41,13 @@ GEM
|
|
|
40
41
|
sorbet-runtime (= 0.5.11835)
|
|
41
42
|
|
|
42
43
|
PLATFORMS
|
|
44
|
+
arm64-darwin-24
|
|
43
45
|
x86_64-darwin-22
|
|
44
46
|
x86_64-darwin-23
|
|
45
47
|
x86_64-linux
|
|
46
48
|
|
|
47
49
|
DEPENDENCIES
|
|
50
|
+
ostruct
|
|
48
51
|
rake (~> 13.0)
|
|
49
52
|
rspec
|
|
50
53
|
ruby-lsp (~> 0.25.0)
|
|
@@ -52,4 +55,4 @@ DEPENDENCIES
|
|
|
52
55
|
sorbet-static-and-runtime
|
|
53
56
|
|
|
54
57
|
BUNDLED WITH
|
|
55
|
-
|
|
58
|
+
4.0.6
|
|
@@ -29,6 +29,7 @@ module RubyLsp
|
|
|
29
29
|
objects_to_add.uniq!{ |obj| obj.name }
|
|
30
30
|
objects_to_add.reject!{ |obj| IGNORE_METHOD_CALL_NAMES.include?(obj.name) }
|
|
31
31
|
objects_to_add.reject!{ |obj| parsed_doc.includes_linked_object?(obj.name) }
|
|
32
|
+
objects_to_add.reject!{ |obj| parsed_doc.includes_special_object?(obj.name) }
|
|
32
33
|
return editor.source if objects_to_add.size == 0
|
|
33
34
|
|
|
34
35
|
editor.add_links(parsed_doc, objects_to_add, current_package)
|
|
@@ -101,6 +101,10 @@ class RubyLsp::Ree::BodyObjectsParser < RubyLsp::Ree::BasicParser
|
|
|
101
101
|
target_objects += parse(node.parts)
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
+
if node.respond_to?(:exceptions) && node.exceptions
|
|
105
|
+
target_objects += parse(node.exceptions)
|
|
106
|
+
end
|
|
107
|
+
|
|
104
108
|
if node.respond_to?(:rescue_clause) && node.rescue_clause
|
|
105
109
|
target_objects += parse([node.rescue_clause])
|
|
106
110
|
end
|
|
@@ -120,6 +124,10 @@ class RubyLsp::Ree::BodyObjectsParser < RubyLsp::Ree::BasicParser
|
|
|
120
124
|
target_objects += parse([node.body])
|
|
121
125
|
end
|
|
122
126
|
end
|
|
127
|
+
|
|
128
|
+
if node.respond_to?(:arguments) && node.arguments
|
|
129
|
+
target_objects += parse_target_objects_from_args(node.arguments)
|
|
130
|
+
end
|
|
123
131
|
end
|
|
124
132
|
|
|
125
133
|
if node.respond_to?(:block) && node.block && node.block.is_a?(Prism::BlockNode)
|
|
@@ -40,6 +40,10 @@ class RubyLsp::Ree::ParsedBaseDocument
|
|
|
40
40
|
@link_nodes.map(&:linked_objects).flatten.map(&:name).include?(obj_name)
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
+
def includes_special_object?(obj_name)
|
|
44
|
+
false
|
|
45
|
+
end
|
|
46
|
+
|
|
43
47
|
def find_link_node(name)
|
|
44
48
|
@link_nodes.detect{ node_name(_1) == name }
|
|
45
49
|
end
|
|
@@ -75,13 +75,23 @@ class RubyLsp::Ree::ParsedDocumentBuilder
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
def self.build_class_document(ast, package_name)
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
if has_build_dto?(ast)
|
|
79
|
+
document = RubyLsp::Ree::ParsedEntityDocument.new(ast, package_name)
|
|
80
|
+
else
|
|
81
|
+
document = RubyLsp::Ree::ParsedClassDocument.new(ast, package_name)
|
|
82
|
+
end
|
|
83
|
+
|
|
80
84
|
document.parse_links_container_node
|
|
81
85
|
document.parse_class_includes
|
|
82
86
|
document.parse_links
|
|
83
87
|
|
|
84
88
|
document
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def self.has_build_dto?(ast)
|
|
92
|
+
class_node = ast.statements.body.detect{ |node| node.is_a?(Prism::ClassNode) }
|
|
93
|
+
return false unless class_node&.body&.body
|
|
94
|
+
class_node.body.body.any? { |node| node.is_a?(Prism::CallNode) && node.name == :build_dto }
|
|
85
95
|
end
|
|
86
96
|
|
|
87
97
|
def self.build_enum_document(ast)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class RubyLsp::Ree::ParsedEntityDocument < RubyLsp::Ree::ParsedClassDocument
|
|
2
2
|
include RubyLsp::Ree::ReeLspUtils
|
|
3
3
|
|
|
4
|
-
attr_reader :columns, :build_dto_node
|
|
4
|
+
attr_reader :columns, :build_dto_node, :collections
|
|
5
5
|
|
|
6
6
|
class EntityField
|
|
7
7
|
attr_reader :name, :location
|
|
@@ -12,12 +12,25 @@ class RubyLsp::Ree::ParsedEntityDocument < RubyLsp::Ree::ParsedClassDocument
|
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
+
class EntityCollection
|
|
16
|
+
attr_reader :name, :location
|
|
17
|
+
|
|
18
|
+
def initialize(name:, location:)
|
|
19
|
+
@name = name
|
|
20
|
+
@location = location
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
15
24
|
def initialize(ast, package_name = nil)
|
|
16
25
|
super
|
|
17
26
|
parse_class_includes
|
|
18
27
|
parse_build_dto_structure
|
|
19
28
|
end
|
|
20
29
|
|
|
30
|
+
def includes_special_object?(obj_name)
|
|
31
|
+
super || @collections.map(&:name).include?(obj_name)
|
|
32
|
+
end
|
|
33
|
+
|
|
21
34
|
private
|
|
22
35
|
|
|
23
36
|
def parse_build_dto_structure
|
|
@@ -37,5 +50,15 @@ class RubyLsp::Ree::ParsedEntityDocument < RubyLsp::Ree::ParsedClassDocument
|
|
|
37
50
|
location: _1.location
|
|
38
51
|
)
|
|
39
52
|
end
|
|
53
|
+
|
|
54
|
+
@collections = @build_dto_node.block.body.body
|
|
55
|
+
.select{ _1.name == :collection }
|
|
56
|
+
.map do
|
|
57
|
+
EntityCollection.new(
|
|
58
|
+
name: _1.arguments.arguments.first.unescaped,
|
|
59
|
+
location: _1.location
|
|
60
|
+
)
|
|
61
|
+
end
|
|
62
|
+
|
|
40
63
|
end
|
|
41
64
|
end
|
data/lib/ruby_lsp_ree/version.rb
CHANGED
data/ruby-lsp-ree.gemspec
CHANGED
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
|
12
12
|
spec.description = "A Ruby LSP addon that adds extra editor functionality for Ree applications"
|
|
13
13
|
spec.homepage = "https://github.com/glabix/ree/tree/main/ruby-lsp-ree"
|
|
14
14
|
spec.license = "MIT"
|
|
15
|
-
spec.required_ruby_version = ">= 3.
|
|
15
|
+
spec.required_ruby_version = ">= 3.4"
|
|
16
16
|
|
|
17
17
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
18
18
|
spec.metadata["source_code_uri"] = "https://github.com/glabix/ree/tree/main/ruby-lsp-ree"
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
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.27
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ruslan Gatiyatov
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies: []
|
|
12
12
|
description: A Ruby LSP addon that adds extra editor functionality for Ree applications
|
|
13
13
|
email:
|
|
@@ -93,14 +93,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
93
93
|
requirements:
|
|
94
94
|
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '3.
|
|
96
|
+
version: '3.4'
|
|
97
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
98
|
requirements:
|
|
99
99
|
- - ">="
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
101
|
version: '0'
|
|
102
102
|
requirements: []
|
|
103
|
-
rubygems_version:
|
|
103
|
+
rubygems_version: 4.0.3
|
|
104
104
|
specification_version: 4
|
|
105
105
|
summary: Ruby LSP addon for Ree framework.
|
|
106
106
|
test_files: []
|