ruby-lsp-rails 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9abe40b8b01b5f0e7e81a3831b3da7fa57902d64f17cb0ce3a950d043d895ab
4
- data.tar.gz: 02b60ff2b040617a25fea20d715066a17092459532f56dc08a4350997e1369bc
3
+ metadata.gz: c3d8b40085e6c7ca1e23283423a0966da489180e36e4fb50415f41b1a37f5294
4
+ data.tar.gz: e98455cb80f6c386e9aa1c3fa516a29cbf0027826aed8c5af029cc1de61aaa05
5
5
  SHA512:
6
- metadata.gz: e76db2c3f6ea300e1b7a935b958a60b18a322e5039f518a0ccbc4efe2dbe7c69f65401987c0969d9fff479e3526831600a24788f477cbd19d3a2d528dc63a293
7
- data.tar.gz: 1556932fe8c67752607b15e2520c2f71c0c88c2e1a005c78c1c72b31e49a2efac9e38a9da499bb91478ea8f8386661a269c18ab300809823d80c519cf517afa1
6
+ metadata.gz: ff23cfda2194b449136438eee3475801c4568d7efa9dea08c9c60bd11f732af31c10a30b95014c7d366fbf5ad86dd7471dd3419ef4ef2808f031307d1ffc841e
7
+ data.tar.gz: 4a776b1c73b4c2683ba6db906afc3dccd2221f0dd4943a56d1a7fd1f0b4c43f92a789231d82e85aec2ba664fd505013c3c3a594a7b57d6931b35bfd433998ca0
@@ -17,8 +17,8 @@ module RubyLsp
17
17
  @client ||= T.let(RailsClient.new, T.nilable(RailsClient))
18
18
  end
19
19
 
20
- sig { override.void }
21
- def activate
20
+ sig { override.params(message_queue: Thread::Queue).void }
21
+ def activate(message_queue)
22
22
  client.check_if_server_is_running!
23
23
  end
24
24
 
@@ -30,11 +30,10 @@ module RubyLsp
30
30
  override.params(
31
31
  uri: URI::Generic,
32
32
  dispatcher: Prism::Dispatcher,
33
- message_queue: Thread::Queue,
34
33
  ).returns(T.nilable(Listener[T::Array[Interface::CodeLens]]))
35
34
  end
36
- def create_code_lens_listener(uri, dispatcher, message_queue)
37
- CodeLens.new(uri, dispatcher, message_queue)
35
+ def create_code_lens_listener(uri, dispatcher)
36
+ CodeLens.new(uri, dispatcher)
38
37
  end
39
38
 
40
39
  sig do
@@ -42,11 +41,10 @@ module RubyLsp
42
41
  nesting: T::Array[String],
43
42
  index: RubyIndexer::Index,
44
43
  dispatcher: Prism::Dispatcher,
45
- message_queue: Thread::Queue,
46
44
  ).returns(T.nilable(Listener[T.nilable(Interface::Hover)]))
47
45
  end
48
- def create_hover_listener(nesting, index, dispatcher, message_queue)
49
- Hover.new(client, nesting, index, dispatcher, message_queue)
46
+ def create_hover_listener(nesting, index, dispatcher)
47
+ Hover.new(client, nesting, index, dispatcher)
50
48
  end
51
49
 
52
50
  sig { override.returns(String) }
@@ -42,13 +42,16 @@ module RubyLsp
42
42
  sig { override.returns(ResponseType) }
43
43
  attr_reader :_response
44
44
 
45
- sig { params(uri: URI::Generic, dispatcher: Prism::Dispatcher, message_queue: Thread::Queue).void }
46
- def initialize(uri, dispatcher, message_queue)
45
+ sig { params(uri: URI::Generic, dispatcher: Prism::Dispatcher).void }
46
+ def initialize(uri, dispatcher)
47
47
  @_response = T.let([], ResponseType)
48
48
  @path = T.let(uri.to_standardized_path, T.nilable(String))
49
- dispatcher.register(self, :on_call_node_enter, :on_class_node_enter, :on_def_node_enter)
49
+ @group_id = T.let(1, Integer)
50
+ @group_id_stack = T.let([], T::Array[Integer])
50
51
 
51
- super(dispatcher, message_queue)
52
+ dispatcher.register(self, :on_call_node_enter, :on_class_node_enter, :on_def_node_enter, :on_class_node_leave)
53
+
54
+ super(dispatcher)
52
55
  end
53
56
 
54
57
  sig { params(node: Prism::CallNode).void }
