solargraph 0.17.4 → 0.18.0
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/lib/solargraph.rb +16 -12
- data/lib/solargraph/api_map.rb +516 -588
- data/lib/solargraph/api_map/completion.rb +16 -0
- data/lib/solargraph/api_map/source_to_yard.rb +2 -2
- data/lib/solargraph/language_server.rb +12 -0
- data/lib/solargraph/language_server/completion_item_kinds.rb +31 -0
- data/lib/solargraph/language_server/error_codes.rb +16 -0
- data/lib/solargraph/language_server/host.rb +305 -0
- data/lib/solargraph/language_server/message.rb +70 -0
- data/lib/solargraph/language_server/message/base.rb +64 -0
- data/lib/solargraph/language_server/message/cancel_request.rb +11 -0
- data/lib/solargraph/language_server/message/client.rb +5 -0
- data/lib/solargraph/language_server/message/client/register_capability.rb +13 -0
- data/lib/solargraph/language_server/message/completion_item.rb +9 -0
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +23 -0
- data/lib/solargraph/language_server/message/exit_notification.rb +12 -0
- data/lib/solargraph/language_server/message/extended.rb +15 -0
- data/lib/solargraph/language_server/message/extended/document.rb +18 -0
- data/lib/solargraph/language_server/message/extended/search.rb +18 -0
- data/lib/solargraph/language_server/message/initialize.rb +39 -0
- data/lib/solargraph/language_server/message/initialized.rb +10 -0
- data/lib/solargraph/language_server/message/method_not_found.rb +14 -0
- data/lib/solargraph/language_server/message/method_not_implemented.rb +12 -0
- data/lib/solargraph/language_server/message/shutdown.rb +11 -0
- data/lib/solargraph/language_server/message/text_document.rb +21 -0
- data/lib/solargraph/language_server/message/text_document/base.rb +17 -0
- data/lib/solargraph/language_server/message/text_document/completion.rb +69 -0
- data/lib/solargraph/language_server/message/text_document/definition.rb +38 -0
- data/lib/solargraph/language_server/message/text_document/did_change.rb +15 -0
- data/lib/solargraph/language_server/message/text_document/did_close.rb +12 -0
- data/lib/solargraph/language_server/message/text_document/did_open.rb +13 -0
- data/lib/solargraph/language_server/message/text_document/did_save.rb +15 -0
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +31 -0
- data/lib/solargraph/language_server/message/text_document/formatting.rb +36 -0
- data/lib/solargraph/language_server/message/text_document/hover.rb +19 -0
- data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +29 -0
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +23 -0
- data/lib/solargraph/language_server/message/workspace.rb +11 -0
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +9 -0
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +30 -0
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +31 -0
- data/lib/solargraph/language_server/symbol_kinds.rb +32 -0
- data/lib/solargraph/language_server/transport.rb +7 -0
- data/lib/solargraph/language_server/transport/socket.rb +66 -0
- data/lib/solargraph/language_server/uri_helpers.rb +21 -0
- data/lib/solargraph/library.rb +225 -0
- data/lib/solargraph/live_map.rb +1 -1
- data/lib/solargraph/page.rb +61 -0
- data/lib/solargraph/pin.rb +7 -0
- data/lib/solargraph/pin/attribute.rb +9 -0
- data/lib/solargraph/pin/base.rb +76 -6
- data/lib/solargraph/pin/base_variable.rb +29 -7
- data/lib/solargraph/pin/block_parameter.rb +53 -0
- data/lib/solargraph/pin/constant.rb +6 -2
- data/lib/solargraph/pin/conversions.rb +65 -0
- data/lib/solargraph/pin/directed/attribute.rb +4 -0
- data/lib/solargraph/pin/directed/method.rb +6 -1
- data/lib/solargraph/pin/helper.rb +35 -0
- data/lib/solargraph/pin/keyword.rb +22 -0
- data/lib/solargraph/pin/local_variable.rb +0 -1
- data/lib/solargraph/pin/method.rb +55 -2
- data/lib/solargraph/pin/method_parameter.rb +19 -0
- data/lib/solargraph/pin/namespace.rb +7 -2
- data/lib/solargraph/pin/parameter.rb +23 -0
- data/lib/solargraph/pin/plugin/method.rb +3 -2
- data/lib/solargraph/pin/yard_object.rb +101 -0
- data/lib/solargraph/server.rb +82 -135
- data/lib/solargraph/shell.rb +20 -1
- data/lib/solargraph/source.rb +709 -0
- data/lib/solargraph/source/flawed_builder.rb +10 -0
- data/lib/solargraph/source/fragment.rb +319 -0
- data/lib/solargraph/source/position.rb +26 -0
- data/lib/solargraph/source/range.rb +39 -0
- data/lib/solargraph/suggestion.rb +29 -4
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/workspace.rb +105 -0
- data/lib/solargraph/{api_map → workspace}/config.rb +1 -1
- data/lib/solargraph/yard_map.rb +59 -37
- metadata +168 -5
- data/lib/solargraph/api_map/source.rb +0 -470
- data/lib/solargraph/code_map.rb +0 -868
data/lib/solargraph/version.rb
CHANGED
@@ -0,0 +1,105 @@
|
|
1
|
+
module Solargraph
|
2
|
+
# A workspace consists of the files in a project's directory and the
|
3
|
+
# project's configuration. It provides a Source for each file to be used
|
4
|
+
# in an associated Library or ApiMap.
|
5
|
+
#
|
6
|
+
class Workspace
|
7
|
+
autoload :Config, 'solargraph/workspace/config'
|
8
|
+
|
9
|
+
# @return [String]
|
10
|
+
attr_reader :directory
|
11
|
+
|
12
|
+
def initialize directory
|
13
|
+
@directory = directory
|
14
|
+
load_sources
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Solargraph::Workspace::Config]
|
18
|
+
def config reload = false
|
19
|
+
@config = Solargraph::Workspace::Config.new(directory) if @config.nil? or reload
|
20
|
+
@config
|
21
|
+
end
|
22
|
+
|
23
|
+
# Merge the source. A merge will update the existing source for the file
|
24
|
+
# or add it to the sources if the workspace is configured to include it.
|
25
|
+
# The source is ignored if the configuration excludes it.
|
26
|
+
#
|
27
|
+
# @param source [Solargraph::Source]
|
28
|
+
# @return [Boolean] True if the source was added to the workspace
|
29
|
+
def merge source
|
30
|
+
return false unless config(true).calculated.include?(source.filename)
|
31
|
+
source_hash[source.filename] = source
|
32
|
+
true
|
33
|
+
end
|
34
|
+
|
35
|
+
# Determine whether a file would be merged into the workspace.
|
36
|
+
#
|
37
|
+
# @param filename [String]
|
38
|
+
# @return [Boolean]
|
39
|
+
def would_merge? filename
|
40
|
+
Solargraph::Workspace::Config.new(directory).calculated.include?(filename)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Remove a source from the workspace. The source will not be removed if
|
44
|
+
# its file exists and the workspace is configured to include it.
|
45
|
+
#
|
46
|
+
# @param source [Solargraph::Source]
|
47
|
+
# @return [Boolean] True if the source was removed from the workspace
|
48
|
+
def remove source
|
49
|
+
return false if config(true).calculated.include?(source.filename)
|
50
|
+
# @todo This method PROBABLY doesn't care if the file is actually here
|
51
|
+
source_hash.delete source.filename
|
52
|
+
true
|
53
|
+
end
|
54
|
+
|
55
|
+
# @return [Array<String>]
|
56
|
+
def filenames
|
57
|
+
source_hash.keys
|
58
|
+
end
|
59
|
+
|
60
|
+
# @return [Array<Solargraph::Source>]
|
61
|
+
def sources
|
62
|
+
source_hash.values
|
63
|
+
end
|
64
|
+
|
65
|
+
# @return [Boolean]
|
66
|
+
def has_source? source
|
67
|
+
source_hash.has_value?(source)
|
68
|
+
end
|
69
|
+
|
70
|
+
# @return [Boolean]
|
71
|
+
def has_file? filename
|
72
|
+
source_hash.has_key?(filename)
|
73
|
+
end
|
74
|
+
|
75
|
+
# Get a source by its filename.
|
76
|
+
#
|
77
|
+
# @return [Solargraph::Source]
|
78
|
+
def source filename
|
79
|
+
source_hash[filename]
|
80
|
+
end
|
81
|
+
|
82
|
+
def stime
|
83
|
+
return @stime if source_hash.empty?
|
84
|
+
@stime = source_hash.values.sort{|a, b| a.stime <=> b.stime}.last.stime
|
85
|
+
end
|
86
|
+
|
87
|
+
private
|
88
|
+
|
89
|
+
# @return [Hash<String, Solargraph::Source>]
|
90
|
+
def source_hash
|
91
|
+
@source_hash ||= {}
|
92
|
+
end
|
93
|
+
|
94
|
+
def load_sources
|
95
|
+
source_hash.clear
|
96
|
+
unless directory.nil?
|
97
|
+
config(true).calculated.each do |filename|
|
98
|
+
src = Solargraph::Source.load(filename)
|
99
|
+
source_hash[filename] = src
|
100
|
+
end
|
101
|
+
end
|
102
|
+
@stime = Time.now
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/lib/solargraph/yard_map.rb
CHANGED
@@ -26,6 +26,7 @@ module Solargraph
|
|
26
26
|
process_gem_paths
|
27
27
|
yardocs.push CoreDocs.yardoc_file
|
28
28
|
yardocs.uniq!
|
29
|
+
yardocs.delete_if{ |y| y.start_with? workspace.directory } unless workspace.nil? or workspace.directory.nil?
|
29
30
|
yardocs.each do |y|
|
30
31
|
load_yardoc y
|
31
32
|
YARD::Registry.all(:class, :module).each do |ns|
|
@@ -117,7 +118,8 @@ module Solargraph
|
|
117
118
|
else
|
118
119
|
next
|
119
120
|
end
|
120
|
-
result.push Suggestion.new(c.to_s.split('::').last, detail: c.to_s, kind: kind, docstring: c.docstring, return_type: return_type, location: object_location(c))
|
121
|
+
# result.push Suggestion.new(c.to_s.split('::').last, detail: c.to_s, kind: kind, docstring: c.docstring, return_type: return_type, location: object_location(c))
|
122
|
+
result.push Pin::YardObject.new(c, object_location(c))
|
121
123
|
}
|
122
124
|
cache.set_constants(namespace, scope, result)
|
123
125
|
result
|
@@ -125,6 +127,7 @@ module Solargraph
|
|
125
127
|
|
126
128
|
# @return [Array<Suggestion>]
|
127
129
|
def get_methods namespace, scope = '', visibility: [:public]
|
130
|
+
return [] if namespace == '' and scope == ''
|
128
131
|
cached = cache.get_methods(namespace, scope, visibility)
|
129
132
|
return cached unless cached.nil?
|
130
133
|
meths = []
|
@@ -140,23 +143,26 @@ module Solargraph
|
|
140
143
|
label = "#{n}"
|
141
144
|
args = get_method_args(m)
|
142
145
|
kind = (m.is_attribute? ? Suggestion::FIELD : Suggestion::METHOD)
|
143
|
-
meths.push Suggestion.new(label, insert: n, kind: kind, docstring: m.docstring, code_object: m, detail: "#{ns}", location: object_location(m), arguments: args)
|
146
|
+
# meths.push Suggestion.new(label, insert: n, kind: kind, docstring: m.docstring, code_object: m, detail: "#{ns}", location: object_location(m), arguments: args)
|
147
|
+
meths.push Pin::YardObject.new(m, object_location(m))
|
144
148
|
}
|
145
149
|
# Collect superclass methods
|
146
150
|
if ns.kind_of?(YARD::CodeObjects::ClassObject) and !ns.superclass.nil?
|
147
151
|
meths += get_methods ns.superclass.to_s, '', visibility: [:public, :protected] unless ['Object', 'BasicObject', ''].include?(ns.superclass.to_s)
|
148
152
|
end
|
149
|
-
if ns.kind_of?(YARD::CodeObjects::ClassObject) and namespace != 'Class'
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
153
|
+
# if ns.kind_of?(YARD::CodeObjects::ClassObject) and namespace != 'Class'
|
154
|
+
# meths += get_instance_methods('Class')
|
155
|
+
# yard = load_yardoc(y)
|
156
|
+
# i = yard.at("#{ns}#initialize")
|
157
|
+
# unless i.nil?
|
158
|
+
# meths.delete_if{|m| m.name == 'new'}
|
159
|
+
# label = "#{i}"
|
160
|
+
# args = get_method_args(i)
|
161
|
+
# tmp = Solargraph::Pin::YardObject.new(i, object_location(i))
|
162
|
+
# tmp.instance_variable_set(:@name, 'new')
|
163
|
+
# meths.push tmp
|
164
|
+
# end
|
165
|
+
# end
|
160
166
|
end
|
161
167
|
end
|
162
168
|
end
|
@@ -167,6 +173,7 @@ module Solargraph
|
|
167
173
|
|
168
174
|
# @return [Array<Suggestion>]
|
169
175
|
def get_instance_methods namespace, scope = '', visibility: [:public]
|
176
|
+
return [] if namespace == '' and scope == ''
|
170
177
|
cached = cache.get_instance_methods(namespace, scope, visibility)
|
171
178
|
return cached unless cached.nil?
|
172
179
|
meths = []
|
@@ -179,8 +186,8 @@ module Solargraph
|
|
179
186
|
unless ns.nil?
|
180
187
|
ns.meths(scope: :instance, visibility: visibility).each { |m|
|
181
188
|
n = m.to_s.split(/[\.#]/).last
|
182
|
-
#
|
183
|
-
|
189
|
+
# HACK: Special treatment for #initialize
|
190
|
+
next if n == 'initialize' and !visibility.include?(:private)
|
184
191
|
if (namespace == 'Kernel' or !m.to_s.start_with?('Kernel#')) and !m.docstring.to_s.include?(':nodoc:')
|
185
192
|
label = "#{n}"
|
186
193
|
args = get_method_args(m)
|
@@ -189,7 +196,8 @@ module Solargraph
|
|
189
196
|
if Solargraph::CoreFills::CUSTOM_RETURN_TYPES.has_key?(m.path)
|
190
197
|
rt = Solargraph::CoreFills::CUSTOM_RETURN_TYPES[m.path]
|
191
198
|
end
|
192
|
-
meths.push Suggestion.new(label, insert: "#{n.gsub(/=$/, ' = ')}", kind: kind, docstring: m.docstring, code_object: m, detail: m.namespace, location: object_location(m), arguments: args, return_type: rt)
|
199
|
+
# meths.push Suggestion.new(label, insert: "#{n.gsub(/=$/, ' = ')}", kind: kind, docstring: m.docstring, code_object: m, detail: m.namespace, location: object_location(m), arguments: args, return_type: rt)
|
200
|
+
meths.push Pin::YardObject.new(m, object_location(m))
|
193
201
|
end
|
194
202
|
}
|
195
203
|
if ns.kind_of?(YARD::CodeObjects::ClassObject) and namespace != 'Object'
|
@@ -200,6 +208,11 @@ module Solargraph
|
|
200
208
|
ns.instance_mixins.each do |m|
|
201
209
|
meths += get_instance_methods(m.to_s) unless m.to_s == 'Kernel'
|
202
210
|
end
|
211
|
+
# HACK: Now get the #initialize method for private requests
|
212
|
+
if visibility.include?(:private)
|
213
|
+
init = ns.meths(scope: :instance).select{|m| m.to_s.split(/[\.#]/).last == 'initialize'}.first
|
214
|
+
meths.push Pin::YardObject.new(init, object_location(init)) unless init.nil?
|
215
|
+
end
|
203
216
|
end
|
204
217
|
end
|
205
218
|
end
|
@@ -234,7 +247,8 @@ module Solargraph
|
|
234
247
|
meths = obj.meths(scope: [:instance]).keep_if{|m| m.name.to_s == parts[1]}
|
235
248
|
meths.each do |m|
|
236
249
|
args = get_method_args(m)
|
237
|
-
result.push Solargraph::Suggestion.new(m.name, kind: 'Method', detail: m.path, code_object: m, arguments: args, location: object_location(m))
|
250
|
+
# result.push Solargraph::Suggestion.new(m.name, kind: 'Method', detail: m.path, code_object: m, arguments: args, location: object_location(m))
|
251
|
+
result.push Pin::YardObject.new(m, object_location(m))
|
238
252
|
end
|
239
253
|
end
|
240
254
|
else
|
@@ -242,7 +256,8 @@ module Solargraph
|
|
242
256
|
args = []
|
243
257
|
args = get_method_args(obj) if obj.kind_of?(YARD::CodeObjects::MethodObject)
|
244
258
|
kind = kind_of_object(obj)
|
245
|
-
result.push Solargraph::Suggestion.new(obj.name, kind: kind, detail: obj.path, code_object: obj, arguments: args, location: object_location(obj))
|
259
|
+
# result.push Solargraph::Suggestion.new(obj.name, kind: kind, detail: obj.path, code_object: obj, arguments: args, location: object_location(obj))
|
260
|
+
result.push Pin::YardObject.new(obj, object_location(obj))
|
246
261
|
end
|
247
262
|
end
|
248
263
|
end
|
@@ -314,42 +329,49 @@ module Solargraph
|
|
314
329
|
end
|
315
330
|
|
316
331
|
def process_gem_paths
|
317
|
-
if !has_bundle?
|
332
|
+
if !has_bundle? or ENV['BUNDLE_GEMFILE'] == File.join(workspace.directory, 'Gemfile')
|
318
333
|
process_requires
|
319
334
|
else
|
335
|
+
processed = false
|
320
336
|
Bundler.with_clean_env do
|
321
|
-
Bundler.environment.chdir(workspace) do
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
337
|
+
Bundler.environment.chdir(workspace.directory) do
|
338
|
+
begin
|
339
|
+
Bundler.reset!
|
340
|
+
# Bundler.setup
|
341
|
+
processed = true
|
342
|
+
process_requires
|
343
|
+
rescue Exception => e
|
344
|
+
STDERR.puts "#{e.class}: #{e.message}"
|
345
|
+
end
|
326
346
|
end
|
327
347
|
end
|
348
|
+
Bundler.reset!
|
349
|
+
process_requires unless processed
|
328
350
|
end
|
329
351
|
end
|
330
352
|
|
331
353
|
def process_requires
|
354
|
+
tried = []
|
332
355
|
required.each do |r|
|
333
|
-
next if !workspace.nil? and File.exist?(File.join workspace, 'lib', "#{r}.rb")
|
334
|
-
spec = Gem::Specification.find_by_path(r)
|
335
356
|
begin
|
336
|
-
spec = Gem::Specification.find_by_name(r)
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
if spec.nil?
|
341
|
-
STDERR.puts "Required path not found (pgp): #{r}"
|
342
|
-
else
|
343
|
-
@gem_paths[spec.name] = spec.full_gem_path
|
357
|
+
spec = Gem::Specification.find_by_name(r.split('/').first)
|
358
|
+
next if spec.nil?
|
359
|
+
ver = spec.version.to_s
|
360
|
+
ver = ">= 0" if ver.empty?
|
344
361
|
add_gem_dependencies spec
|
345
|
-
|
346
|
-
|
362
|
+
yd = YARD::Registry.yardoc_file_for_gem(spec.name, ver)
|
363
|
+
@gem_paths[spec.name] = spec.full_gem_path
|
364
|
+
yardocs.unshift yd unless yd.nil? or yardocs.include?(yd)
|
365
|
+
rescue Gem::LoadError => e
|
366
|
+
# STDERR.puts "LoadError on #{r}"
|
347
367
|
end
|
348
368
|
end
|
349
369
|
end
|
350
370
|
|
351
371
|
def add_gem_dependencies spec
|
352
372
|
(spec.dependencies - spec.development_dependencies).each do |dep|
|
373
|
+
spec = Gem::Specification.find_by_name(dep.name)
|
374
|
+
@gem_paths[spec.name] = spec.full_gem_path unless spec.nil?
|
353
375
|
gy = YARD::Registry.yardoc_file_for_gem(dep.name)
|
354
376
|
if gy.nil?
|
355
377
|
STDERR.puts "Required path not found: #{dep.name}"
|
@@ -395,7 +417,7 @@ module Solargraph
|
|
395
417
|
end
|
396
418
|
|
397
419
|
def has_bundle?
|
398
|
-
!workspace.nil? and File.exist?(File.join workspace, 'Gemfile')
|
420
|
+
!workspace.nil? and !workspace.directory.nil? and File.exist?(File.join workspace.directory, 'Gemfile')
|
399
421
|
end
|
400
422
|
end
|
401
423
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solargraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -86,6 +86,114 @@ dependencies:
|
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '1.14'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: rubocop
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0.52'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.52'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: eventmachine
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.2'
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 1.2.5
|
113
|
+
type: :runtime
|
114
|
+
prerelease: false
|
115
|
+
version_requirements: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '1.2'
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 1.2.5
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
name: reverse_markdown
|
125
|
+
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '1.0'
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 1.0.5
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '1.0'
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 1.0.5
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: redcarpet
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - "~>"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '3.2'
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 3.2.3
|
153
|
+
type: :runtime
|
154
|
+
prerelease: false
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3.2'
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 3.2.3
|
163
|
+
- !ruby/object:Gem::Dependency
|
164
|
+
name: htmlentities
|
165
|
+
requirement: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - "~>"
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '4.3'
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 4.3.4
|
173
|
+
type: :runtime
|
174
|
+
prerelease: false
|
175
|
+
version_requirements: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '4.3'
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: 4.3.4
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: coderay
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - "~>"
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '1.1'
|
190
|
+
type: :runtime
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - "~>"
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '1.1'
|
89
197
|
- !ruby/object:Gem::Dependency
|
90
198
|
name: rspec
|
91
199
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,30 +284,78 @@ files:
|
|
176
284
|
- lib/solargraph.rb
|
177
285
|
- lib/solargraph/api_map.rb
|
178
286
|
- lib/solargraph/api_map/cache.rb
|
179
|
-
- lib/solargraph/api_map/
|
180
|
-
- lib/solargraph/api_map/source.rb
|
287
|
+
- lib/solargraph/api_map/completion.rb
|
181
288
|
- lib/solargraph/api_map/source_to_yard.rb
|
182
|
-
- lib/solargraph/code_map.rb
|
183
289
|
- lib/solargraph/core_fills.rb
|
290
|
+
- lib/solargraph/language_server.rb
|
291
|
+
- lib/solargraph/language_server/completion_item_kinds.rb
|
292
|
+
- lib/solargraph/language_server/error_codes.rb
|
293
|
+
- lib/solargraph/language_server/host.rb
|
294
|
+
- lib/solargraph/language_server/message.rb
|
295
|
+
- lib/solargraph/language_server/message/base.rb
|
296
|
+
- lib/solargraph/language_server/message/cancel_request.rb
|
297
|
+
- lib/solargraph/language_server/message/client.rb
|
298
|
+
- lib/solargraph/language_server/message/client/register_capability.rb
|
299
|
+
- lib/solargraph/language_server/message/completion_item.rb
|
300
|
+
- lib/solargraph/language_server/message/completion_item/resolve.rb
|
301
|
+
- lib/solargraph/language_server/message/exit_notification.rb
|
302
|
+
- lib/solargraph/language_server/message/extended.rb
|
303
|
+
- lib/solargraph/language_server/message/extended/document.rb
|
304
|
+
- lib/solargraph/language_server/message/extended/search.rb
|
305
|
+
- lib/solargraph/language_server/message/initialize.rb
|
306
|
+
- lib/solargraph/language_server/message/initialized.rb
|
307
|
+
- lib/solargraph/language_server/message/method_not_found.rb
|
308
|
+
- lib/solargraph/language_server/message/method_not_implemented.rb
|
309
|
+
- lib/solargraph/language_server/message/shutdown.rb
|
310
|
+
- lib/solargraph/language_server/message/text_document.rb
|
311
|
+
- lib/solargraph/language_server/message/text_document/base.rb
|
312
|
+
- lib/solargraph/language_server/message/text_document/completion.rb
|
313
|
+
- lib/solargraph/language_server/message/text_document/definition.rb
|
314
|
+
- lib/solargraph/language_server/message/text_document/did_change.rb
|
315
|
+
- lib/solargraph/language_server/message/text_document/did_close.rb
|
316
|
+
- lib/solargraph/language_server/message/text_document/did_open.rb
|
317
|
+
- lib/solargraph/language_server/message/text_document/did_save.rb
|
318
|
+
- lib/solargraph/language_server/message/text_document/document_symbol.rb
|
319
|
+
- lib/solargraph/language_server/message/text_document/formatting.rb
|
320
|
+
- lib/solargraph/language_server/message/text_document/hover.rb
|
321
|
+
- lib/solargraph/language_server/message/text_document/on_type_formatting.rb
|
322
|
+
- lib/solargraph/language_server/message/text_document/signature_help.rb
|
323
|
+
- lib/solargraph/language_server/message/workspace.rb
|
324
|
+
- lib/solargraph/language_server/message/workspace/did_change_configuration.rb
|
325
|
+
- lib/solargraph/language_server/message/workspace/did_change_watched_files.rb
|
326
|
+
- lib/solargraph/language_server/message/workspace/workspace_symbol.rb
|
327
|
+
- lib/solargraph/language_server/symbol_kinds.rb
|
328
|
+
- lib/solargraph/language_server/transport.rb
|
329
|
+
- lib/solargraph/language_server/transport/socket.rb
|
330
|
+
- lib/solargraph/language_server/uri_helpers.rb
|
331
|
+
- lib/solargraph/library.rb
|
184
332
|
- lib/solargraph/live_map.rb
|
185
333
|
- lib/solargraph/live_map/cache.rb
|
186
334
|
- lib/solargraph/node_methods.rb
|
335
|
+
- lib/solargraph/page.rb
|
187
336
|
- lib/solargraph/pin.rb
|
188
337
|
- lib/solargraph/pin/attribute.rb
|
189
338
|
- lib/solargraph/pin/base.rb
|
190
339
|
- lib/solargraph/pin/base_variable.rb
|
340
|
+
- lib/solargraph/pin/block_parameter.rb
|
191
341
|
- lib/solargraph/pin/class_variable.rb
|
192
342
|
- lib/solargraph/pin/constant.rb
|
343
|
+
- lib/solargraph/pin/conversions.rb
|
193
344
|
- lib/solargraph/pin/directed.rb
|
194
345
|
- lib/solargraph/pin/directed/attribute.rb
|
195
346
|
- lib/solargraph/pin/directed/method.rb
|
196
347
|
- lib/solargraph/pin/global_variable.rb
|
348
|
+
- lib/solargraph/pin/helper.rb
|
197
349
|
- lib/solargraph/pin/instance_variable.rb
|
350
|
+
- lib/solargraph/pin/keyword.rb
|
198
351
|
- lib/solargraph/pin/local_variable.rb
|
199
352
|
- lib/solargraph/pin/method.rb
|
353
|
+
- lib/solargraph/pin/method_parameter.rb
|
200
354
|
- lib/solargraph/pin/namespace.rb
|
355
|
+
- lib/solargraph/pin/parameter.rb
|
201
356
|
- lib/solargraph/pin/plugin/method.rb
|
202
357
|
- lib/solargraph/pin/symbol.rb
|
358
|
+
- lib/solargraph/pin/yard_object.rb
|
203
359
|
- lib/solargraph/plugin.rb
|
204
360
|
- lib/solargraph/plugin/base.rb
|
205
361
|
- lib/solargraph/plugin/canceler.rb
|
@@ -208,6 +364,11 @@ files:
|
|
208
364
|
- lib/solargraph/server.rb
|
209
365
|
- lib/solargraph/server_methods.rb
|
210
366
|
- lib/solargraph/shell.rb
|
367
|
+
- lib/solargraph/source.rb
|
368
|
+
- lib/solargraph/source/flawed_builder.rb
|
369
|
+
- lib/solargraph/source/fragment.rb
|
370
|
+
- lib/solargraph/source/position.rb
|
371
|
+
- lib/solargraph/source/range.rb
|
211
372
|
- lib/solargraph/suggestion.rb
|
212
373
|
- lib/solargraph/version.rb
|
213
374
|
- lib/solargraph/views/_method.erb
|
@@ -215,6 +376,8 @@ files:
|
|
215
376
|
- lib/solargraph/views/document.erb
|
216
377
|
- lib/solargraph/views/layout.erb
|
217
378
|
- lib/solargraph/views/search.erb
|
379
|
+
- lib/solargraph/workspace.rb
|
380
|
+
- lib/solargraph/workspace/config.rb
|
218
381
|
- lib/solargraph/yard_map.rb
|
219
382
|
- lib/solargraph/yard_map/cache.rb
|
220
383
|
- lib/solargraph/yard_map/core_docs.rb
|