jimeh-solargraph 0.40.4.0

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