solargraph 0.39.16 → 0.40.3

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