@@ -62,13 +65,11 @@ module RubyLsp
62
65
  first_argument = arguments.first
63
66
 
64
67
  content = case first_argument
65
- when Prism::StringConcatNode
66
- left = first_argument.left
67
- right = first_argument.right
68
- # We only support two lines of concatenation on test names
69
- if left.is_a?(Prism::StringNode) &&
70
- right.is_a?(Prism::StringNode)
71
- left.content + right.content
68
+ when Prism::InterpolatedStringNode
69
+ parts = first_argument.parts
70
+
71
+ if parts.all? { |part| part.is_a?(Prism::StringNode) }
72
+ T.cast(parts, T::Array[Prism::StringNode]).map(&:content).join
72
73
  end
73
74
  when Prism::StringNode
74
75
  first_argument.content
@@ -99,6 +100,14 @@ module RubyLsp
99
100
  command = "#{BASE_COMMAND} #{@path}"
100
101
  add_test_code_lens(node, name: class_name, command: command, kind: :group)
101
102
  end
103
+
104
+ @group_id_stack.push(@group_id)
105
+ @group_id += 1
106
+ end
107
+
108
+ sig { params(node: Prism::ClassNode).void }
109
+ def on_class_node_leave(node)
110
+ @group_id_stack.pop
102
111
  end
103
112
 
104
113
  private
@@ -119,12 +128,15 @@ module RubyLsp
119
128
  },
120
129
  ]
121
130
 
131
+ grouping_data = { group_id: @group_id_stack.last, kind: kind }
132
+ grouping_data[:id] = @group_id if kind == :group
133
+
122
134
  @_response << create_code_lens(
123
135
  node,
124
136
  title: "Run",
125
137
  command_name: "rubyLsp.runTest",
126
138
  arguments: arguments,
127
- data: { type: "test", kind: kind },
139
+ data: { type: "test", **grouping_data },
128
140
  )
129
141
 
130
142
  @_response << create_code_lens(
@@ -132,7 +144,7 @@ module RubyLsp
132
144
  title: "Run In Terminal",
133
145
  command_name: "rubyLsp.runTestInTerminal",
134
146
  arguments: arguments,
135
- data: { type: "test_in_terminal", kind: kind },
147
+ data: { type: "test_in_terminal", **grouping_data },
136
148
  )
137
149
 
138
150
  @_response << create_code_lens(
@@ -140,7 +152,7 @@ module RubyLsp
140
152
  title: "Debug",
141
153
  command_name: "rubyLsp.debugTest",
142
154
  arguments: arguments,
143
- data: { type: "debug", kind: kind },
155
+ data: { type: "debug", **grouping_data },
144
156
  )
145
157
  end
146
158
  end
@@ -31,11 +31,10 @@ module RubyLsp
31
31
  nesting: T::Array[String],
32
32
  index: RubyIndexer::Index,
33
33
  dispatcher: Prism::Dispatcher,
34
- message_queue: Thread::Queue,
35
34
  ).void
36
35
  end
37
- def initialize(client, nesting, index, dispatcher, message_queue)
38
- super(dispatcher, message_queue)
36
+ def initialize(client, nesting, index, dispatcher)
37
+ super(dispatcher)
39
38
 
40
39
  @_response = T.let(nil, ResponseType)
41
40
  @client = client
@@ -3,6 +3,6 @@
3
3
 
4
4
  module RubyLsp
5
5
  module Rails
6
- VERSION = "0.2.7"
6
+ VERSION = "0.2.8"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,17 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-19 00:00:00.000000000 Z
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: actionpack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '6.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '6.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '6.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '6.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: railties
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
45
  - - ">="
@@ -30,20 +58,20 @@ dependencies:
30
58
  requirements:
31
59
  - - ">="
32
60
  - !ruby/object:Gem::Version
33
- version: 0.12.0
61
+ version: 0.13.0
34
62
  - - "<"
35
63
  - !ruby/object:Gem::Version
36
- version: 0.13.0
64
+ version: 0.14.0
37
65
  type: :runtime
38
66
  prerelease: false
39
67
  version_requirements: !ruby/object:Gem::Requirement
40
68
  requirements:
41
69
  - - ">="
42
70
  - !ruby/object:Gem::Version
43
- version: 0.12.0
71
+ version: 0.13.0
44
72
  - - "<"
45
73
  - !ruby/object:Gem::Version
46
- version: 0.13.0
74
+ version: 0.14.0
47
75
  - !ruby/object:Gem::Dependency
48
76
  name: sorbet-runtime
49
77
  requirement: !ruby/object:Gem::Requirement