ruby-lsp-rails 0.4.3 → 0.4.5

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: 8f968848880db712a4b5f47a8d53b1e2f665fdd1e4373f8c63fe3b543ab794bf
4
+ data.tar.gz: 3cbbb5c9b4c6acff1980e0563f88bd6dea99b8ed2ff5c2758a4b55f379d33fb1
5
5
  SHA512:
6
- metadata.gz: bf6b0115be4ed91883daadd10f2fdf1cc531264dee8ae62f50feb72b5ee5d0caa97e83cb2092d2bc2165f1788b6e08c52dc227a2dbcbc71d9f7740d3fec431fc
7
- data.tar.gz: 65012c96ae44392d278d53a72e094fc2d75c10b864c643087186113b2490b42f483d6660f7af170a5479ae37ce533ae85af5411439bdcfe0ae8c80f66c75c35b
6
+ metadata.gz: 403921682adb7274f0075121d88b80c5ebb9c7143da462013ad4e34112ff47036605bbce67c706ba20cfa3829487203e7a4aa30ea81e36d5a73356719844833e
7
+ data.tar.gz: 03f520fb6b6bdf22bf4e73207ce90fdb46b677934dd87c8173f84992c092aea81c6d9161a701c29d0ac13a65bed20bfcdaaa3f3dfd88a88b2df54051ae165810
@@ -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,8 +50,9 @@ 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
+ @parent_stack = [response_builder] #: Array[(Requests::Support::TestItem | ResponseBuilders::TestCollection)?]
55
56
  super(response_builder, global_state, dispatcher, uri)
56
57
 
57
58
  dispatcher.register(
@@ -74,12 +75,33 @@ module RubyLsp
74
75
  framework: :rails,
75
76
  )
76
77
 
77
- @response_builder.add(test_item)
78
+ last_test_group.add(test_item)
78
79
  @response_builder.add_code_lens(test_item)
80
+ @parent_stack << test_item
81
+ else
82
+ @parent_stack << nil
79
83
  end
80
84
  end
81
85
  end
82
86
 
87
+ #: (Prism::ClassNode node) -> void
88
+ def on_class_node_leave(node)
89
+ @parent_stack.pop
90
+ super
91
+ end
92
+
93
+ #: (Prism::ModuleNode node) -> void
94
+ def on_module_node_enter(node)
95
+ @parent_stack << nil
96
+ super
97
+ end
98
+
99
+ #: (Prism::ModuleNode node) -> void
100
+ def on_module_node_leave(node)
101
+ @parent_stack.pop
102
+ super
103
+ end
104
+
83
105
  #: (Prism::CallNode node) -> void
84
106
  def on_call_node_enter(node)
85
107
  return unless node.name == :test
@@ -125,28 +147,24 @@ module RubyLsp
125
147
 
126
148
  #: (Prism::Node node, String test_name) -> void
127
149
  def add_test_item(node, test_name)
128
- test_item = group_test_item
129
- return unless test_item
150
+ parent = @parent_stack.last
151
+ return unless parent.is_a?(Requests::Support::TestItem)
130
152
 
131
153
  example_item = Requests::Support::TestItem.new(
132
- "#{test_item.id}##{test_name}",
154
+ "#{parent.id}##{test_name}",
133
155
  test_name,
134
156
  @uri,
135
157
  range_from_node(node),
136
158
  framework: :rails,
137
159
  )
138
- test_item.add(example_item)
160
+ parent.add(example_item)
139
161
  @response_builder.add_code_lens(example_item)
140
162
  end
141
163
 
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]
164
+ #: -> (Requests::Support::TestItem | ResponseBuilders::TestCollection)
165
+ def last_test_group
166
+ index = @parent_stack.rindex { |i| i } #: as !nil
167
+ @parent_stack[index] #: as Requests::Support::TestItem | ResponseBuilders::TestCollection
150
168
  end
151
169
  end
152
170
  end
@@ -3,6 +3,6 @@
3
3
 
4
4
  module RubyLsp
5
5
  module Rails
6
- VERSION = "0.4.3"
6
+ VERSION = "0.4.5"
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.5
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: []