ruby-lsp-rspec 0.1.6 → 0.1.8

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: 94c72f8fcd6ded9ad2ce93a0d55b9358bd96f82d8bd33fcffe7bc0a8e871fe49
4
- data.tar.gz: d91f21f2f77423d171239cb4a030447d2ab930f95b50209c6672cdb6c9bd1601
3
+ metadata.gz: 4a2c9365c60f18ec5838ef6b616a1f19de7b28333ea6816a2a730866239baf7d
4
+ data.tar.gz: 195bbb73070d07492a8e873e0374b453e025ed496916f9df51e14e1fa808c609
5
5
  SHA512:
6
- metadata.gz: 5ba68d0ac94f0fdd1ca3c738899c7f6fb3b4bf19af6fefd2c8fd8cc8eeb85192c6a8268cd60bd7b638fbee9008cefd8bdfefe7b50d99de4bd8ecb92d726e7818
7
- data.tar.gz: 3271d7a453a7cd4623b69626a49b9de22c32d6fdd04b714fea4a8d6b0d2afc4ce4b11046169e79eff4b97f8b172b303378167c0a52b5d5a600a18c09b005f80f
6
+ metadata.gz: c77f5457e8100cf08eab07c26607f00bb85683d15d69ccb87f85f09a53000c3ffb973365106a2498ba128055e2451ef58c20f9be7267a2b0daea0e5c2e87465c
7
+ data.tar.gz: a194c571edb9bc0ae68766a2ad6b30b7e245670bd8be66ef82a8796d329edf6e7a92d021b1321ef53e8f14e1d851917414b35dbdc826c749bf41f42712f08e77
@@ -3,7 +3,6 @@
3
3
 
4
4
  require "sorbet-runtime"
5
5
  require "ruby_lsp_rspec/version"
6
- require "ruby_lsp/ruby_lsp_rspec/addon"
7
6
 
8
7
  module RubyLsp
9
8
  module RSpec
@@ -11,8 +11,8 @@ module RubyLsp
11
11
  class Addon < ::RubyLsp::Addon
12
12
  extend T::Sig
13
13
 
14
- sig { override.void }
15
- def activate; end
14
+ sig { override.params(message_queue: Thread::Queue).void }
15
+ def activate(message_queue); end
16
16
 
17
17
  sig { override.void }
18
18
  def deactivate; end
@@ -22,13 +22,12 @@ module RubyLsp
22
22
  override.params(
23
23
  uri: URI::Generic,
24
24
  emitter: Prism::Dispatcher,
25
- message_queue: Thread::Queue,
26
25
  ).returns(T.nilable(Listener[T::Array[Interface::CodeLens]]))
27
26
  end
28
- def create_code_lens_listener(uri, emitter, message_queue)
27
+ def create_code_lens_listener(uri, emitter)
29
28
  return unless uri.to_standardized_path&.end_with?("_test.rb") || uri.to_standardized_path&.end_with?("_spec.rb")
30
29
 
31
- CodeLens.new(uri, emitter, message_queue)
30
+ CodeLens.new(uri, emitter)
32
31
  end
33
32
 
34
33
  sig { override.returns(String) }
@@ -14,12 +14,14 @@ module RubyLsp
14
14
  sig { override.returns(ResponseType) }
15
15
  attr_reader :_response
16
16
 
17
- sig { params(uri: URI::Generic, dispatcher: Prism::Dispatcher, message_queue: Thread::Queue).void }
18
- def initialize(uri, dispatcher, message_queue)
17
+ sig { params(uri: URI::Generic, dispatcher: Prism::Dispatcher).void }
18
+ def initialize(uri, dispatcher)
19
19
  @_response = T.let([], ResponseType)
20
20
  # Listener is only initialized if uri.to_standardized_path is valid
21
21
  @path = T.let(T.must(uri.to_standardized_path), String)
