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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 149a5de21eba9546be0724fa9af412299bb013bb4f413ff0f59d8ba8676261d8
4
- data.tar.gz: bf136b0f946e1d79c43a67c29e32084b3aa90f8f4725984063789ec91c3e3404
3
+ metadata.gz: 26ce3da4d64d7bb6e48fe5691055ca3f78f3455f27c72c63ddc5691e56bddd6c
4
+ data.tar.gz: 5f5371e99f045a27c434f73acb1f3eaa7191c02e3d25a6cbbc1f6de304f798f6
5
5
  SHA512:
6
- metadata.gz: 792a7249438e7b086bc98b274077a2fb3af406558167bb0a910a4787440550da742a90d7a97a1e5bd56b8db8c15abc2848d835812c90d275a4d0169ae32b156e
7
- data.tar.gz: 31dbbcc00c85d4cfc9913e156589f112809e73d8b4d80ac27f6f9ca4d481c383c3e4adb7ed131e2c9d002bc0224dfce545761bde2c5d8fc78d1883a440abda61
6
+ metadata.gz: 8fa9a236ddb1e5bef4b79170423f79e566c98f9fceae7baae5ef8a62595d2eff5e321016da8c23f1565b864a714dbb5e9c68caf04b301fdeed03efefe65e98ea
7
+ data.tar.gz: '079e28850e8302a889f556d9844cae69d5be21cff0b0d389c68445acbf907091d96965319c5c291a0b8c964c3945c27a72835fc393c0d56974b6f05be8235a6a'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.1.25] - 2025-07-11
2
+
3
+ - links section sorting - remove new lines between groups
4
+ - fixed go-to-definition for consts from imports
5
+
1
6
  ## [0.1.24] - 2025-06-27
2
7
 
3
8
  - ree 1.2 syntax support
data/Gemfile CHANGED
@@ -9,6 +9,6 @@ gem "rake", "~> 13.0"
9
9
 
10
10
  group :test do
11
11
  gem 'rspec'
12
- gem 'ruby-lsp'
12
+ gem 'ruby-lsp', '~> 0.25.0'
13
13
  gem "sorbet-static-and-runtime"
14
14
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-lsp-ree (0.1.24)
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.23.11)
29
+ ruby-lsp (0.25.0)
30
30
  language_server-protocol (~> 3.17.0)
31
31
  prism (>= 1.2, < 2.0)
32
- rbs (>= 3, < 4)
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: ConstAdditionalTextEditsCreator.call(parsed_doc, class_name, package_name, entry)
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("\n"))
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.search_classes(node.name.to_s)
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.search_classes(link_node.imports.first)
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RubyLsp
4
4
  module Ree
5
- VERSION = "0.1.24"
5
+ VERSION = "0.1.25"
6
6
  end
7
7
  end
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.24
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-06-27 00:00:00.000000000 Z
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: