ruby-lsp-rspec 0.1.9 → 0.1.10
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 14dfb45f32aa9c2a4041da7e65a851fb7c78928ec3fe29663092b2511c186ada
|
|
4
|
+
data.tar.gz: 382982a793771a83e0ac9da31756244eca80750b1f35d7ed146fe01c3168514b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e9404a0138a746c552480bada9b04869a2a3f2935db75a785669a0bbb9c15f5d87f25c3e11b16041f87c5bb432693afc8e960abab05b1b9efd43b040050f090a
|
|
7
|
+
data.tar.gz: 22abcfadc79d4de2aecca269cce28ec987f64ee20df4afdc94fc334d565bc524ca8afaf384cf6a50481705762653e5633b2a9eff2e3f23f56b91753702354c55
|
|
@@ -5,6 +5,7 @@ require "ruby_lsp/addon"
|
|
|
5
5
|
require "ruby_lsp/internal"
|
|
6
6
|
|
|
7
7
|
require_relative "code_lens"
|
|
8
|
+
require_relative "document_symbol"
|
|
8
9
|
|
|
9
10
|
module RubyLsp
|
|
10
11
|
module RSpec
|
|
@@ -20,14 +21,25 @@ module RubyLsp
|
|
|
20
21
|
# Creates a new CodeLens listener. This method is invoked on every CodeLens request
|
|
21
22
|
sig do
|
|
22
23
|
override.params(
|
|
24
|
+
response_builder: ResponseBuilders::CollectionResponseBuilder[Interface::CodeLens],
|
|
23
25
|
uri: URI::Generic,
|
|
24
26
|
emitter: Prism::Dispatcher,
|
|
25
|
-
).
|
|
27
|
+
).void
|
|
26
28
|
end
|
|
27
|
-
def create_code_lens_listener(uri, emitter)
|
|
29
|
+
def create_code_lens_listener(response_builder, uri, emitter)
|
|
28
30
|
return unless uri.to_standardized_path&.end_with?("_test.rb") || uri.to_standardized_path&.end_with?("_spec.rb")
|
|
29
31
|
|
|
30
|
-
CodeLens.new(uri, emitter)
|
|
32
|
+
CodeLens.new(response_builder, uri, emitter)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
sig do
|
|
36
|
+
override.params(
|
|
37
|
+
response_builder: ResponseBuilders::DocumentSymbol,
|
|
38
|
+
dispatcher: Prism::Dispatcher,
|
|
39
|
+
).void
|
|
40
|
+
end
|
|
41
|
+
def create_document_symbol_listener(response_builder, dispatcher)
|
|
42
|
+
DocumentSymbol.new(response_builder, dispatcher)
|
|
31
43
|
end
|
|
32
44
|
|
|
33
45
|
sig { override.returns(String) }
|
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
|
|
4
4
|
module RubyLsp
|
|
5
5
|
module RSpec
|
|
6
|
-
class CodeLens
|
|
6
|
+
class CodeLens
|
|
7
7
|
extend T::Sig
|
|
8
|
-
extend T::Generic
|
|
9
8
|
|
|
10
9
|
include ::RubyLsp::Requests::Support::Common
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
sig do
|
|
12
|
+
params(
|
|
13
|
+
response_builder: ResponseBuilders::CollectionResponseBuilder[Interface::CodeLens],
|
|
14
|
+
uri: URI::Generic,
|
|
15
|
+
dispatcher: Prism::Dispatcher,
|
|
16
|
+
).void
|
|
17
|
+
end
|
|
18
|
+
def initialize(response_builder, uri, dispatcher)
|
|
19
|
+
@response_builder = response_builder
|
|
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
22
|
@group_id = T.let(1, Integer)
|
|
@@ -39,8 +39,6 @@ module RubyLsp
|
|
|
39
39
|
end,
|
|
40
40
|
String,
|
|
41
41
|
)
|
|
42
|
-
|
|
43
|
-
super(dispatcher)
|
|
44
42
|
end
|
|
45
43
|
|
|
46
44
|
sig { params(node: Prism::CallNode).void }
|
|
@@ -119,7 +117,7 @@ module RubyLsp
|
|
|
119
117
|
},
|
|
120
118
|
]
|
|
121
119
|
|
|
122
|
-
@
|
|
120
|
+
@response_builder << create_code_lens(
|
|
123
121
|
node,
|
|
124
122
|
title: "Run",
|
|
125
123
|
command_name: "rubyLsp.runTest",
|
|
@@ -127,7 +125,7 @@ module RubyLsp
|
|
|
127
125
|
data: { type: "test", **grouping_data },
|
|
128
126
|
)
|
|
129
127
|
|
|
130
|
-
@
|
|
128
|
+
@response_builder << create_code_lens(
|
|
131
129
|
node,
|
|
132
130
|
title: "Run In Terminal",
|
|
133
131
|
command_name: "rubyLsp.runTestInTerminal",
|
|
@@ -135,7 +133,7 @@ module RubyLsp
|
|
|
135
133
|
data: { type: "test_in_terminal", **grouping_data },
|
|
136
134
|
)
|
|
137
135
|
|
|
138
|
-
@
|
|
136
|
+
@response_builder << create_code_lens(
|
|
139
137
|
node,
|
|
140
138
|
title: "Debug",
|
|
141
139
|
command_name: "rubyLsp.debugTest",
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# typed: strict
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module RubyLsp
|
|
5
|
+
module RSpec
|
|
6
|
+
class DocumentSymbol
|
|
7
|
+
extend T::Sig
|
|
8
|
+
|
|
9
|
+
include ::RubyLsp::Requests::Support::Common
|
|
10
|
+
|
|
11
|
+
sig do
|
|
12
|
+
params(
|
|
13
|
+
response_builder: ResponseBuilders::DocumentSymbol,
|
|
14
|
+
dispatcher: Prism::Dispatcher,
|
|
15
|
+
).void
|
|
16
|
+
end
|
|
17
|
+
def initialize(response_builder, dispatcher)
|
|
18
|
+
@response_builder = response_builder
|
|
19
|
+
|
|
20
|
+
dispatcher.register(self, :on_call_node_enter, :on_call_node_leave)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
sig { params(node: Prism::CallNode).void }
|
|
24
|
+
def on_call_node_enter(node)
|
|
25
|
+
case node.message
|
|
26
|
+
when "example", "it", "specify"
|
|
27
|
+
name = generate_name(node)
|
|
28
|
+
|
|
29
|
+
return unless name
|
|
30
|
+
|
|
31
|
+
@response_builder.last.children << RubyLsp::Interface::DocumentSymbol.new(
|
|
32
|
+
name: name,
|
|
33
|
+
kind: LanguageServer::Protocol::Constant::SymbolKind::METHOD,
|
|
34
|
+
selection_range: range_from_node(node),
|
|
35
|
+
range: range_from_node(node),
|
|
36
|
+
)
|
|
37
|
+
when "context", "describe"
|
|
38
|
+
return if node.receiver && node.receiver&.slice != "RSpec"
|
|
39
|
+
|
|
40
|
+
name = generate_name(node)
|
|
41
|
+
|
|
42
|
+
return unless name
|
|
43
|
+
|
|
44
|
+
symbol = RubyLsp::Interface::DocumentSymbol.new(
|
|
45
|
+
name: name,
|
|
46
|
+
kind: LanguageServer::Protocol::Constant::SymbolKind::MODULE,
|
|
47
|
+
selection_range: range_from_node(node),
|
|
48
|
+
range: range_from_node(node),
|
|
49
|
+
children: [],
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
@response_builder.last.children << symbol
|
|
53
|
+
@response_builder.push(symbol)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
sig { params(node: Prism::CallNode).void }
|
|
58
|
+
def on_call_node_leave(node)
|
|
59
|
+
case node.message
|
|
60
|
+
when "context", "describe"
|
|
61
|
+
return if node.receiver && node.receiver&.slice != "RSpec"
|
|
62
|
+
|
|
63
|
+
@response_builder.pop
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
sig { params(node: Prism::CallNode).returns(T.nilable(String)) }
|
|
68
|
+
def generate_name(node)
|
|
69
|
+
arguments = node.arguments&.arguments
|
|
70
|
+
|
|
71
|
+
return unless arguments
|
|
72
|
+
|
|
73
|
+
argument = arguments.first
|
|
74
|
+
|
|
75
|
+
case argument
|
|
76
|
+
when Prism::StringNode
|
|
77
|
+
argument.content.dump
|
|
78
|
+
when Prism::CallNode
|
|
79
|
+
"<#{argument.name}>"
|
|
80
|
+
when nil
|
|
81
|
+
nil
|
|
82
|
+
else
|
|
83
|
+
argument.slice
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
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.
|
|
4
|
+
version: 0.1.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stan Lo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-02-10 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.
|
|
19
|
+
version: 0.14.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.
|
|
26
|
+
version: 0.14.0
|
|
27
27
|
description: RSpec addon for ruby-lsp
|
|
28
28
|
email:
|
|
29
29
|
- stan001212@gmail.com
|
|
@@ -41,6 +41,7 @@ files:
|
|
|
41
41
|
- lib/ruby-lsp-rspec.rb
|
|
42
42
|
- lib/ruby_lsp/ruby_lsp_rspec/addon.rb
|
|
43
43
|
- lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb
|
|
44
|
+
- lib/ruby_lsp/ruby_lsp_rspec/document_symbol.rb
|
|
44
45
|
- lib/ruby_lsp_rspec/version.rb
|
|
45
46
|
homepage: https://github.com/st0012/ruby-lsp-rspec
|
|
46
47
|
licenses:
|