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.
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