solargraph 0.39.16 → 0.40.3

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