ruby-lsp-rspec 0.1.27 → 0.1.29

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: 6814ee2f5c615f8e66404a9d9643fc4de0cfbd2e75a3ae474eae6d0b7533fcdd
4
- data.tar.gz: 786fc368d6cf0fcfe9fdb6757b1cbf20cd86ad3759005dda92050e134da180d1
3
+ metadata.gz: e87facb5c6fbe20f143d2d960da63ab0cd309038e86c55520be09a08a7de9f0b
4
+ data.tar.gz: 44f530f4d3e3fa6992eb6a7b819a8d33b8a778681a5ceaef91f1ca11dcfdddbe
5
5
  SHA512:
6
- metadata.gz: f86b6f4da9ddee9386b4433d61ab58c12baec11f75a92799b2d1edb4b470714518832499e2264881fb503ffdbb93fc3ee5618735894e33eb07d398c745c3d53d
7
- data.tar.gz: b948358cefc09d83bc516eb1e66b6f90fbf416f1bc3b7f6f1a36922de696e65ee187e08b620f14a94c743e2408e2baa3c7c53957494b98ed95206bbe9d79e44f
6
+ metadata.gz: 0b468b0b9bf8399a3c2c6a9fc7d618972210fb9f6620355e1038919671a3e1c2eab2a5b105fe235f43836224cd79185669c1eac5587546cd63598b335e351e57
7
+ data.tar.gz: f7c68a6d68859c7133d1ee44b8a32973af358d135aff160941eec80e12342185102dd62534d0abbb6aec9c37c9f4fc5d5886f5ed71f99a6cbc892cd490eb7aa0
@@ -116,8 +116,11 @@ module RubyLsp
116
116
  elsif tags.include?("test_group")
117
117
  start_line = item.dig(:range, :start, :line)
118
118
  commands << "#{@rspec_command} -r #{FORMATTER_PATH} -f #{FORMATTER_NAME} #{path}:#{start_line + 1}"
119
- else
119
+ elsif tags.include?("test_case")
120
120
  full_files << "#{path}:#{item.dig(:range, :start, :line) + 1}"
121
+ else
122
+ # whole project
123
+ full_files << path
121
124
  end
122
125
 
123
126
  queue.concat(children)
@@ -24,10 +24,10 @@ module RubyLsp
24
24
  #: (Prism::CallNode) -> void
25
25
  def on_call_node_enter(node)
26
26
  case node.message
27
- when "example", "it", "specify"
27
+ when "example", "it", "specify", "scenario"
28
28
  name = generate_name(node)
29
29
  add_test_code_lens(node, name: name, kind: :example)
30
- when "context", "describe"
30
+ when "context", "describe", "feature"
31
31
  return unless valid_group?(node)
32
32
 
33
33
  name = generate_name(node)
@@ -41,7 +41,7 @@ module RubyLsp
41
41
  #: (Prism::CallNode) -> void
42
42
  def on_call_node_leave(node)
43
43
  case node.message
44
- when "context", "describe"
44
+ when "context", "describe", "feature"
45
45
  return unless valid_group?(node)
46
46
 
47
47
  @group_id_stack.pop
@@ -55,9 +55,12 @@ module RubyLsp
55
55
  puts "[#{self.class}]: #{message}"
56
56
  end
57
57
 
58
+ # A node is valid if it has a block and the receiver is RSpec (or nil)
58
59
  #: (Prism::CallNode) -> bool
59
60
  def valid_group?(node)
60
- !(node.block.nil? || (node.receiver && node.receiver&.slice != "RSpec"))
61
+ return false if node.block.nil?
62
+
63
+ node.receiver.nil? || node.receiver&.slice == "RSpec"
61
64
  end
62
65
 
63
66
  #: (Prism::CallNode) -> String
@@ -16,7 +16,7 @@ module RubyLsp
16
16
  #: (Prism::CallNode) -> void
17
17
  def on_call_node_enter(node)
18
18
  case node.message
19
- when "example", "it", "specify"
19
+ when "example", "it", "specify", "scenario"
20
20
  name = generate_name(node)
21
21
 
