solargraph 0.46.0 → 0.47.1

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