22
- dispatcher.register(self, :on_call_node_enter)
22
+ @group_id = T.let(1, Integer)
23
+ @group_id_stack = T.let([], T::Array[Integer])
24
+ dispatcher.register(self, :on_call_node_enter, :on_call_node_leave)
23
25
 
24
26
  @base_command = T.let(
25
27
  begin
@@ -38,7 +40,7 @@ module RubyLsp
38
40
  String,
39
41
  )
40
42
 
41
- super(dispatcher, message_queue)
43
+ super(dispatcher)
42
44
  end
43
45
 
44
46
  sig { params(node: Prism::CallNode).void }
@@ -48,17 +50,32 @@ module RubyLsp
48
50
  name = generate_name(node)
49
51
  add_test_code_lens(node, name: name, kind: :example)
50
52
  when "context", "describe"
51
- return if node.receiver && node.receiver.name.to_s != "RSpec"
53
+ return if node.receiver && node.receiver&.slice != "RSpec"
52
54
 
53
55
  name = generate_name(node)
54
56
  add_test_code_lens(node, name: name, kind: :group)
57
+
58
+ @group_id_stack.push(@group_id)
59
+ @group_id += 1
60
+ end
61
+ end
62
+
63
+ sig { params(node: Prism::CallNode).void }
64
+ def on_call_node_leave(node)
65
+ case node.message
66
+ when "context", "describe"
67
+ return if node.receiver && node.receiver&.slice != "RSpec"
68
+
69
+ @group_id_stack.pop
55
70
  end
56
71
  end
57
72
 
58
73
  sig { params(node: Prism::CallNode).returns(String) }
59
74
  def generate_name(node)
60
- if node.arguments
61
- argument = node.arguments.arguments.first
75
+ arguments = node.arguments&.arguments
76
+
77
+ if arguments
78
+ argument = arguments.first
62
79
 
63
80
  case argument
64
81
  when Prism::StringNode
@@ -82,6 +99,9 @@ module RubyLsp
82
99
  line_number = node.location.start_line
83
100
  command = "#{@base_command} #{@path}:#{line_number}"
84
101
 
102
+ grouping_data = { group_id: @group_id_stack.last, kind: kind }
103
+ grouping_data[:id] = @group_id if kind == :group
104
+
85
105
  arguments = [
86
106
  @path,
87
107
  name,
@@ -99,7 +119,7 @@ module RubyLsp
99
119
  title: "Run",
100
120
  command_name: "rubyLsp.runTest",
101
121
  arguments: arguments,
102
- data: { type: "test", kind: kind },
122
+ data: { type: "test", **grouping_data },
103
123
  )
104
124
 
105
125
  @_response << create_code_lens(
@@ -107,7 +127,7 @@ module RubyLsp
107
127
  title: "Run In Terminal",
108
128
  command_name: "rubyLsp.runTestInTerminal",
109
129
  arguments: arguments,
110
- data: { type: "test_in_terminal", kind: kind },
130
+ data: { type: "test_in_terminal", **grouping_data },
111
131
  )
112
132
 
113
133
  @_response << create_code_lens(
@@ -115,7 +135,7 @@ module RubyLsp
115
135
  title: "Debug",
116
136
  command_name: "rubyLsp.debugTest",
117
137
  arguments: arguments,
118
- data: { type: "debug", kind: kind },
138
+ data: { type: "debug", **grouping_data },
119
139
  )
120
140
  end
121
141
  end
@@ -3,6 +3,6 @@
3
3
 
4
4
  module RubyLsp
5
5
  module RSpec
6
- VERSION = "0.1.6"
6
+ VERSION = "0.1.8"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Lo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-28 00:00:00.000000000 Z
11
+ date: 2023-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-lsp
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.12.0
19
+ version: 0.13.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.12.0
26
+ version: 0.13.0
27
27
  description: RSpec addon for ruby-lsp
28
28
  email:
29
29
  - stan001212@gmail.com