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