solargraph 0.39.14 → 0.40.1

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -8
  3. data/CHANGELOG.md +988 -0
  4. data/Rakefile +12 -1
  5. data/SPONSORS.md +1 -0
  6. data/lib/solargraph.rb +2 -4
  7. data/lib/solargraph/api_map.rb +75 -74
  8. data/lib/solargraph/api_map/cache.rb +2 -2
  9. data/lib/solargraph/api_map/store.rb +4 -8
  10. data/lib/solargraph/{bundle.rb → bench.rb} +6 -2
  11. data/lib/solargraph/compat.rb +14 -0
  12. data/lib/solargraph/complex_type.rb +2 -2
  13. data/lib/solargraph/convention.rb +13 -4
  14. data/lib/solargraph/convention/base.rb +16 -8
  15. data/lib/solargraph/convention/gemfile.rb +2 -5
  16. data/lib/solargraph/convention/gemspec.rb +3 -6
  17. data/lib/solargraph/convention/rspec.rb +3 -6
  18. data/lib/solargraph/documentor.rb +2 -0
  19. data/lib/solargraph/environ.rb +11 -6
  20. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +6 -1
  21. data/lib/solargraph/language_server/message/text_document/definition.rb +1 -1
  22. data/lib/solargraph/language_server/message/text_document/formatting.rb +17 -19
  23. data/lib/solargraph/library.rb +8 -10
  24. data/lib/solargraph/parser/legacy/node_chainer.rb +7 -7
  25. data/lib/solargraph/parser/legacy/node_methods.rb +5 -0
  26. data/lib/solargraph/parser/legacy/node_processors/ivasgn_node.rb +1 -1
  27. data/lib/solargraph/parser/legacy/node_processors/send_node.rb +36 -23
  28. data/lib/solargraph/parser/node_processor/base.rb +3 -0
  29. data/lib/solargraph/parser/rubyvm/node_chainer.rb +9 -9
  30. data/lib/solargraph/parser/rubyvm/node_methods.rb +11 -1
  31. data/lib/solargraph/parser/rubyvm/node_processors/args_node.rb +1 -1
  32. data/lib/solargraph/parser/rubyvm/node_processors/ivasgn_node.rb +1 -1
  33. data/lib/solargraph/parser/rubyvm/node_processors/send_node.rb +40 -29
  34. data/lib/solargraph/pin.rb +0 -3
  35. data/lib/solargraph/pin/common.rb +1 -1
  36. data/lib/solargraph/pin/conversions.rb +3 -4
  37. data/lib/solargraph/pin/documenting.rb +3 -9
  38. data/lib/solargraph/pin/method.rb +141 -7
  39. data/lib/solargraph/pin/method_alias.rb +1 -1
  40. data/lib/solargraph/position.rb +2 -14
  41. data/lib/solargraph/shell.rb +1 -1
  42. data/lib/solargraph/source.rb +10 -6
  43. data/lib/solargraph/source/chain.rb +18 -5
  44. data/lib/solargraph/source_map.rb +4 -1
  45. data/lib/solargraph/source_map/clip.rb +3 -2
  46. data/lib/solargraph/source_map/mapper.rb +10 -6
  47. data/lib/solargraph/type_checker.rb +35 -39
  48. data/lib/solargraph/type_checker/param_def.rb +1 -1
  49. data/lib/solargraph/version.rb +1 -1
  50. data/lib/solargraph/yard_map.rb +40 -47
  51. data/lib/solargraph/yard_map/core_fills.rb +185 -0
  52. data/lib/solargraph/yard_map/helpers.rb +16 -0
  53. data/lib/solargraph/yard_map/mapper.rb +14 -8
  54. data/lib/solargraph/{pin/yard_pin/constant.rb → yard_map/mapper/to_constant.rb} +6 -6
  55. data/lib/solargraph/yard_map/mapper/to_method.rb +78 -0
  56. data/lib/solargraph/{pin/yard_pin/namespace.rb → yard_map/mapper/to_namespace.rb} +6 -6
  57. data/lib/solargraph/yard_map/rdoc_to_yard.rb +1 -1
  58. data/lib/solargraph/yard_map/stdlib_fills.rb +43 -0
  59. data/lib/solargraph/yard_map/to_method.rb +79 -0
  60. data/solargraph.gemspec +4 -4
  61. metadata +20 -34
  62. data/lib/solargraph/core_fills.rb +0 -160
  63. data/lib/solargraph/pin/attribute.rb +0 -49
  64. data/lib/solargraph/pin/base_method.rb +0 -141
  65. data/lib/solargraph/pin/yard_pin.rb +0 -12
  66. data/lib/solargraph/pin/yard_pin/method.rb +0 -80
  67. data/lib/solargraph/pin/yard_pin/yard_mixin.rb +0 -20
  68. data/lib/solargraph/stdlib_fills.rb +0 -40
  69. data/travis-bundler.rb +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ec8cbe63061b570e7d0fb984e1a4a15ed40c265e34fb6bd7d027f859d32a4d4
4
- data.tar.gz: 93e53c212c5c608b0ecdea34ce7771213b92c75917cf110673e5a4fa1f3f785e
3
+ metadata.gz: e02cce6c25457bb0284d221d1a9bef97730b7d7be18129cdee0dcfa1aae9c02b
4
+ data.tar.gz: 5143879ae0f89fd7ca608646cfe96fccc1e6c15afd7940fc7948dff358f286f3
5
5
  SHA512:
6
- metadata.gz: a0e7c03a9f231ebe695cf95150402a525fe0e3abfedb82dc6cd275e58e64170814dde79a24c03f02ff4f2477dacfef7a64ed71006a54e5b30abd5b27a7d7afcd
7
- data.tar.gz: b78c8f4bf6f7f0f291391fdc1e9c6a95376f51801426efdb7a17b6c0eed380056074df02321dd61a34d1afb82ccae52ba97fba383388d962ede99bd9e3e753ed
6
+ metadata.gz: 7c868fd6c6bb344f532eeee02ef06f9b80df086b51a49e408f5c04961303524f36d6b27cfae37b200a92bf0b65e15a3e68be029aad66bf912dd1aa73b1f48714
7
+ data.tar.gz: 6a9cbcd839ab51d1c71d83a30a73464f337faffda715059e91de57a3519783793574901f23d738c83a49d1116d41268c4992fa304c08d8892e394e12bb5011c8
@@ -1,12 +1,10 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1
4
- - 2.2
5
- - 2.3
6
3
  - 2.4
7
4
  - 2.5
8
5
  - 2.6
9
6
  - 2.7
7
+ - 3.0
10
8
  - jruby-head
