ruby-lsp-rails 0.4.3 → 0.4.4

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: 164043cff79bd96fb8d2db4cdc17bc38eb9ae8961a47d025ff876d1de7506527
4
- data.tar.gz: 2270c6c26b9e38896add0e73ad263800907de59779003957b5f87cb57a7051d8
3
+ metadata.gz: d7d6af6475f53648fe445527ec54ec22c5ba94df79ad5da635520f2937d8d25e
4
+ data.tar.gz: 1977cf0285fe9d29f7b4b4eeccbe8b7d57887e5aa0d2ecac64f5b3ea0519fa01
5
5
  SHA512:
6
- metadata.gz: bf6b0115be4ed91883daadd10f2fdf1cc531264dee8ae62f50feb72b5ee5d0caa97e83cb2092d2bc2165f1788b6e08c52dc227a2dbcbc71d9f7740d3fec431fc
7
- data.tar.gz: 65012c96ae44392d278d53a72e094fc2d75c10b864c643087186113b2490b42f483d6660f7af170a5479ae37ce533ae85af5411439bdcfe0ae8c80f66c75c35b
6
+ metadata.gz: 443fc7b9ba824d4ce578d503ed1269cc94ef3626a8fbdd7a1b81c2b1e8fc88e91692fb7e3210be510bbe3852efb2e97522aad13f75446f30128e51bdd211e924
7
+ data.tar.gz: 1adb0fe993a8a3cb3b8d0ad1d4ff40c5eaf550bc71126e1080b2a3cc84238bcb42631ed37f1efa69d4c8f18adb04b23d2006691e02ba39bca2aa1cf107d4a249
@@ -91,7 +91,7 @@ module RubyLsp
91
91
  def create_discover_tests_listener(response_builder, dispatcher, uri)
92
92
  return unless @global_state
93
93
 
94
- RailsTestStyle.new(@rails_runner_client, response_builder, @global_state, dispatcher, uri)
94
+ RailsTestStyle.new(response_builder, @global_state, dispatcher, uri)
95
95
  end
96
96
 
97
97
  # @override
@@ -50,10 +50,12 @@ module RubyLsp
50
50
  end
51
51
  end
52
52
 
53
- #: (RunnerClient client, ResponseBuilders::TestCollection response_builder, GlobalState global_state, Prism::Dispatcher dispatcher, URI::Generic uri) -> void
54
- def initialize(client, response_builder, global_state, dispatcher, uri)
53
+ #: (ResponseBuilders::TestCollection response_builder, GlobalState global_state, Prism::Dispatcher dispatcher, URI::Generic uri) -> void
54
+ def initialize(response_builder, global_state, dispatcher, uri)
55
55
  super(response_builder, global_state, dispatcher, uri)
56
56
 
57
+ @parent_stack = [@response_builder] #: Array[(Requests::Support::TestItem | ResponseBuilders::TestCollection)?]
58
+
57
59
  dispatcher.register(
58
60
  self,
59
61
  :on_class_node_enter,
@@ -74,12 +76,33 @@ module RubyLsp
74
76
  framework: :rails,
75
77
  )
76
78
 
77
- @response_builder.add(test_item)
79
+ last_test_group.add(test_item)
78
80
  @response_builder.add_code_lens(test_item)
81
+ @parent_stack << test_item
82
+ else
83
+ @parent_stack << nil
79
84
  end
80
85
  end
81
86
  end
82
87
 
88
+ #: (Prism::ClassNode node) -> void
89
+ def on_class_node_leave(node)
90
+ @parent_stack.pop
91
+ super
92
+ end
93
+
94
+ #: (Prism::ModuleNode node) -> void
95
+ def on_module_node_enter(node)
96
+ @parent_stack << nil
97
+ super
98
+ end
99
+
100
+ #: (Prism::ModuleNode node) -> void
101
+ def on_module_node_leave(node)
102
+ @parent_stack.pop
103
+ super
104
+ end
105
+
83
106
  #: (Prism::CallNode node) -> void
84
107
  def on_call_node_enter(node)
85
108
  return unless node.name == :test
@@ -125,28 +148,24 @@ module RubyLsp
125
148
 
126
149
  #: (Prism::Node node, String test_name) -> void
127
150
  def add_test_item(node, test_name)
128
- test_item = group_test_item
129
- return unless test_item
151
+ parent = @parent_stack.last
152
+ return unless parent.is_a?(Requests::Support::TestItem)
130
153
 
131
154
  example_item = Requests::Support::TestItem.new(
132
- "#{test_item.id}##{test_name}",
155
+ "#{parent.id}##{test_name}",
133
156
  test_name,
134
157
  @uri,
135
158
  range_from_node(node),
136
159
  framework: :rails,
137
160
  )
138
- test_item.add(example_item)
161
+ parent.add(example_item)
139
162
  @response_builder.add_code_lens(example_item)
140
163
  end
141
164
 
142
- #: -> Requests::Support::TestItem?
143
- def group_test_item
144
- current_group_name = RubyIndexer::Index.actual_nesting(@nesting, nil).join("::")
145
-
146
- # If we're finding a test method, but for the wrong framework, then the group test item will not have been
147
- # previously pushed and thus we return early and avoid adding items for a framework this listener is not
148
- # interested in
149
- @response_builder[current_group_name]
165
+ #: -> (Requests::Support::TestItem | ResponseBuilders::TestCollection)
166
+ def last_test_group
167
+ index = @parent_stack.rindex { |i| i } #: as !nil
168
+ @parent_stack[index] #: as Requests::Support::TestItem | ResponseBuilders::TestCollection
150
169
  end
151
170
  end
152
171
  end
@@ -3,6 +3,6 @@
3
3
 
4
4
  module RubyLsp
5
5
  module Rails
6
- VERSION = "0.4.3"
6
+ VERSION = "0.4.4"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  requirements: []
82
- rubygems_version: 3.6.8
82
+ rubygems_version: 3.6.9
83
83
  specification_version: 4
84
84
  summary: A Ruby LSP addon for Rails
85
85
  test_files: []