ruby-lsp-rspec 0.1.2 → 0.1.4
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/README.md +1 -1
- data/lib/ruby-lsp-rspec.rb +1 -1
- data/lib/ruby_lsp/ruby_lsp_rspec/{extension.rb → addon.rb} +3 -3
- data/lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb +31 -69
- data/lib/ruby_lsp_rspec/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '069b0b51df97131fda2b2f12ae5c60b121e137264ebfed035f7598109b6736d6'
|
4
|
+
data.tar.gz: ef08e13d94031ddb243085a85f24cf53ec57d67bcd32ef2feeae44c7c6e672a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f09130b66123ed6d61f9857e7da3bcc575d5b154b53b331c77dfd0a578c46b5bb92276e53778b0148500986190da677efb2afea20804732b58e687f4933ddfa
|
7
|
+
data.tar.gz: 6b33d00c07a2ec17fc3fc9c77f6efcb3fda86481b40357f32e7cb5b9f045a6928c47ec2bc0d2d0781f11de9156cc72cf881b6f06f6179d5174d0b3204387b1e5
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/ruby-lsp-rspec)
|
4
4
|
|
5
|
-
Ruby LSP RSpec is a [Ruby LSP](https://github.com/Shopify/ruby-lsp)
|
5
|
+
Ruby LSP RSpec is a [Ruby LSP](https://github.com/Shopify/ruby-lsp) addon for displaying CodeLens for RSpec tests.
|
6
6
|
|
7
7
|

|
8
8
|
|
data/lib/ruby-lsp-rspec.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
require "ruby_lsp/
|
4
|
+
require "ruby_lsp/addon"
|
5
5
|
require "ruby_lsp/internal"
|
6
6
|
|
7
7
|
require_relative "code_lens"
|
8
8
|
|
9
9
|
module RubyLsp
|
10
10
|
module RSpec
|
11
|
-
class
|
11
|
+
class Addon < ::RubyLsp::Addon
|
12
12
|
extend T::Sig
|
13
13
|
|
14
14
|
sig { override.void }
|
@@ -21,7 +21,7 @@ module RubyLsp
|
|
21
21
|
sig do
|
22
22
|
override.params(
|
23
23
|
uri: URI::Generic,
|
24
|
-
emitter:
|
24
|
+
emitter: Prism::Dispatcher,
|
25
25
|
message_queue: Thread::Queue,
|
26
26
|
).returns(T.nilable(Listener[T::Array[Interface::CodeLens]]))
|
27
27
|
end
|
@@ -14,11 +14,11 @@ module RubyLsp
|
|
14
14
|
sig { override.returns(ResponseType) }
|
15
15
|
attr_reader :_response
|
16
16
|
|
17
|
-
sig { params(uri: URI::Generic,
|
18
|
-
def initialize(uri,
|
17
|
+
sig { params(uri: URI::Generic, dispatcher: Prism::Dispatcher, message_queue: Thread::Queue).void }
|
18
|
+
def initialize(uri, dispatcher, message_queue)
|
19
19
|
@_response = T.let([], ResponseType)
|
20
20
|
@path = T.let(uri.to_standardized_path, T.nilable(String))
|
21
|
-
|
21
|
+
dispatcher.register(self, :on_call_node_enter)
|
22
22
|
|
23
23
|
@base_command = T.let(
|
24
24
|
begin
|
@@ -37,84 +37,46 @@ module RubyLsp
|
|
37
37
|
String,
|
38
38
|
)
|
39
39
|
|
40
|
-
super(
|
40
|
+
super(dispatcher, message_queue)
|
41
41
|
end
|
42
42
|
|
43
|
-
sig { params(node:
|
44
|
-
def
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
sig { params(node: SyntaxTree::CommandCall).void }
|
49
|
-
def on_command_call(node)
|
50
|
-
add_group_code_lens(node)
|
51
|
-
end
|
52
|
-
|
53
|
-
sig { params(node: SyntaxTree::Command).void }
|
54
|
-
def on_command(node)
|
55
|
-
message_value = node.message.value
|
43
|
+
sig { params(node: Prism::CallNode).void }
|
44
|
+
def on_call_node_enter(node)
|
45
|
+
message_value = node.message
|
56
46
|
if message_value == "it"
|
57
|
-
|
58
|
-
|
59
|
-
name = case argument
|
60
|
-
when SyntaxTree::StringLiteral
|
61
|
-
argument.parts.first.value
|
62
|
-
when SyntaxTree::VarRef
|
63
|
-
argument.value.value
|
64
|
-
end
|
65
|
-
|
47
|
+
name = generate_name(node)
|
66
48
|
add_test_code_lens(node, name: name, kind: :example)
|
67
49
|
elsif message_value == "describe" || message_value == "context"
|
68
|
-
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
private
|
50
|
+
return if node.receiver && node.receiver.name.to_s != "RSpec"
|
73
51
|
|
74
|
-
|
75
|
-
|
76
|
-
SyntaxTree::StringLiteral,
|
77
|
-
SyntaxTree::ConstPathRef,
|
78
|
-
SyntaxTree::ConstRef,
|
79
|
-
SyntaxTree::TopConstRef,
|
80
|
-
SyntaxTree::VarRef,
|
81
|
-
)).returns(T.nilable(String))
|
82
|
-
end
|
83
|
-
def get_group_name(node)
|
84
|
-
case node
|
85
|
-
when SyntaxTree::StringLiteral
|
86
|
-
node.parts.first.value
|
87
|
-
when SyntaxTree::ConstPathRef, SyntaxTree::ConstRef, SyntaxTree::TopConstRef
|
88
|
-
full_constant_name(node)
|
89
|
-
when SyntaxTree::VarRef
|
90
|
-
node.value.value
|
52
|
+
name = generate_name(node)
|
53
|
+
add_test_code_lens(node, name: name, kind: :group)
|
91
54
|
end
|
92
55
|
end
|
93
56
|
|
94
|
-
sig { params(node:
|
95
|
-
def
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
57
|
+
sig { params(node: Prism::CallNode).returns(String) }
|
58
|
+
def generate_name(node)
|
59
|
+
if node.arguments
|
60
|
+
argument = node.arguments.arguments.first
|
61
|
+
|
62
|
+
case argument
|
63
|
+
when Prism::StringNode
|
64
|
+
argument.content
|
65
|
+
when Prism::CallNode
|
66
|
+
"<#{argument.name}>"
|
67
|
+
when nil
|
68
|
+
""
|
69
|
+
else
|
70
|
+
argument.slice
|
71
|
+
end
|
72
|
+
else
|
73
|
+
"<unnamed>"
|
108
74
|
end
|
109
|
-
|
110
|
-
name = get_group_name(argument)
|
111
|
-
|
112
|
-
return unless name
|
113
|
-
|
114
|
-
add_test_code_lens(node, name: name, kind: :group)
|
115
75
|
end
|
116
76
|
|
117
|
-
|
77
|
+
private
|
78
|
+
|
79
|
+
sig { params(node: Prism::Node, name: String, kind: Symbol).void }
|
118
80
|
def add_test_code_lens(node, name:, kind:)
|
119
81
|
return unless @path
|
120
82
|
|
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.
|
4
|
+
version: 0.1.4
|
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
|
+
date: 2023-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-lsp
|
@@ -16,15 +16,15 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.12.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.
|
27
|
-
description: RSpec
|
26
|
+
version: 0.12.0
|
27
|
+
description: RSpec addon for ruby-lsp
|
28
28
|
email:
|
29
29
|
- stan001212@gmail.com
|
30
30
|
executables: []
|
@@ -39,8 +39,8 @@ files:
|
|
39
39
|
- README.md
|
40
40
|
- Rakefile
|
41
41
|
- lib/ruby-lsp-rspec.rb
|
42
|
+
- lib/ruby_lsp/ruby_lsp_rspec/addon.rb
|
42
43
|
- lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb
|
43
|
-
- lib/ruby_lsp/ruby_lsp_rspec/extension.rb
|
44
44
|
- lib/ruby_lsp_rspec/version.rb
|
45
45
|
homepage: https://github.com/st0012/ruby-lsp-rspec
|
46
46
|
licenses:
|
@@ -67,5 +67,5 @@ requirements: []
|
|
67
67
|
rubygems_version: 3.4.10
|
68
68
|
signing_key:
|
69
69
|
specification_version: 4
|
70
|
-
summary: RSpec
|
70
|
+
summary: RSpec addon for ruby-lsp
|
71
71
|
test_files: []
|