solargraph 0.17.4 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/lib/solargraph.rb +16 -12
  3. data/lib/solargraph/api_map.rb +516 -588
  4. data/lib/solargraph/api_map/completion.rb +16 -0
  5. data/lib/solargraph/api_map/source_to_yard.rb +2 -2
  6. data/lib/solargraph/language_server.rb +12 -0
  7. data/lib/solargraph/language_server/completion_item_kinds.rb +31 -0
  8. data/lib/solargraph/language_server/error_codes.rb +16 -0
  9. data/lib/solargraph/language_server/host.rb +305 -0
  10. data/lib/solargraph/language_server/message.rb +70 -0
  11. data/lib/solargraph/language_server/message/base.rb +64 -0
  12. data/lib/solargraph/language_server/message/cancel_request.rb +11 -0
  13. data/lib/solargraph/language_server/message/client.rb +5 -0
  14. data/lib/solargraph/language_server/message/client/register_capability.rb +13 -0
  15. data/lib/solargraph/language_server/message/completion_item.rb +9 -0
  16. data/lib/solargraph/language_server/message/completion_item/resolve.rb +23 -0
  17. data/lib/solargraph/language_server/message/exit_notification.rb +12 -0
  18. data/lib/solargraph/language_server/message/extended.rb +15 -0
  19. data/lib/solargraph/language_server/message/extended/document.rb +18 -0
  20. data/lib/solargraph/language_server/message/extended/search.rb +18 -0
  21. data/lib/solargraph/language_server/message/initialize.rb +39 -0
  22. data/lib/solargraph/language_server/message/initialized.rb +10 -0
  23. data/lib/solargraph/language_server/message/method_not_found.rb +14 -0
  24. data/lib/solargraph/language_server/message/method_not_implemented.rb +12 -0
  25. data/lib/solargraph/language_server/message/shutdown.rb +11 -0
  26. data/lib/solargraph/language_server/message/text_document.rb +21 -0
  27. data/lib/solargraph/language_server/message/text_document/base.rb +17 -0
  28. data/lib/solargraph/language_server/message/text_document/completion.rb +69 -0
  29. data/lib/solargraph/language_server/message/text_document/definition.rb +38 -0
  30. data/lib/solargraph/language_server/message/text_document/did_change.rb +15 -0
  31. data/lib/solargraph/language_server/message/text_document/did_close.rb +12 -0
  32. data/lib/solargraph/language_server/message/text_document/did_open.rb +13 -0
  33. data/lib/solargraph/language_server/message/text_document/did_save.rb +15 -0
  34. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +31 -0
  35. data/lib/solargraph/language_server/message/text_document/formatting.rb +36 -0
  36. data/lib/solargraph/language_server/message/text_document/hover.rb +19 -0
  37. data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +29 -0
  38. data/lib/solargraph/language_server/message/text_document/signature_help.rb +23 -0
  39. data/lib/solargraph/language_server/message/workspace.rb +11 -0
  40. data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +9 -0
  41. data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +30 -0
  42. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +31 -0
  43. data/lib/solargraph/language_server/symbol_kinds.rb +32 -0
  44. data/lib/solargraph/language_server/transport.rb +7 -0
  45. data/lib/solargraph/language_server/transport/socket.rb +66 -0
  46. data/lib/solargraph/language_server/uri_helpers.rb +21 -0
  47. data/lib/solargraph/library.rb +225 -0
  48. data/lib/solargraph/live_map.rb +1 -1
  49. data/lib/solargraph/page.rb +61 -0
  50. data/lib/solargraph/pin.rb +7 -0
  51. data/lib/solargraph/pin/attribute.rb +9 -0
  52. data/lib/solargraph/pin/base.rb +76 -6
  53. data/lib/solargraph/pin/base_variable.rb +29 -7
  54. data/lib/solargraph/pin/block_parameter.rb +53 -0
  55. data/lib/solargraph/pin/constant.rb +6 -2
  56. data/lib/solargraph/pin/conversions.rb +65 -0
  57. data/lib/solargraph/pin/directed/attribute.rb +4 -0
  58. data/lib/solargraph/pin/directed/method.rb +6 -1
  59. data/lib/solargraph/pin/helper.rb +35 -0
  60. data/lib/solargraph/pin/keyword.rb +22 -0
  61. data/lib/solargraph/pin/local_variable.rb +0 -1
  62. data/lib/solargraph/pin/method.rb +55 -2
  63. data/lib/solargraph/pin/method_parameter.rb +19 -0
  64. data/lib/solargraph/pin/namespace.rb +7 -2
  65. data/lib/solargraph/pin/parameter.rb +23 -0
  66. data/lib/solargraph/pin/plugin/method.rb +3 -2
  67. data/lib/solargraph/pin/yard_object.rb +101 -0
  68. data/lib/solargraph/server.rb +82 -135
  69. data/lib/solargraph/shell.rb +20 -1
  70. data/lib/solargraph/source.rb +709 -0
  71. data/lib/solargraph/source/flawed_builder.rb +10 -0
  72. data/lib/solargraph/source/fragment.rb +319 -0
  73. data/lib/solargraph/source/position.rb +26 -0
  74. data/lib/solargraph/source/range.rb +39 -0
  75. data/lib/solargraph/suggestion.rb +29 -4
  76. data/lib/solargraph/version.rb +1 -1
  77. data/lib/solargraph/workspace.rb +105 -0
  78. data/lib/solargraph/{api_map → workspace}/config.rb +1 -1
  79. data/lib/solargraph/yard_map.rb +59 -37
  80. metadata +168 -5
  81. data/lib/solargraph/api_map/source.rb +0 -470
  82. data/lib/solargraph/code_map.rb +0 -868
@@ -1,3 +1,3 @@
1
1
  module Solargraph
2
- VERSION = '0.17.4'
2
+ VERSION = '0.18.0'
3
3
  end
@@ -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
@@ -1,7 +1,7 @@
1
1
  require 'yaml'
2
2
 
3
3
  module Solargraph
4
- class ApiMap
4
+ class Workspace
5
5
  class Config
6
6
  # @return [String]
7
7
  attr_reader :workspace
@@ -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
- meths += get_instance_methods('Class')
151
- yard = load_yardoc(y)
152
- i = yard.at("#{ns}#initialize")
153
- unless i.nil?
154
- meths.delete_if{|m| m.label == 'new'}
155
- label = "#{i}"
156
- args = get_method_args(i)
157
- meths.push Suggestion.new('new', kind: Suggestion::METHOD, docstring: i.docstring, code_object: i, detail: "#{ns}", location: object_location(i), arguments: args)
158
- end
159
- end
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
- # @todo Return method names like []?
183
- #if n.to_s.match(/^[a-z]/i) and (namespace == 'Kernel' or !m.to_s.start_with?('Kernel#')) and !m.docstring.to_s.include?(':nodoc:')
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
- #Bundler.environment.gems.to_a.each do |g|
323
- # @gem_paths[g.name] = g.full_gem_path
324
- #end
325
- process_requires
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) if spec.nil?
337
- rescue Gem::LoadError => e
338
- # @todo How to handle this?
339
- end
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
- result = YARD::Registry.yardoc_file_for_gem(spec.name)
346
- yardocs.unshift result unless result.nil? or yardocs.include?(result)
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.17.4
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-03-20 00:00:00.000000000 Z
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/config.rb
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