ruby-lsp 0.9.0 → 0.9.2
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/VERSION +1 -1
- data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +1 -1
- data/lib/ruby_lsp/executor.rb +27 -31
- data/lib/ruby_lsp/requests/code_lens.rb +2 -2
- data/lib/ruby_lsp/requests/document_symbol.rb +11 -43
- data/lib/ruby_lsp/requests/on_type_formatting.rb +4 -3
- data/lib/ruby_lsp/requests.rb +1 -0
- data/lib/ruby_lsp/setup_bundler.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: edcd6c49e7546a82b2e64a023c04be808dac40695a2e5667f915f17b4f9fc08a
|
4
|
+
data.tar.gz: d8751bfd61a98e1a42d596b03d0dca55bd3441d3ec206b7ab36c6bf38f3afdcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d71efe1d5848a42076452ddc0b714926bd2fed03730ffc5d509df1dbed67524484af607cb473fb03c9bee2867eb64654afa64ca8c349a39cde09e321cb6550b8
|
7
|
+
data.tar.gz: a87eedc485b3280982c25d45c455d1a5420582ad30739cdb4268068b766b707104f37d9eba82875494f5e5eb5bb0bb6592ad2e42bfcb65cf20f65a8636d57210
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.2
|
@@ -134,7 +134,7 @@ module RubyIndexer
|
|
134
134
|
|
135
135
|
sig { returns(Regexp) }
|
136
136
|
def magic_comment_regex
|
137
|
-
/^\s*#\s*#{@excluded_magic_comments.join("|")}
|
137
|
+
@magic_comment_regex ||= T.let(/^\s*#\s*#{@excluded_magic_comments.join("|")}/, T.nilable(Regexp))
|
138
138
|
end
|
139
139
|
|
140
140
|
private
|
data/lib/ruby_lsp/executor.rb
CHANGED
@@ -204,8 +204,6 @@ module RubyLsp
|
|
204
204
|
|
205
205
|
sig { void }
|
206
206
|
def perform_initial_indexing
|
207
|
-
return unless @store.experimental_features
|
208
|
-
|
209
207
|
# The begin progress invocation happens during `initialize`, so that the notification is sent before we are
|
210
208
|
# stuck indexing files
|
211
209
|
RubyIndexer.configuration.load_config
|
@@ -581,7 +579,7 @@ module RubyLsp
|
|
581
579
|
Interface::DocumentSymbolClientCapabilities.new(
|
582
580
|
hierarchical_document_symbol_support: true,
|
583
581
|
symbol_kind: {
|
584
|
-
value_set:
|
582
|
+
value_set: (Constant::SymbolKind::FILE..Constant::SymbolKind::TYPE_PARAMETER).to_a,
|
585
583
|
},
|
586
584
|
)
|
587
585
|
end
|
@@ -643,37 +641,35 @@ module RubyLsp
|
|
643
641
|
)
|
644
642
|
end
|
645
643
|
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
],
|
667
|
-
),
|
644
|
+
# Dynamically registered capabilities
|
645
|
+
file_watching_caps = options.dig(:capabilities, :workspace, :didChangeWatchedFiles)
|
646
|
+
|
647
|
+
# Not every client supports dynamic registration or file watching
|
648
|
+
if file_watching_caps&.dig(:dynamicRegistration) && file_watching_caps&.dig(:relativePatternSupport)
|
649
|
+
@message_queue << Request.new(
|
650
|
+
message: "client/registerCapability",
|
651
|
+
params: Interface::RegistrationParams.new(
|
652
|
+
registrations: [
|
653
|
+
# Register watching Ruby files
|
654
|
+
Interface::Registration.new(
|
655
|
+
id: "workspace/didChangeWatchedFiles",
|
656
|
+
method: "workspace/didChangeWatchedFiles",
|
657
|
+
register_options: Interface::DidChangeWatchedFilesRegistrationOptions.new(
|
658
|
+
watchers: [
|
659
|
+
Interface::FileSystemWatcher.new(
|
660
|
+
glob_pattern: "**/*.rb",
|
661
|
+
kind: Constant::WatchKind::CREATE | Constant::WatchKind::CHANGE | Constant::WatchKind::DELETE,
|
662
|
+
),
|
663
|
+
],
|
668
664
|
),
|
669
|
-
|
670
|
-
|
671
|
-
)
|
672
|
-
|
673
|
-
|
674
|
-
begin_progress("indexing-progress", "Ruby LSP: indexing files")
|
665
|
+
),
|
666
|
+
],
|
667
|
+
),
|
668
|
+
)
|
675
669
|
end
|
676
670
|
|
671
|
+
begin_progress("indexing-progress", "Ruby LSP: indexing files")
|
672
|
+
|
677
673
|
Interface::InitializeResult.new(
|
678
674
|
capabilities: Interface::ServerCapabilities.new(
|
679
675
|
text_document_sync: Interface::TextDocumentSyncOptions.new(
|
@@ -65,7 +65,7 @@ module RubyLsp
|
|
65
65
|
class_name = node.constant.constant.value
|
66
66
|
@class_stack.push(class_name)
|
67
67
|
|
68
|
-
if class_name.end_with?("Test")
|
68
|
+
if @path && class_name.end_with?("Test")
|
69
69
|
add_test_code_lens(
|
70
70
|
node,
|
71
71
|
name: class_name,
|
@@ -89,7 +89,7 @@ module RubyLsp
|
|
89
89
|
visibility, _ = @visibility_stack.last
|
90
90
|
if visibility == "public"
|
91
91
|
method_name = node.name.value
|
92
|
-
if method_name.start_with?("test_")
|
92
|
+
if @path && method_name.start_with?("test_")
|
93
93
|
add_test_code_lens(
|
94
94
|
node,
|
95
95
|
name: method_name,
|
@@ -32,38 +32,6 @@ module RubyLsp
|
|
32
32
|
|
33
33
|
ResponseType = type_member { { fixed: T::Array[Interface::DocumentSymbol] } }
|
34
34
|
|
35
|
-
SYMBOL_KIND = T.let(
|
36
|
-
{
|
37
|
-
file: 1,
|
38
|
-
module: 2,
|
39
|
-
namespace: 3,
|
40
|
-
package: 4,
|
41
|
-
class: 5,
|
42
|
-
method: 6,
|
43
|
-
property: 7,
|
44
|
-
field: 8,
|
45
|
-
constructor: 9,
|
46
|
-
enum: 10,
|
47
|
-
interface: 11,
|
48
|
-
function: 12,
|
49
|
-
variable: 13,
|
50
|
-
constant: 14,
|
51
|
-
string: 15,
|
52
|
-
number: 16,
|
53
|
-
boolean: 17,
|
54
|
-
array: 18,
|
55
|
-
object: 19,
|
56
|
-
key: 20,
|
57
|
-
null: 21,
|
58
|
-
enummember: 22,
|
59
|
-
struct: 23,
|
60
|
-
event: 24,
|
61
|
-
operator: 25,
|
62
|
-
typeparameter: 26,
|
63
|
-
}.freeze,
|
64
|
-
T::Hash[Symbol, Integer],
|
65
|
-
)
|
66
|
-
|
67
35
|
ATTR_ACCESSORS = T.let(["attr_reader", "attr_writer", "attr_accessor"].freeze, T::Array[String])
|
68
36
|
|
69
37
|
class SymbolHierarchyRoot
|
@@ -111,7 +79,7 @@ module RubyLsp
|
|
111
79
|
def on_class(node)
|
112
80
|
@stack << create_document_symbol(
|
113
81
|
name: full_constant_name(node.constant),
|
114
|
-
kind:
|
82
|
+
kind: Constant::SymbolKind::CLASS,
|
115
83
|
range_node: node,
|
116
84
|
selection_range_node: node.constant,
|
117
85
|
)
|
@@ -131,7 +99,7 @@ module RubyLsp
|
|
131
99
|
|
132
100
|
create_document_symbol(
|
133
101
|
name: argument.value.value,
|
134
|
-
kind:
|
102
|
+
kind: Constant::SymbolKind::FIELD,
|
135
103
|
range_node: argument,
|
136
104
|
selection_range_node: argument.value,
|
137
105
|
)
|
@@ -142,7 +110,7 @@ module RubyLsp
|
|
142
110
|
def on_const_path_field(node)
|
143
111
|
create_document_symbol(
|
144
112
|
name: node.constant.value,
|
145
|
-
kind:
|
113
|
+
kind: Constant::SymbolKind::CONSTANT,
|
146
114
|
range_node: node,
|
147
115
|
selection_range_node: node.constant,
|
148
116
|
)
|
@@ -154,10 +122,10 @@ module RubyLsp
|
|
154
122
|
|
155
123
|
if target.is_a?(SyntaxTree::VarRef) && target.value.is_a?(SyntaxTree::Kw) && target.value.value == "self"
|
156
124
|
name = "self.#{node.name.value}"
|
157
|
-
kind =
|
125
|
+
kind = Constant::SymbolKind::METHOD
|
158
126
|
else
|
159
127
|
name = node.name.value
|
160
|
-
kind = name == "initialize" ?
|
128
|
+
kind = name == "initialize" ? Constant::SymbolKind::CONSTRUCTOR : Constant::SymbolKind::METHOD
|
161
129
|
end
|
162
130
|
|
163
131
|
symbol = create_document_symbol(
|
@@ -179,7 +147,7 @@ module RubyLsp
|
|
179
147
|
def on_module(node)
|
180
148
|
@stack << create_document_symbol(
|
181
149
|
name: full_constant_name(node.constant),
|
182
|
-
kind:
|
150
|
+
kind: Constant::SymbolKind::MODULE,
|
183
151
|
range_node: node,
|
184
152
|
selection_range_node: node.constant,
|
185
153
|
)
|
@@ -194,7 +162,7 @@ module RubyLsp
|
|
194
162
|
def on_top_const_field(node)
|
195
163
|
create_document_symbol(
|
196
164
|
name: node.constant.value,
|
197
|
-
kind:
|
165
|
+
kind: Constant::SymbolKind::CONSTANT,
|
198
166
|
range_node: node,
|
199
167
|
selection_range_node: node.constant,
|
200
168
|
)
|
@@ -205,9 +173,9 @@ module RubyLsp
|
|
205
173
|
value = node.value
|
206
174
|
kind = case value
|
207
175
|
when SyntaxTree::Const
|
208
|
-
|
176
|
+
Constant::SymbolKind::CONSTANT
|
209
177
|
when SyntaxTree::CVar, SyntaxTree::IVar
|
210
|
-
|
178
|
+
Constant::SymbolKind::VARIABLE
|
211
179
|
else
|
212
180
|
return
|
213
181
|
end
|
@@ -225,7 +193,7 @@ module RubyLsp
|
|
225
193
|
sig do
|
226
194
|
params(
|
227
195
|
name: String,
|
228
|
-
kind:
|
196
|
+
kind: Integer,
|
229
197
|
range_node: SyntaxTree::Node,
|
230
198
|
selection_range_node: SyntaxTree::Node,
|
231
199
|
).returns(Interface::DocumentSymbol)
|
@@ -233,7 +201,7 @@ module RubyLsp
|
|
233
201
|
def create_document_symbol(name:, kind:, range_node:, selection_range_node:)
|
234
202
|
symbol = Interface::DocumentSymbol.new(
|
235
203
|
name: name,
|
236
|
-
kind:
|
204
|
+
kind: kind,
|
237
205
|
range: range_from_syntax_tree_node(range_node),
|
238
206
|
selection_range: range_from_syntax_tree_node(selection_range_node),
|
239
207
|
children: [],
|
@@ -112,11 +112,12 @@ module RubyLsp
|
|
112
112
|
next_line = @lines[@position[:line] + 1]
|
113
113
|
|
114
114
|
if current_line.nil? || current_line.strip.empty?
|
115
|
-
add_edit_with_text("
|
115
|
+
add_edit_with_text("\n")
|
116
|
+
add_edit_with_text("#{indents}end")
|
116
117
|
move_cursor_to(@position[:line], @indentation + 2)
|
117
118
|
elsif next_line.nil? || next_line.strip.empty?
|
118
|
-
add_edit_with_text("#{indents}end", { line: @position[:line] + 1, character: @position[:character] })
|
119
|
-
move_cursor_to(@position[:line], @indentation +
|
119
|
+
add_edit_with_text("#{indents}end\n", { line: @position[:line] + 1, character: @position[:character] })
|
120
|
+
move_cursor_to(@position[:line] - 1, @indentation + @previous_line.size + 1)
|
120
121
|
end
|
121
122
|
end
|
122
123
|
|
data/lib/ruby_lsp/requests.rb
CHANGED
@@ -21,6 +21,7 @@ module RubyLsp
|
|
21
21
|
# - [CodeLens](rdoc-ref:RubyLsp::Requests::CodeLens)
|
22
22
|
# - [Definition](rdoc-ref:RubyLsp::Requests::Definition)
|
23
23
|
# - [ShowSyntaxTree](rdoc-ref:RubyLsp::Requests::ShowSyntaxTree)
|
24
|
+
# - [WorkspaceSymbol](rdoc-ref:RubyLsp::Requests::WorkspaceSymbol)
|
24
25
|
|
25
26
|
module Requests
|
26
27
|
autoload :BaseRequest, "ruby_lsp/requests/base_request"
|
@@ -179,7 +179,7 @@ module RubyLsp
|
|
179
179
|
|
180
180
|
if should_bundle_install?
|
181
181
|
# Install gems using the custom bundle
|
182
|
-
command << "bundle check || bundle install "
|
182
|
+
command << "(bundle check || bundle install) "
|
183
183
|
else
|
184
184
|
# If ruby-lsp or debug are not in the Gemfile, try to update them to the latest version
|
185
185
|
command << "bundle update "
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lsp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: language_server-protocol
|