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 +4 -4
- data/lib/ruby_lsp/ruby_lsp_rspec/addon.rb +4 -1
- data/lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb +7 -4
- data/lib/ruby_lsp/ruby_lsp_rspec/document_symbol.rb +3 -3
- data/lib/ruby_lsp/ruby_lsp_rspec/rspec_formatter.rb +3 -1
- data/lib/ruby_lsp/ruby_lsp_rspec/test_discovery.rb +11 -6
- data/lib/ruby_lsp_rspec/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e87facb5c6fbe20f143d2d960da63ab0cd309038e86c55520be09a08a7de9f0b
|
|
4
|
+
data.tar.gz: 44f530f4d3e3fa6992eb6a7b819a8d33b8a778681a5ceaef91f1ca11dcfdddbe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
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.
|
|
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:
|
|
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:
|
|
71
|
+
rubygems_version: 4.0.3
|
|
72
72
|
specification_version: 4
|
|
73
73
|
summary: RSpec addon for ruby-lsp
|
|
74
74
|
test_files: []
|