ruby-lsp-rspec 0.1.5 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52e1c8cb1ca3e54b0f8ffc4431f2a3b9193d60e530ed2ef375768dd4dba1594c
4
- data.tar.gz: a23b9805e5ec053fa305d193e23c84cf85f4c1835206e9c1218649c007485caa
3
+ metadata.gz: b1ad8f1f88836c6c7cb084237b83d36b7b8d73edf94eebe765f0fba6bb32e1a3
4
+ data.tar.gz: 632cc2d492f00b07d966aaa53b8534721e17753b258edfaa43205a96e6bab906
5
5
  SHA512:
6
- metadata.gz: f84c03e348ed98af6c14cebb31333a5e4300e2ae90e2470ca852b4234accf9957e11e6a92e0c02fa20cbad7682f26e48ab09c8edc4482f5d324ca773d84b2c36
7
- data.tar.gz: 4fcb8195d12d181b12ad9e1b765a99c1992e8be4508fd5c050a2e191be18e88eaf6586192636ba6cc7e8c6b3bdd6e661f41aab50385920083ae3dd1282baa80e
6
+ metadata.gz: 9de20795a46221eeab3932fe830c25f019d940b757fbfd5e8dfe88bfae922e7658791747ae361ab51a6c30dbfdd30bbf97708cdb7b144414fecdb8e477c7c7c1
7
+ data.tar.gz: e2c796c111cdba975216f7856fdcbd0765e2d898cc0389f2fb2df7898a5a2d58d1a8f4a64bd98afb4de556a0df6e48e2a610d005db520993becbeaa2dd877529
data/README.md CHANGED
@@ -13,7 +13,7 @@ To install, add the following line to your application's Gemfile:
13
13
  ```ruby
14
14
  # Gemfile
15
15
  group :development do
16
- gem "ruby-lsp-rspec"
16
+ gem "ruby-lsp-rspec", require: false
17
17
  end
18
18
  ```
19
19
 
@@ -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
@@ -19,7 +19,9 @@ module RubyLsp
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
@@ -43,15 +45,28 @@ module RubyLsp
43
45
 
44
46
  sig { params(node: Prism::CallNode).void }
45
47
  def on_call_node_enter(node)
46
- message_value = node.message
47
- if message_value == "it"
48
+ case node.message
49
+ when "example", "it", "specify"
48
50
  name = generate_name(node)
49
51
  add_test_code_lens(node, name: name, kind: :example)
50
- elsif message_value == "describe" || message_value == "context"
52
+ when "context", "describe"
51
53
  return if node.receiver && node.receiver.name.to_s != "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.name.to_s != "RSpec"
68
+
69
+ @group_id_stack.pop
55
70
  end
56
71
  end
57
72
 
@@ -82,6 +97,9 @@ module RubyLsp
82
97
  line_number = node.location.start_line
83
98
  command = "#{@base_command} #{@path}:#{line_number}"
84
99
 
100
+ grouping_data = { group_id: @group_id_stack.last, kind: kind }
101
+ grouping_data[:id] = @group_id if kind == :group
102
+
85
103
  arguments = [
86
104
  @path,
87
105
  name,
@@ -99,7 +117,7 @@ module RubyLsp
99
117
  title: "Run",
100
118
  command_name: "rubyLsp.runTest",
101
119
  arguments: arguments,
102
- data: { type: "test", kind: kind },
120
+ data: { type: "test", **grouping_data },
103
121
  )
104
122
 
105
123
  @_response << create_code_lens(
@@ -107,7 +125,7 @@ module RubyLsp
107
125
  title: "Run In Terminal",
108
126
  command_name: "rubyLsp.runTestInTerminal",
109
127
  arguments: arguments,
110
- data: { type: "test_in_terminal", kind: kind },
128
+ data: { type: "test_in_terminal", **grouping_data },
111
129
  )
112
130
 
113
131
  @_response << create_code_lens(
@@ -115,7 +133,7 @@ module RubyLsp
115
133
  title: "Debug",
116
134
  command_name: "rubyLsp.debugTest",
117
135
  arguments: arguments,
118
- data: { type: "debug", kind: kind },
136
+ data: { type: "debug", **grouping_data },
119
137
  )
120
138
  end
121
139
  end
@@ -3,6 +3,6 @@
3
3
 
4
4
  module RubyLsp
5
5
  module RSpec
6
- VERSION = "0.1.5"
6
+ VERSION = "0.1.7"
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.5
4
+ version: 0.1.7
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-10-29 00:00:00.000000000 Z
11
+ date: 2023-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-lsp