solargraph 0.46.0 → 0.54.5

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