solargraph 0.17.4 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|