11
9
  matrix:
12
10
  include:
@@ -17,12 +15,10 @@ matrix:
17
15
  - rvm: 2.7
18
16
  os: osx
19
17
  allow_failures:
20
- - rvm: 2.7
21
- os: osx
22
18
  - rvm: jruby-head
23
-
19
+ - rvm: 3.0
24
20
  before_install:
25
- - ruby ./travis-bundler.rb
26
- - bundle install
21
+ - gem update --system
22
+ - gem install bundler
27
23
  before_script: yard gems
28
24
  script: rspec
@@ -0,0 +1,988 @@
1
+ ## 0.40.1 - December 28, 2020
2
+ - Use temp directory for RuboCop formatting (#397)
3
+ - NodeMethods reads splatted hashes (#396)
4
+
5
+ ## 0.40.0 - December 14, 2020
6
+ - Fix alias behavior
7
+ - Consolidate method pin classes
8
+ - Consolidate YARD pins
9
+ - CheckGemVersion can use Bundler for updates
10
+ - Tempfile fills
11
+ - Support rubocop 1.0 (#381)
12
+ - Require Ruby >= 2.4.0 (#394)
13
+ - Map visibility calls with method arguments (#395)
14
+ - Switch maruku to kramdown
15
+ - Remove nokogiri dependency
16
+ - Detect internal_or_core? for strict type checking
17
+ - ApiMap#catalog merges environs for all sources in bench
18
+
19
+ ## 0.39.17 - September 28, 2020
20
+ - Handle YARD pins in alias resolution
21
+
22
+ ## 0.39.16 - September 27, 2020
23
+ - Include acts like extend inside sclass
24
+ - Improved alias resolution
25
+ - Parse args from YARD method objects
26
+ - Resolve included namespaces with conflicts
27
+ - Chains infer from multiple variable assignments
28
+ - Array and Hash core fills
29
+ - String.new core fill
30
+
31
+ ## 0.39.15 - August 18, 2020
32
+ - Backwards compatibility for typecheck subcommand
33
+ - Handle dangling colons on tag hovers
34
+ - NodeChainer handles chains with multiple blocks
35
+
36
+ ## 0.39.14 - August 13, 2020
37
+ - Fix return nodes from case statements (#350)
38
+ - Treat for loops as closures (#349)
39
+ - Array#zip core fill (#353)
40
+ - Exit with 1 if type check finds problems (#354)
41
+
42
+ ## 0.39.13 - August 3, 2020
43
+ - YardPin::Method skips invalid parameters (#345)
44
+ - Complete and define complex type tags
45
+
46
+ ## 0.39.12 - July 18, 2020
47
+ - Completion and hover on tags in comments (#247)
48
+ - Formatting change in RuboCop 0.87.0
49
+ - Use `ensure` block for File.unlink tempfile (#342)
50
+ - Fix super handling in call_nodes_from
51
+
52
+ ## 0.39.11 - July 3, 2020
53
+ - Fix line numbering in bare parse directives
54
+ - Bracket handling
55
+
56
+ ## 0.39.10 - July 1, 2020
57
+ - RDoc comments can be strings
58
+
59
+ ## 0.39.9 - June 20, 2020
60
+ - Fixed directive parsing
61
+ - Relocate pins from @!parse macros
62
+ - Return all symbols for empty queries (#328)
63
+ - Log number of files
64
+ - RdocToYard includes method line numbers
65
+
66
+ ## 0.39.8 - May 26, 2020
67
+ - File < IO reference
68
+ - Updated yardoc archive
69
+ - Chain integers with trailing periods
70
+ - Map autoload paths
71
+ - Set Encoding.default_external
72
+ - Faster store index
73
+ - ApiMap#catalog rebinds blocks
74
+ - Fixed binder inheritance
75
+ - Remove ApiMap mutex
76
+ - Set overrides
77
+
78
+ ## 0.39.7 - May 4, 2020
79
+ - RubyVM convert_hash node check
80
+ - File URI space encoding bug
81
+
82
+ ## 0.39.6 - May 3, 2020
83
+ - Workspace evaluates gem spec in toplevel binding (#316)
84
+ - Rescue StandardError instead of Exception
85
+ - Correct method parameter order
86
+ - Gracefully handle misunderstood macros (#323)
87
+
88
+ ## 0.39.5 - May 2, 2020
89
+ - Nil check in name_type_tag template
90
+ - Update obsolete method calls for Ruby 2.7
91
+ - YardMap rejects external pins
92
+ - RubyVM mapper handles Bundler.require calls
93
+ - RDocToYard clears serialized cache
94
+ - Workspace evaluates gem specs without binding
95
+ - Documentor clears gem caches
96
+
97
+ ## 0.39.4 - April 30, 2020
98
+ - RDocToYard update and spec (#315)
99
+ - Map function calls to visibility methods
100
+ - Cache source code line arrays
101
+ - Fix RuboCop errors
102
+
103
+ ## 0.39.3 - April 28, 2020
104
+ - Mapper handles private_class_method without arguments (#312)
105
+ - Fix pin positions from YARD directives (#313)
106
+ - Rescue errors from pin caches
107
+
108
+ ## 0.39.2 - April 26, 2020
109
+ - Fix legacy super/zsuper node processing
110
+ - Map parameters to updated module functions
111
+ - Include mass assignment in call nodes
112
+
113
+ ## 0.39.1 - April 26, 2020
114
+ - Additional return node checks from case statements in legacy
115
+ - Check super call arity
116
+
117
+ ## 0.39.0 - April 26, 2020
118
+ - RubyVM parser for Ruby 2.6+
119
+ - Lambda node processor
120
+ - Faster CommentRipper
121
+ - Implement TypeChecker levels
122
+ - Type inference improvements
123
+ - Prefer @return to @type in constant tags
124
+ - Support @abstract tags
125
+ - Improved recipient node detection
126
+ - Host#diagnose rescues FileNotFoundError
127
+ - Fuzzier inheritance checks
128
+ - Refactored uri queue synchronization (#289)
129
+ - Constant resolution finds nearest names (#287)
130
+ - Arity checks
131
+ - Additional CoreFills for numeric types and operators
132
+ - Chains track splat arguments
133
+ - Support case statements in type inference
134
+ - Support prepended modules (#302)
135
+ - TypeChecker validates constants
136
+ - Rescue ENOENT errors when loading sources (#308)
137
+ - Formatting message handles empty files
138
+ - Avoid lazy initialization of Mutex
139
+ - ApiMap inner queries use Set instead of Array
140
+
141
+ ## 0.38.6 - March 22, 2020
142
+ - Ignore Bundler warnings when parsing JSON (#273)
143
+ - Chain inference stack uses pin identities (#293)
144
+ - Fix super_and_sub? name collisions (#288, #290)
145
+ - Fix various Bundler and Travis bugs
146
+
147
+ ## 0.38.5 - January 26, 2020
148
+ - Namespace conflict resolution
149
+ - Pin context uses closure context in class scope
150
+ - Format file without extension (#266)
151
+
152
+ ## 0.38.4 - January 21, 2020
153
+ - Literal link generates ComplexType
154
+ - Remove pin cache from chain inference
155
+ - Avoid duplicates in combined LSP documentation
156
+ - YardMap skips workspace gems
157
+
158
+ ## 0.38.3 - January 19, 2020
159
+ - Refactored YardMap require processing
160
+ - Object/BasicObject inheritance handling in method detection
161
+ - StdlibFills and YardMap integration (#226)
162
+ - Include scope gates in local variable detection
163
+ - Reduce namespace pins in YARD pin generation
164
+ - Support multiple return tags in method return types
165
+ - File core fills
166
+ - Benchmark stdlib fill
167
+ - Redorder methods to include core after other classes
168
+ - Method type inference uses chains and includes block nodes (#264)
169
+ - Infer from overloaded methods with local variable arguments
170
+ - Add Array#map! to core fills
171
+
172
+ ## 0.38.2 - January 9, 2020
173
+ - Include visibility in method documentation
174
+ - Bundler >= 2.1 uses with_unbundled_env (#252)
175
+ - Remove irb from dependencies (#258)
176
+ - Update embedded docs (#259)
177
+ - Object#inspect core fill
178
+ - ApiMap finds constants in superclasses
179
+ - STDIO constant variables
180
+ - Filter duplicate pins in completionItem/resolve
181
+ - Travis updates
182
+
183
+ ## 0.38.1 - January 2, 2020
184
+ - Hash#[]= type checking
185
+ - Experimental @param_typle tag
186
+ - TypeChecker argument checks inherit param tags from superclasses
187
+ - Miscellaneous core overrides
188
+ - Boolean literals and type checking
189
+ - Update Thor (#254)
190
+ - CI against Ruby 2.7 (#253)
191
+
192
+ ## 0.38.0 - November 22, 2019
193
+ - Drop htmlentities dependency (#224)
194
+ - Blank lines do not affect indentation in documentation
195
+ - Use backticks for code blocks in generated markdown
196
+ - Register additional HTML tags in ReverseMarkdown
197
+ - Guard against nil pin comments (#231)
198
+ - Speedup Solargraph::ApiMap::Store#fqns_pin (#232)
199
+ - RuboCop formatting integration through API (#239)
200
+ - Qualify literal value types (#240)
201
+ - Switch back to Maruku for documentation generation
202
+ - Refactored dependencies to improve startup time
203
+ - Test if ns is nil to avoid exception (#245)
204
+ - Nil check when parsing comments (#243)
205
+
206
+ ## 0.37.2 - August 25, 2019
207
+ - Generate documentation without conversions
208
+
209
+ ## 0.37.1 - August 19, 2019
210
+ - No escape in completion item detail
211
+
212
+ ## 0.37.0 - August 19, 2019
213
+ - Replace Maruku with YARD RDocMarkup
214
+ - Refactored Cursor#recipient
215
+ - Remove HTML entity escaping
216
+ - Messages check enablePages for links
217
+ - Escape method for templates
218
+ - Escape type tags with backslashes
219
+ - Updated gem dependencies
220
+
221
+ ## 0.36.0 - August 12, 2019
222
+ - Replace redcarpet with maruku
223
+ - Check for nil nodes in variable probes (#221)
224
+
225
+ ## 0.35.2 - August 6, 2019
226
+ - Chains resolve block variable types.
227
+
228
+ ## 0.35.1 - July 29, 2019
229
+ - Infer variable types from assignments with unparenthesized arguments
230
+ - (#212)
231
+
232
+ ## 0.35.0 - July 19, 2019
233
+ - Track blocks in chain links
234
+ - Array overloads
235
+ - Fix NoMethodError for empty overload tags
236
+ - TypeChecker validates block args
237
+ - Object#to_s override
238
+ - Pin::BaseVariable uses clips for probles
239
+ - Add ability to read from a global config file (#210)
240
+ - SourceChainer falls back to fixed phrases in repaired sources
241
+ - Find return nodes in blocks
242
+
243
+ ## 0.34.3 - July 14, 2019
244
+ - Refactor to reduce frequent allocations
245
+ - Only send renameOptions to clients with prepareSupport (#207)
246
+ - Add pin locations to scans
247
+ - TypeChecker finds params for hash args by name
248
+ - Drop empty register/unregister events (#209)
249
+ - Pin::Parameter type inference
250
+ - Detect yielded blocks in calls
251
+ - SourceMap::Mapper maps overrides
252
+
253
+ ## 0.34.2 - July 3, 2019
254
+ - Documentor uses an external process to collect specs
255
+ - Bundle subcommand passes rebuild option to Documentor
256
+ - Refactored bundle dependency reads
257
+ - Fixed Travis issues
258
+
259
+ ## 0.34.1 - June 26, 2019
260
+ - Refactored bundler/require handling
261
+ - Fix clip completion from repaired sources
262
+ - Bundler issues in Travis
263
+
264
+ ## 0.34.0 - June 25, 2019
265
+ - Keyword argument names in autocomplete
266
+ - `solargraph bundle` and related cache commands
267
+ - RDoc to YARD conversion
268
+ - More TypeChecker validation
269
+ - Environs and Conventions
270
+ - Core overrides
271
+ - `@overload` tag support
272
+ - Handle splats in overloads
273
+ - Scope gates
274
+ - Type Class/Module reduction hack
275
+ - Duck type checking
276
+ - frozen_string_literal
277
+ - Faster YardMap loading
278
+
279
+ ## 0.33.2 - June 20, 2019
280
+ - Fixed resolution of `self` keyword
281
+ - Chain inference depth limits
282
+ - Source#references skips nodes without the requested symbol
283
+ - Refactored Library without `checkout` method
284
+ - Parameter merges require same closures
285
+ - Completion item descriptions contain unique links
286
+
287
+ ## 0.33.1 - June 18, 2019
288
+ - Ignore attribute directives without names (castwide/vscode-solargraph#124)
289
+ - Chain and/or/begin/kwbegin nodes
290
+ - TypeCheck diagnostics run on workspace files only by default
291
+ - Mapper updates directive positions (#176)
292
+ - Track pins in TypeChecker problems.
293
+
294
+ ## 0.33.0 - June 18, 2019
295
+ - Deprecated plugin architecture
296
+ - Closure pins for enhanced context and scope detection
297
+ - Block resolution
298
+ - Major Pin refactoring
299
+ - Single parameter pin for blocks and methods
300
+ - Major NodeProcessor refactoring
301
+ - Block rebinding
302
+ - Resolve method aliases
303
+ - Namespace scope gates (WIP)
304
+ - Improved ApiMap::Store indexing
305
+ - ApiMap block recipient cache
306
+ - Refactored pin and local mapping
307
+ - Host synchronization fixes
308
+ - Rebind instance_eval, class_eval, and module_eval blocks
309
+ - Improved string detection
310
+ - Use @param tags for parameter pin documentation
311
+ - Go To Definition works on require paths (castwide/vscode-solagraph#104)
312
+ - Mapper processes singleton method directives
313
+ - Resolve self return types based on current context
314
+ - Exclude inner node comments from documentation
315
+ - Infer hash element types from value parameters
316
+ - Pin::BaseMethod typifies from super methods
317
+ - Ignore FileNotFoundError in textDocument/signatureHelp
318
+ - Class#new and Class.new return types
319
+ - Chain::Call resolves `self` return types
320
+ - Deprecated Pin::Method#infer method
321
+ - Pin::Method#probe returns unique tags
322
+ - Errant dstr detection
323
+ - Source does not detect string? at end of interpolation
324
+ - String detection in unsynchronized sources
325
+ - Reduced node comparisons in Source#string_at?
326
+ - Superclass qualification for instance variables
327
+ - Pin::Attribute#probe infers types from instance variables
328
+ - First version of TypeChecker and its reporter
329
+ - Strict type checking
330
+ - Source::Chain::Call does not typify/probe/proxy pins
331
+ - Probe for detail in hover and resolve
332
+ - JIT pin probes
333
+ - Command-line typecheck
334
+ - Clip#complete skips unparsed sources
335
+ - Check parameter types for super_and_sub?
336
+ - Object#! CoreFill.
337
+ - `scan` subcommand
338
+ - Detect class variables by scope gates
339
+ - Move METHODS_RETURNING_SELF to CUSTOM_RETURN_TYPES
340
+ - Host::Dispatch catalogs attachments to implicit and generic libraries (#139)
341
+ - Preliminary support for `@overload` tags
342
+ - `self` resolution in ComplexTypes
343
+
344
+ ## 0.32.4 - May 27, 2019
345
+ - Backport update
346
+
347
+ ## 0.32.3 - May 14, 2019
348
+ - - ApiMap#get_namespace_type selects namespace pins (#183)
349
+ - - Fixed type inference for Class.new and Class#new exceptions
350
+
351
+ ## 0.32.2 - May 6, 2019
352
+ - - Gemspec changes
353
+ - - Recommend LanguageClient-neovim instead of vim-solargraph (#180)
354
+ - - Added Eclipse plugin information (#181)
355
+ - - Refactored cataloging
356
+ - - workspace/didChangeWatchedFiles catalogs libraries (#139)
357
+
358
+ ## 0.32.1 - April 7, 2019
359
+ - completionItem/resolve returns nil for empty documentation
360
+
361
+ ## 0.32.0 - April 4, 2019
362
+ - Add implementation of textDocument/prepareRename (#158)
363
+ - Update to Backport 1.0
364
+ - Source handles comments that start with multiple hashes
365
+ - Add Ruby 2.6.1 to CI
366
+ - Updated JRuby version support
367
+ - Infer return types from top-level references
368
+ - SourceChainer handles ! and ? outside of method suffixes (#166)
369
+ - CompletionItem uses MarkupContent for documentation (#173)
370
+ - Add Object#tap to core documentation. (#172)
371
+ - Source and Mapper handle invalid UTF-8 byte sequences (#33)
372
+ - Exceptions while mapping emit warning messages
373
+ - Process private_class_method for attributes (#171)
374
+ - Qualify namespaces from includes in the root namespace (#170)
375
+ - Faster YARD object location
376
+
377
+ ## 0.31.3 - February 7, 2019
378
+ - Location of directive context depends on tag name
379
+ - Regenerated core docs
380
+ - Don't escape colon in URI (#150)
381
+ - Reduce file_to_uri conversions to avoid discrepancies
382
+ - SourceMap::Clip#locals corrects cursor positions outside of the root context
383
+ - Host::Sources notifies observers with URIs
384
+ - Finish synchronizing sources with unbalanced lines
385
+ - Use ComplexType.try_parse to avoid exceptions for syntax errors
386
+
387
+ ## 0.31.2 - January 27, 2019
388
+ - Use YARD documentation rules to associate directives with namespaces
389
+ - Handle non-unique pin locations in completionItem/resolve
390
+ - Clip#complete handles @yieldself and @yieldpublic contexts
391
+ - Host::Dispatch filters library updates (castwide/vscode-solargraph#99)
392
+ - Qualify included namespaces (#148)
393
+
394
+ ## 0.31.1 - January 20, 2019
395
+ - Unsynchronized sources can still try to use existing nodes for chains
396
+ - Host filters document symbols for unique locations
397
+ - Server response logging in debug
398
+ - Host keeps deleted files open in sources
399
+ - CoreGen tweaks
400
+ - Fix negative argument error in Source#stringify_comment_array (#141)
401
+ - Library#references_from includes parameter pins (#135)
402
+ - Block nodes are foldable
403
+ - Source detects comment positions past the range on the ending line
404
+ - workspace/didChangeConfiguration ignores null settings (#144)
405
+
406
+ ## 0.31.0 - January 13, 2019
407
+ - Removed deprecated Library methods
408
+ - Tweaked foldable comment ranges
409
+ - Host::Dispatch module for managing open sources and libraries
410
+ - YardMap::CoreGen module for generating documentation from Ruby source
411
+ - Improved communication between hosts and adapters
412
+ - Refactored Host methods
413
+ - `@!domain` directive uses [type] syntax
414
+ - Make SourceMap#query_symbols use fuzzy matching. (#132)
415
+ - Threaded ApiMap cataloging
416
+ - Fixed fencepost error in Position.from_offset
417
+ - Lazy method alias resolution
418
+ - Library#references_from returns unique locations
419
+ - Additional info logs
420
+ - Asynchronous source parsing
421
+ - Unsychronized source support for faster completion requests (castwide/vscode-solargraph#95)
422
+ - Faster source comment parsing
423
+ - Host only diagnoses synchronized sources
424
+
425
+ ## 0.30.2 - December 31, 2018
426
+ - Workspace/library mapping errors (castwide/solargraph#124)
427
+ - RuboCop diagnostics handle validation errors
428
+ - Map visibility methods with parameters
429
+ - Allow overriding core doc cache directory (castwide/solargraph#125)
430
+
431
+ ## 0.30.1 - December 27, 2018
432
+ - Library#catalog avoids rebuilding ApiMaps that are already synchronized
433
+ - Host#locate_pin finds YARD pins
434
+ - completionItem/resolve merges documentation from multiple pins
435
+
436
+ ## 0.30.0 - December 22, 2018
437
+ - Multi-root workspaces
438
+ - Folding ranges
439
+ - Logging with levels
440
+ - Environment info
441
+ - Replace EventMachine with Backport
442
+ - Gems without yardocs fall back to stdlib
443
+ - Formatting requires shellwords
444
+ - Use Pathname to normalize require paths
445
+
446
+ ## 0.29.5 - December 18, 2018
447
+ - Source::Change repairs preceding periods and colons.
448
+ - Pins use typify and probe methods for type inference.
449
+ - NodeChainer supports or_asgn nodes.
450
+ - NodeMethods.returns_from supports and/or nodes.
451
+ - Library uses single source checkout.
452
+ - ApiMap includes BasicObject and operators in method queries.
453
+ - Refactored CheckGemVersion.
454
+
455
+ ## 0.29.4 - December 7, 2018
456
+ - Parameter type checks in implicit type inference.
457
+ - Additional implicit method type detection cases.
458
+ - Chains match constants on complete symbols.
459
+
460
+ ## 0.29.3 - December 5, 2018
461
+ - Missing parameter in send_notification call.
462
+ - Typo in checkGemVersion message.
463
+
464
+ ## 0.29.2 - December 5, 2018
465
+ - Pin type checks for module_function, private_class_method, and private_constant.
466
+ - ApiMap#catalog checks for added and removed sources.
467
+
468
+ ## 0.29.1 - November 30, 2018
469
+ - Alias method reference error.
470
+
471
+ ## 0.29.0 - November 26, 2018
472
+ - Map method aliases.
473
+ - Removed coderay dependency.
474
+ - Initial support for named macros.
475
+ - First implementation of deep method inference.
476
+ - See references in @return tags.
477
+ - Literal regexp support.
478
+ - Additional CoreFills.
479
+ - Mapper uses NodeProcessor.
480
+ - Pin::BlockParameter checks param tags by index.
481
+ - Clip#complete handles unfinished constants with trailing nodes.
482
+ - Library performs case-insensitive strips of symbol references.
483
+ - Unparsed sources have nil nodes.
484
+ - NodeProcessor recurses into nodes by default.
485
+ - Namespace conflicts in method queries.
486
+ - SourceMap::Clip#complete method visibility.
487
+ - Enable gem dependency mapping.
488
+
489
+ ## 0.28.4 - October 26, 2018
490
+ - Pin::Documenting#documentation converts without RDoc (castwide/solargraph#97)
491
+ - Rescue errors in gemspec evaluation (castwide/solargraph#100)
492
+
493
+ ## 0.28.3 - October 21, 2018
494
+ - Deprecated overwrite features.
495
+ - Pin::MethodParameter finds unnamed param tags by index.
496
+ - Workspace does not cache loaded gems.
497
+ - Explicit range in textDocument/formatting result (castwide/vscode-solargraph#83).
498
+ - SourceMap::Mapper maps alias and alias_method.
499
+ - Source::Chain avoids recursive variable assignments (castwide/solargraph#96).
500
+ - Pin scope reference in Chain::Head.
501
+ - Clip does not define arbitrary comments.
502
+
503
+ ## 0.28.2 - October 2, 2018
504
+ - Map aliases.
505
+ - Refactored diagnostics.
506
+ - SourceChainer checks for nil source error ranges.
507
+ - Clips handle partially completed constants.
508
+ - ApiMap method queries return one pin for root methods.
509
+ - Clip#complete detects unstarted inner constants.
510
+
511
+ ## 0.28.1 - September 18, 2018
512
+ - YardMap adds superclass, include, and extend references.
513
+
514
+ ## 0.28.0 - September 16, 2018
515
+ - ApiMap sorts constants by name within namespaces.
516
+ - Simplified source parsing.
517
+ - SourceChainer requires parsed and unrepaired source for node chaining.
518
+ - Source#synchronize does not flag repaired sources unparsed.
519
+ - References extend pins.
520
+ - Source::Change#repair handles multiple periods and colons.
521
+ - Chain::Constant uses chained context.
522
+ - Chain rebased constants.
523
+ - Deprecated Chain::Definition.
524
+ - SourceMap::Mapper includes symbol pins in standard pin array.
525
+ - YardMap ignores duplicate requires of the same gem.
526
+ - textDocument/rename hack for variables.
527
+ - Completing duck types searches for all duck-typed methods and includes Object.
528
+
529
+ ## 0.27.1 - September 10, 2018
530
+ - Default Host#library instance.
531
+
532
+ ## 0.27.0 - September 9, 2018
533
+ - New Cursor and Clip components replace Fragments.
534
+ - Split Sources into Sources (text and nodes) and SourceMaps (pins and other map-related data).
535
+ - Improved Source synchronization.
536
+ - Standardized chain generation on NodeChainer.
537
+ - Redesigned server threading.
538
+ - Host::Cataloger is responsible for updating ApiMaps.
539
+ - Host::Diagnoser is responsible for running diagnostics.
540
+ - Server checks gem versions inline instead of running an external process.
541
+ - New Library synchronization.
542
+ - ApiMap#catalog uses Bundles for updates.
543
+ - SourceMap::Mapper processes directives.
544
+ - Improved SourceMap and Pin merging.
545
+ - Chains support `super` and `self` keywords.
546
+
547
+ ## 0.26.1 - August 31, 2018
548
+ - Update variable pins when synchronizing sources.
549
+
550
+ ## 0.26.0 - August 30, 2018
551
+ - Major refactoring.
552
+ - More ComplexType integration.
553
+ - Use Chains for pin resolution and type inference.
554
+ - Deprecated ApiMap::Probe for Chains.
555
+ - Force UTF-8 encoding without normalizing.
556
+ - CallChainer parses simple call chains.
557
+ - Fragments are responsible for define, complete, and signify.
558
+ - Method visibility in ApiMap#get_complex_type_methods.
559
+
560
+ ## 0.25.1 - August 20, 2018
561
+ - Revised hack in Host change thread for mismatches in version numbers and content changes
562
+ - Mapper#code_for corrects for EOL conversions in parser
563
+ - Fix TypeError on hover (castwide/solargraph#82)
564
+ - All fragment components return strings
565
+ - ComplexType supports fixed parameters
566
+ - ComplexType supports hash parameters with key => value syntax
567
+
568
+ ## 0.25.0 - August 17, 2018
569
+ - RuboCop reporter uses an inline operation instead of an external process
570
+ - Resolve class and instance variable types from signatures
571
+ - Source attempts fast pin merges
572
+ - Refactored docstring parsing
573
+ - Pins can merge comments
574
+ - Variable pins use complex return types
575
+ - MethodParameter pin merges return types
576
+ - Handle self in ApiMap#qualify
577
+ - First implementation of new YardMap
578
+ - ApiMap::Store does not delete yard pins on source updates
579
+ - ApiMap changes to use new YardMap and store
580
+ - RequireNotFound uses ApiMap#unresolved_requires
581
+ - YardMap stdlib support
582
+ - Synchronize required path changes
583
+ - ComplexType ignores curly brackets
584
+ - Synchronize YardMap with source updates
585
+ - YardMap cache and ApiMap::Store synchronization
586
+ - Method completion filter
587
+ - ApiMap#define ignores keywords
588
+ - Removed manual garbage collection
589
+ - Docstring comparisons for pin merges
590
+ - Removed extra whitespace from method pin documentation
591
+ - textDocument/completion returns empty result marked incomplete while document is changing
592
+ - YardMap generates stdlib pins in one pass and caches results
593
+ - Disabled version order hack in Host change thread
594
+ - textDocument/formatting uses nil ranges for overwriting
595
+
596
+ ## 0.24.1 - August 9, 2018
597
+ - No completion items for void return types
598
+ - ApiMap#complete qualifies pin return types
599
+ - Add space to = in attribute writer methods
600
+ - Redirect YARD logger to stderr
601
+
602
+ ## 0.24.0 - August 5, 2018
603
+ - Complex types
604
+ - Include duck-typed methods in completion items
605
+ - Fragments correct EOL discrepancies in comment ranges
606
+ - TypeNotDefined diagnostics
607
+ - Mapper suppresses stdout while parsing docstrings
608
+
609
+ ## 0.23.6 - August 2, 2018
610
+ - Fragment signatures skip array brackets inside arguments and blocks
611
+ - Disabled Host#save in DidSave
612
+ - Source documentation and method visibility
613
+ - YARD method object visibility
614
+ - Probe#infer_signature_type qualifies return types
615
+ - SourceToYard rakes method and attribute pins together
616
+ - LSP Initialize method prefers rootUri to rootPath
617
+
618
+ ## 0.23.5 - July 16, 2018
619
+ - Source identifies files that raise exceptions
620
+ - ApiMap recognizes self keyword
621
+ - Refactored diagnostics reporters
622
+ - Source#all_symbols ignores pins with empty names
623
+ - Allow ? and ! in fragment signatures
624
+ - Runtime process checks scope for methods
625
+ - LiveMap returns constant pins
626
+ - Probe includes locals when resolving block parameters
627
+ - Probe resolves word types
628
+
629
+ ## 0.23.4 - July 9, 2018
630
+ - Pin::Attribute#parameters is an empty array.
631
+ - Include attributes in Source method pins.
632
+ - Removed alphanumeric condition for mapping def pins.
633
+ - Refactored Source symbol query and pin location.
634
+
635
+ ## 0.23.3 - July 4, 2018
636
+ - Fixed workspace/symbol method references
637
+ - Library#overwrite ignores out-of-sync requests
638
+ - Dynamic registration fixed
639
+
640
+ ## 0.23.2 - July 4, 2018
641
+ - Fixed dynamic registration checks.
642
+
643
+ ## 0.23.1 - July 4, 2018
644
+ - Fixed initialize result for clients without dynamic registration.
645
+
646
+ ## 0.23.0 - July 1, 2018
647
+ - Dynamic registration for definitions, symbols, rename, and references
648
+ - Fixed capability registration issues
649
+ - First version of stdio transport
650
+ - YardMap object cache
651
+ - Pin::Attribute supports class method paths
652
+ - File.realdirpath conversion bug (castwide/solargraph#64)
653
+
654
+ ## 0.22.0 - May 28, 2018
655
+ - Ruby 2.5 issues on Travis CI
656
+ - Fixed in-memory cache issue
657
+ - Fixed type inference from signatures for literal values
658
+ - Infer local variable types derived from other local variables
659
+ - textDocument/references support
660
+ - textDocument/rename support
661
+ - Probe infers word pins for nested namespaces
662
+ - Attribute scopes
663
+ - RuboCop command specifies config file
664
+
665
+ ## 0.21.1 - May 13, 2018
666
+ - Initial support for module_function method visibility.
667
+ - Map `extend self` calls.
668
+ - ApiMap#complete filters completion results on the current word.
669
+ - Refactored YardMap stdlib handling.
670
+ - Minor Message#send bug in socket transport that raised exceptions in Ruby 2.5.1.
671
+ - Probe#infer_method_pins fully qualifies context_pin namespace.
672
+
673
+ ## 0.21.0 - May 7, 2018
674
+ - ApiMap reads additional required paths from the workspace config.
675
+ - Source handles encoding errors.
676
+ - Integrated Travis CI.
677
+ - ApiMap#signify filters for method pins.
678
+ - Default client configuration updates.
679
+ - Fixed RuboCop formatting output.
680
+ - Removed bundler dependency.
681
+ - Removed legacy server and related dependencies.
682
+ - Infer method parameter types.
683
+ - Include solargraph.formatting in dynamic capability registration.
684
+ - Class and module method visibility (e.g., Module#private and Module#module_function).
685
+
686
+ ## 0.20.0 - April 22, 2018
687
+ - YardMap tracks unresolved requires
688
+ - More specs
689
+ - Standardized diagnostics reporters
690
+ - `rubocop` and `require_not_found` reporters
691
+ - Unresolved requires are reportable diagnostics instead of errors
692
+ - LSP handles gem features with extended methods
693
+ - textDocument/onTypeFormatting completes brackets in string interpolation
694
+ - Workspace uses gemspecs for require paths
695
+ - Enabled domain support with @!domain directive in ApiMap and Source
696
+ - Workaround for unavailable :rdoc markup class
697
+ - Probe infers global variable pins
698
+ - Source#all_symbols includes namespaces
699
+ - Use kramdown instead of redcarpet for document pages
700
+
701
+ ## 0.19.1 - April 16, 2018
702
+ - YardMap finds yardocs for gems with or without the bundler.
703
+
704
+ ## 0.19.0 - April 16, 2018
705
+ - Major refactoring.
706
+ - ApiMap does not require AST data.
707
+ - Prefer line/character positions to offsets.
708
+ - ApiMap::Probe class for inferring dynamic return types.
709
+ - Improved local variable handling.
710
+ - Max workspace size is 5000 files.
711
+
712
+ ## 0.18.3 - April 10, 2018
713
+ - castwide/solargraph#33 Enforce UTF-8 encoding when parsing source
714
+
715
+ ## 0.18.2 - April 6, 2018
716
+ - RuboCop avoids highlighting more than 1 line per offense.
717
+ - LSP message synchronization issues.
718
+ - Prefer non-nil variable assignments in results.
719
+ - Check for nil assignment nodes in variable pins.
720
+ - Fragments handle literal value detection for signatures.
721
+ - Unresolved completion items do not emit errors.
722
+ - Completion items do not send 'Invalid offset' errors to clients.
723
+
724
+ ## 0.18.1 - April 5, 2018
725
+ - First version of the language server.
726
+
727
+ ## 0.17.3 - March 1, 2018
728
+ - YardMap rescues Gem::LoadError instead of Gem::MissingSpecError
729
+ - Server caches ApiMap for nil workspaces.
730
+
731
+ ## 0.17.2 - February 15, 2018
732
+ - Visibility tweaks
733
+ - Refactored YardMap
734
+ - Process require paths to bundled gems
735
+ - Core method return type overrides
736
+ - Server handles nil and empty workspaces
737
+
738
+ ## 0.17.1 - February 4, 2018
739
+ - Convert ERB templates to parsable code.
740
+ - Improved relative constant detection.
741
+ - Resolve file paths from symbols in required gems.
742
+ - Use inner method suggestion methods to avoid infinite recursion.
743
+
744
+ ## 0.17.0 - February 1, 2018
745
+ - Support Solargraph configurations in workspace folders.
746
+ - Use @yieldself tag to change block contexts.
747
+ - Handle whitespace in signatures.
748
+ - Convert 'self' when inferring signature types.
749
+ - Handle bare periods without signatures.
750
+ - Source#fix handles bare periods better.
751
+ - Deprecate snippets.
752
+ - Initial support for macro directives.
753
+ - Changes to YardMap require path resolution.
754
+ - Server provides /define endpoint for go to definition.
755
+ - Removed deprecated methods from ApiMap and LiveMap.
756
+
757
+ ## 0.16.0 - January 17, 2018
758
+ - Watch and report workspace changes.
759
+ - Arguments in Runtime method results.
760
+ - Infer yieldparam types from method owner subtypes.
761
+ - Select available port from shell.
762
+
763
+ ## 0.15.4 - January 2, 2018
764
+ - Include suggestion documentation in /signify response.
765
+ - Derive unknown method return types from superclasses.
766
+ - Support for extended modules.
767
+ - Narrow visibility of private constants and methods.
768
+ - Infer return types of method chains from variables.
769
+
770
+ ## 0.15.3 - December 10, 2017
771
+ - Suggestion has_doc attribute.
772
+ - Fully qualified namespace in generated MethodObject paths.
773
+ - Support for private_class_method and private_constant.
774
+ - Stable suggestion sorting (e.g., local class method comes before superclass method).
775
+ - Track files in workspace code objects.
776
+
777
+ ## 0.15.2 - December 5, 2017
778
+ - Patched critical bug in minimum documentation requirement.
779
+
780
+ ## 0.15.1 - December 4, 2017
781
+ - Fixed attribute -> code object mapping error.
782
+
783
+ ## 0.15.0 - December 3, 2017
784
+ - CodeMap is workspace-agnostic.
785
+ - Use YARD code objects for workspace path documentation.
786
+ - Map pins to code objects.
787
+ - Infer return types from domain (DSL) methods.
788
+ - Fixed visibility and results for superclasses.
789
+ - Experimental @yieldself tag.
790
+ - Improved syntax error handling in Source.fix.
791
+ - Gem ships with Ruby 2.2.2 yardocs.
792
+ - Experimental plugin architecture and Runtime plugin.
793
+ - Experimental support for updating Ruby core documentation.
794
+
795
+ ## 0.14.3 - November 30, 2017
796
+ - * Namespace pins
797
+ - * Required setting in config
798
+ - * Ignore non-Ruby files in workspace
799
+ - * Detect changes in workspace files
800
+ - * Add return types to class and module suggestions
801
+ - * Unique variable names in suggestions
802
+ - * Look for variable nodes with non-nil assignments or type tags
803
+ - * Server reverted from Puma back to WEBrick
804
+ - * Stubbed bundler/(setup|require) dependency mapping
805
+ - * Handle config parsing exceptions
806
+ - * Disabled Runtime plugin pending further testing
807
+ - * Handle exceptions in all server endpoints
808
+
809
+ ## 0.14.2 - November 26, 2017
810
+ - Heisenbug in Gem::Specification concealed by Bundler behavior.
811
+
812
+ ## 0.14.1 - November 26, 2017
813
+ - Disabled Runtime plugin.
814
+
815
+ ## 0.14.0 - November 26, 2017
816
+ - LiveMap plugin support.
817
+ - Rebuild workspace yardoc if it exists (do not create).
818
+ - Standardized code/filename argument order.
819
+ - Internal Runtime plugin.
820
+ - Infer typed from Kernel methods.
821
+ - Removed unused dependencies.
822
+ - Add locations to pins and suggestions.
823
+ - Reduced size of /suggest response by default.
824
+ - Use /resolve for suggestion detail.
825
+ - Domain configuration option (experimental DSL support).
826
+ - Identify constant types.
827
+ - Optimized namespace type resolution.
828
+ - Include stdlib in search and document requests.
829
+ - Undefined variable bug in YardMap.
830
+
831
+ ## 0.13.3 - November 7, 2017
832
+ - First support for YARD directives in workspace code.
833
+ - Experimental LiveMap plugins.
834
+ - Changes for backwards compatibility to Ruby 2.2.2.
835
+ - Generate config from default object.
836
+
837
+ ## 0.13.2 - October 31, 2017
838
+ - * ApiMap clears namespace map when processing virtual files (duplicate object bug).
839
+ - * Exception for disagreement between root namespace and signature (root instance method bug).
840
+
841
+ ## 0.13.1 - October 29, 2017
842
+ - Added missing return types.
843
+ - Fixed object(path) resolution.
844
+ - Corrected docstrings assigned to attribute pins.
845
+ - Server uses Puma.
846
+ - Filter server suggestions by default.
847
+ - Cache pin suggestions.
848
+ - Improved caches.
849
+ - YardMap crawls up the scope to find constants.
850
+ - Use local variable pins to reduce node browsing.
851
+ - Preparing the workspace also prepares the YardMap.
852
+ - Deprecated experimental bind tag.
853
+ - Include restargs (e.g., def foo *bar) in method arguments.
854
+ - Avoid inferring from signatures in top-level suggestions.
855
+ - Global variable support.
856
+ - Remove virtual source's existing pins in ApiMap updates.
857
+ - Improved performance of signature type inference.
858
+
859
+ ## 0.13.0 - October 3, 2017
860
+ - Constant and symbol detection.
861
+ - Major code refactoring.
862
+ - Update single files instead of entire workspace.
863
+ - Eliminated local yardoc generation.
864
+
865
+ ## 0.12.2 - September 14, 2017
866
+ - Fixed instance variable scoping bug.
867
+ - Partial support for constant method suggestions.
868
+
869
+ ## 0.12.1 - September 12, 2017
870
+ - More literal value exceptions.
871
+ - Skip literal strings when building signatures.
872
+ - Improved ApiMap processing.
873
+
874
+ ## 0.12.0 - September 12, 2017
875
+ - ApiMap config excludes test directory by default.
876
+ - Fixed literal value detection.
877
+ - Consolidated processes for inferring signatures.
878
+ - Object resolution detects class methods.
879
+ - ApiMap collects method and variable pins while processing maps.
880
+ - Removed bundler requirement.
881
+ - Avoid preparing workspaces without explicit requests.
882
+
883
+ ## 0.11.2 - September 5, 2017
884
+ - Include square brackets in signatures for type inference.
885
+ - Semi-colons terminate signatures.
886
+ - Detect literal values at the start of signatures.
887
+ - Eliminate threads in workspace preparation due to lag and sync issues.
888
+ - Classes only include instance methods from included modules one level deep.
889
+ - ApiMap recurses into children for constant nodes.
890
+
891
+ ## 0.11.1 - August 24, 2017
892
+ - Find arguments node for singleton methods.
893
+ - Recurse into class << self when collecting singleton methods.
894
+ - Detect singleton method visibility.
895
+ - Find constants in ApiMap.
896
+ - Inferring signatures detects methods that return self.
897
+
898
+ ## 0.11.0 - August 16, 2017
899
+ - Add space to = in attr_accessor suggestions.
900
+ - Refactored detection of assignment node types.
901
+ - ApiMap caches assignment node types.
902
+ - ApiMap checks method visibility.
903
+ - Smart switching between class and instance scope when inferring signature types.
904
+ - Private methods are available from included modules.
905
+ - Avoid infinite loops from variable assignments that reference themselves.
906
+ - Detect the self keyword when inferring signature types.
907
+ - Updated gemspec dependencies.
908
+
909
+ ## 0.10.3 - August 13, 2017
910
+ - Return to master branch for releases.
911
+
912
+ ## 0.10.2 - August 11, 2017
913
+ - Chained method call inference.
914
+ - Detect class and instance variables in signatures.
915
+ - ApiMap caches inferred signature types.
916
+
917
+ ## 0.10.1 - August 11, 2017
918
+ - CodeMap signature typing detects method arguments.
919
+ - Miscellaneous nil checks.
920
+ - Fixed yieldparam detection.
921
+ - Clean namespace strings for return types with subtypes.
922
+
923
+ ## 0.10.0 - August 9, 2017
924
+ - YardMap#get_constants filters for classes, modules, and constants.
925
+ - Suggestions allow Constant as a kind attribute.
926
+ - Class variable support.
927
+ - Detect variables that directly references classes instead of instances.
928
+ - Detect and infer types for yield params.
929
+
930
+ ## 0.9.2 - August 7, 2017
931
+ - Add block parameter variables to suggestions.
932
+
933
+ ## 0.9.1 - August 1, 2017
934
+ - YardMap fixes.
935
+ - Workaround for paths in HTML helper.
936
+ - Extract default values for optional arguments from code.
937
+ - Parse param tags in suggestions.
938
+ - Show return types for method params.
939
+ - CodeMap detects comments.
940
+ - Solargraph config subcommand writes to .solargraph.yml.
941
+
942
+ ## 0.9.0 - June 27, 2017
943
+ - Run GC after each server request.
944
+ - ApiMap appends all .rb files in workspace.
945
+ - Emulate YARD when parsing comments in ApiMap.
946
+ - Include modules in ApiMap inner instance methods.
947
+ - Configure ApiMap file options in .solargraph.yml.
948
+
949
+ ## 0.8.6 - June 14, 2017
950
+ - ApiMap#update_yardoc sets workspace from thread. Retain docstring in suggestions.
951
+ - ApiMap#update_yardoc uses .yardopts directly for globs.
952
+ - CodeMap#filename path separator hack.
953
+ - Include all arguments in ApiMap instance method suggestions. Nil filename exception in CodeMap.
954
+
955
+ ## 0.8.5 - June 12, 2017
956
+ - Exclude Kernel module when querying namespace instance methods.
957
+
958
+ ## 0.8.4 - June 11, 2017
959
+ - Sort and filter for suggestions.
960
+ - CodeMap#namespace_from returns empty string instead of first node for nodes without locations.
961
+ - Improved error handling.
962
+ - Suggestions include return types.
963
+ - Convert RDoc to HTML in Suggestion#documentation.
964
+ - Instance methods in suggestions include superclass and mixin methods.
965
+
966
+ ## 0.8.3 - June 8, 2017
967
+ - Improved detection of cursors inside strings.
968
+ - Property and Field kinds for suggestions.
969
+
970
+ ## 0.8.2 - June 3, 2017
971
+ - Suggestions and inferences for method arguments.
972
+
973
+ ## 0.8.1 - May 31, 2017
974
+ - Server uses Webrick.
975
+
976
+ ## 0.8.0 - May 29, 2017
977
+ - Method suggestions include arguments.
978
+ - Use CodeMap#signature_at to get suggestions for method arguments.
979
+ - Server includes /signify endpoint for method arguments.
980
+ - First support for hover documentation.
981
+ - Handle multi-part constants in namespaces, e.g., "class Foo::Bar"
982
+ - Use #initialize documentation for #new methods.
983
+ - More HTML formatting helpers.
984
+ - Improved type detection for local variables.
985
+ - Long/complex signature handling.
986
+
987
+ ## 0.7.5 - May 12, 2017
988
+ - Improved live error correction and instance variable suggestions.