jimeh-solargraph 0.40.4.0

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