solargraph 0.39.15 → 0.40.2

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