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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70ca8698ce3d421e1e0160e74eaee948a90fcc20f284599749903797af11a8b4
4
- data.tar.gz: 32cae6d7a1d8ecc2b3b2d0aeab0f68d4a93cd554e8308a66a538d43f161422e0
3
+ metadata.gz: '069b0b51df97131fda2b2f12ae5c60b121e137264ebfed035f7598109b6736d6'
4
+ data.tar.gz: ef08e13d94031ddb243085a85f24cf53ec57d67bcd32ef2feeae44c7c6e672a7
5
5
  SHA512:
6
- metadata.gz: 6368f975531fcb06413f84470a105b6b38a7979f2f5d69ff80ad760575e3283f329c54eabb31892c0dff8039a23aaae774b61e262e8f34ef0dbe97143633f0a3
7
- data.tar.gz: 6e6746eccc7164dfe3efa683cdbef3b7628ab436e9918338bc8707663caa5a03e1598229c38797d699466515cb03b3edd35e64df5ecd9def1ccec30fccf8fe79
6
+ metadata.gz: 9f09130b66123ed6d61f9857e7da3bcc575d5b154b53b331c77dfd0a578c46b5bb92276e53778b0148500986190da677efb2afea20804732b58e687f4933ddfa
7
+ data.tar.gz: 6b33d00c07a2ec17fc3fc9c77f6efcb3fda86481b40357f32e7cb5b9f045a6928c47ec2bc0d2d0781f11de9156cc72cf881b6f06f6179d5174d0b3204387b1e5
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/ruby-lsp-rspec.svg)](https://badge.fury.io/rb/ruby-lsp-rspec)
4
4
 
5
- Ruby LSP RSpec is a [Ruby LSP](https://github.com/Shopify/ruby-lsp) extension for displaying CodeLens for RSpec tests.
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
  ![Screenshot of the code lenses](/misc/example.gif)
8
8
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  require "sorbet-runtime"
5
5
  require "ruby_lsp_rspec/version"
6
- require "ruby_lsp/ruby_lsp_rspec/extension"
6
+ require "ruby_lsp/ruby_lsp_rspec/addon"
7
7
 
8
8
  module RubyLsp
9
9
  module RSpec
@@ -1,14 +1,14 @@
1
1
  # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
- require "ruby_lsp/extension"
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 Extension < ::RubyLsp::Extension
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: EventEmitter,
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, emitter: EventEmitter, message_queue: Thread::Queue).void }
18
- def initialize(uri, emitter, message_queue)
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
- emitter.register(self, :on_command, :on_command_call, :on_call)
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(emitter, message_queue)
40
+ super(dispatcher, message_queue)
41
41
  end
42
42
 
43
- sig { params(node: SyntaxTree::CallNode).void }
44
- def on_call(node)
45
- add_group_code_lens(node)
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
- argument = node.arguments.parts.first
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
- add_group_code_lens(node)
69
- end
70
- end
71
-
72
- private
50
+ return if node.receiver && node.receiver.name.to_s != "RSpec"
73
51
 
74
- sig do
75
- params(node: T.any(
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: T.any(SyntaxTree::CallNode, SyntaxTree::CommandCall, SyntaxTree::Command)).void }
95
- def add_group_code_lens(node)
96
- return unless node.message.value == "describe" || node.message.value == "context"
97
-
98
- case node
99
- when SyntaxTree::CommandCall, SyntaxTree::CallNode
100
- return if node.receiver && node.receiver.value.value != "RSpec"
101
- end
102
-
103
- argument = case node
104
- when SyntaxTree::CallNode
105
- node.arguments.arguments.parts.first
106
- when SyntaxTree::CommandCall, SyntaxTree::Command
107
- node.arguments.parts.first
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
- sig { params(node: SyntaxTree::Node, name: String, kind: Symbol).void }
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
 
@@ -3,6 +3,6 @@
3
3
 
4
4
  module RubyLsp
5
5
  module RSpec
6
- VERSION = "0.1.2"
6
+ VERSION = "0.1.4"
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.2
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-09-18 00:00:00.000000000 Z
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.10.1
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.10.1
27
- description: RSpec extension for ruby-lsp
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 extension for ruby-lsp
70
+ summary: RSpec addon for ruby-lsp
71
71
  test_files: []