22
22
  return unless name
@@ -27,7 +27,7 @@ module RubyLsp
27
27
  selection_range: range_from_node(node),
28
28
  range: range_from_node(node),
29
29
  )
30
- when "context", "describe", "shared_examples", "shared_context", "shared_examples_for"
30
+ when "context", "describe", "shared_examples", "shared_context", "shared_examples_for", "feature"
31
31
  return if node.receiver && node.receiver&.slice != "RSpec"
32
32
 
33
33
  name = generate_name(node)
@@ -50,7 +50,7 @@ module RubyLsp
50
50
  #: (Prism::CallNode) -> void
51
51
  def on_call_node_leave(node)
52
52
  case node.message
53
- when "context", "describe", "shared_examples", "shared_context", "shared_examples_for"
53
+ when "context", "describe", "shared_examples", "shared_context", "shared_examples_for", "feature"
54
54
  return if node.receiver && node.receiver&.slice != "RSpec"
55
55
 
56
56
  @response_builder.pop
@@ -80,7 +80,9 @@ module RubyLsp
80
80
  def adjust_backtrace(backtrace)
81
81
  # Correct the backtrace entry so that vscode recognized it as a link to open
82
82
  parts = backtrace.split(":", 3)
83
- parts[0].sub(/^\./, "file://" + File.expand_path(".")) + ":" + parts[1] + " : " + parts[2]
83
+ return backtrace if parts.length < 2
84
+
85
+ parts[0].sub(/^\./, "file://" + File.expand_path(".")) + ":" + parts[1] + " : " + (parts[2] || "")
84
86
  end
85
87
  end
86
88
  end
@@ -26,12 +26,14 @@ module RubyLsp
26
26
 
27
27
  #: (Prism::CallNode) -> void
28
28
  def on_call_node_enter(node)
29
- return unless ["describe", "context", "it", "specify", "example"].include?(node.message)
29
+ return unless ["describe", "context", "it", "specify", "example", "feature", "scenario"].include?(node.message)
30
30
 
31
31
  case node.message
32
- when "describe", "context"
32
+ when "describe", "context", "feature"
33
+ return unless valid_group?(node)
34
+
33
35
  handle_describe(node)
34
- when "it", "specify", "example"
36
+ when "it", "specify", "example", "scenario"
35
37
  handle_example(node)
36
38
  end
37
39
  end
@@ -39,7 +41,7 @@ module RubyLsp
39
41
  #: (Prism::CallNode) -> void
40
42
  def on_call_node_leave(node)
41
43
  case node.message
42
- when "context", "describe"
44
+ when "context", "describe", "feature"
43
45
  return unless valid_group?(node)
44
46
 
45
47
  @group_stack.pop
@@ -111,14 +113,17 @@ module RubyLsp
111
113
  @response_builder.add_code_lens(test_item)
112
114
  end
113
115
 
114
- #: -> ::RubyLsp::Requests::Support::TestItem??
116
+ #: -> ::RubyLsp::Requests::Support::TestItem?
115
117
  def find_parent_test_group
116
118
  @group_stack.last
117
119
  end
118
120
 
121
+ # A node is valid if it has a block and the receiver is RSpec (or nil)
119
122
  #: (Prism::CallNode) -> bool
120
123
  def valid_group?(node)
121
- !(node.block.nil? || (node.receiver && node.receiver&.slice != "RSpec"))
124
+ return false if node.block.nil?
125
+
126
+ node.receiver.nil? || node.receiver&.slice == "RSpec"
122
127
  end
123
128
 
124
129
  #: (Prism::CallNode) -> String
@@ -3,6 +3,6 @@
3
3
 
4
4
  module RubyLsp
5
5
  module RSpec
6
- VERSION = "0.1.27"
6
+ VERSION = "0.1.29"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.27
4
+ version: 0.1.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Lo
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-07-26 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ruby-lsp
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  requirements: []
71
- rubygems_version: 3.6.3
71
+ rubygems_version: 4.0.3
72
72
  specification_version: 4
73
73
  summary: RSpec addon for ruby-lsp
74
74
  test_files: []