solargraph 0.32.1 → 0.32.2

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 (177) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +6 -0
  5. data/.travis.yml +25 -0
  6. data/EXAMPLES.md +76 -0
  7. data/Gemfile +3 -0
  8. data/LANGUAGE_SERVER.md +51 -0
  9. data/LICENSE +21 -0
  10. data/OVERVIEW.md +37 -0
  11. data/README.md +106 -0
  12. data/Rakefile +14 -0
  13. data/SERVER.md +95 -0
  14. data/bin/solargraph +0 -0
  15. data/bin/solargraph-runtime +5 -5
  16. data/lib/solargraph.rb +54 -54
  17. data/lib/solargraph/api_map.rb +659 -659
  18. data/lib/solargraph/api_map/cache.rb +49 -49
  19. data/lib/solargraph/api_map/source_to_yard.rb +67 -67
  20. data/lib/solargraph/api_map/store.rb +201 -201
  21. data/lib/solargraph/bundle.rb +24 -24
  22. data/lib/solargraph/complex_type.rb +150 -150
  23. data/lib/solargraph/complex_type/type_methods.rb +124 -124
  24. data/lib/solargraph/complex_type/unique_type.rb +44 -44
  25. data/lib/solargraph/core_fills.rb +37 -37
  26. data/lib/solargraph/diagnostics.rb +52 -52
  27. data/lib/solargraph/diagnostics/base.rb +20 -20
  28. data/lib/solargraph/diagnostics/require_not_found.rb +28 -28
  29. data/lib/solargraph/diagnostics/rubocop.rb +98 -98
  30. data/lib/solargraph/diagnostics/rubocop_helpers.rb +46 -46
  31. data/lib/solargraph/diagnostics/type_not_defined.rb +108 -108
  32. data/lib/solargraph/diagnostics/update_errors.rb +38 -38
  33. data/lib/solargraph/language_server/completion_item_kinds.rb +33 -33
  34. data/lib/solargraph/language_server/error_codes.rb +18 -18
  35. data/lib/solargraph/language_server/host.rb +684 -681
  36. data/lib/solargraph/language_server/host/cataloger.rb +54 -79
  37. data/lib/solargraph/language_server/host/diagnoser.rb +80 -80
  38. data/lib/solargraph/language_server/host/dispatch.rb +112 -113
  39. data/lib/solargraph/language_server/host/sources.rb +138 -138
  40. data/lib/solargraph/language_server/message.rb +90 -90
  41. data/lib/solargraph/language_server/message/base.rb +83 -83
  42. data/lib/solargraph/language_server/message/completion_item/resolve.rb +40 -40
  43. data/lib/solargraph/language_server/message/exit_notification.rb +11 -11
  44. data/lib/solargraph/language_server/message/extended.rb +19 -19
  45. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +86 -86
  46. data/lib/solargraph/language_server/message/extended/document.rb +18 -18
  47. data/lib/solargraph/language_server/message/extended/document_gems.rb +30 -30
  48. data/lib/solargraph/language_server/message/extended/environment.rb +20 -20
  49. data/lib/solargraph/language_server/message/extended/search.rb +18 -18
  50. data/lib/solargraph/language_server/message/initialize.rb +141 -141
  51. data/lib/solargraph/language_server/message/initialized.rb +23 -23
  52. data/lib/solargraph/language_server/message/shutdown.rb +11 -11
  53. data/lib/solargraph/language_server/message/text_document.rb +25 -25
  54. data/lib/solargraph/language_server/message/text_document/completion.rb +51 -51
  55. data/lib/solargraph/language_server/message/text_document/definition.rb +18 -18
  56. data/lib/solargraph/language_server/message/text_document/did_change.rb +13 -13
  57. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +21 -21
  58. data/lib/solargraph/language_server/message/text_document/folding_range.rb +24 -24
  59. data/lib/solargraph/language_server/message/text_document/formatting.rb +50 -50
  60. data/lib/solargraph/language_server/message/text_document/hover.rb +31 -31
  61. data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +32 -32
  62. data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +9 -9
  63. data/lib/solargraph/language_server/message/text_document/references.rb +14 -14
  64. data/lib/solargraph/language_server/message/text_document/rename.rb +17 -17
  65. data/lib/solargraph/language_server/message/text_document/signature_help.rb +19 -19
  66. data/lib/solargraph/language_server/message/workspace.rb +12 -12
  67. data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +29 -29
  68. data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +29 -27
  69. data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +24 -24
  70. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +21 -21
  71. data/lib/solargraph/language_server/request.rb +22 -22
  72. data/lib/solargraph/language_server/symbol_kinds.rb +34 -34
  73. data/lib/solargraph/language_server/transport.rb +11 -11
  74. data/lib/solargraph/language_server/transport/adapter.rb +60 -60
  75. data/lib/solargraph/language_server/transport/data_reader.rb +66 -66
  76. data/lib/solargraph/language_server/uri_helpers.rb +25 -25
  77. data/lib/solargraph/library.rb +421 -419
  78. data/lib/solargraph/live_map.rb +126 -126
  79. data/lib/solargraph/live_map/cache.rb +38 -38
  80. data/lib/solargraph/location.rb +31 -31
  81. data/lib/solargraph/logging.rb +25 -25
  82. data/lib/solargraph/page.rb +68 -68
  83. data/lib/solargraph/pin.rb +50 -50
  84. data/lib/solargraph/pin/attribute.rb +41 -41
  85. data/lib/solargraph/pin/base.rb +280 -280
  86. data/lib/solargraph/pin/base_method.rb +76 -76
  87. data/lib/solargraph/pin/base_variable.rb +72 -72
  88. data/lib/solargraph/pin/block.rb +32 -32
  89. data/lib/solargraph/pin/block_parameter.rb +103 -103
  90. data/lib/solargraph/pin/class_variable.rb +9 -9
  91. data/lib/solargraph/pin/constant.rb +30 -30
  92. data/lib/solargraph/pin/conversions.rb +79 -79
  93. data/lib/solargraph/pin/documenting.rb +41 -41
  94. data/lib/solargraph/pin/duck_method.rb +14 -14
  95. data/lib/solargraph/pin/global_variable.rb +9 -9
  96. data/lib/solargraph/pin/instance_variable.rb +9 -9
  97. data/lib/solargraph/pin/keyword.rb +17 -17
  98. data/lib/solargraph/pin/local_variable.rb +23 -23
  99. data/lib/solargraph/pin/localized.rb +22 -22
  100. data/lib/solargraph/pin/method.rb +126 -126
  101. data/lib/solargraph/pin/method_alias.rb +30 -30
  102. data/lib/solargraph/pin/method_parameter.rb +40 -40
  103. data/lib/solargraph/pin/namespace.rb +54 -54
  104. data/lib/solargraph/pin/plugin/method.rb +25 -25
  105. data/lib/solargraph/pin/proxy_type.rb +35 -35
  106. data/lib/solargraph/pin/reference.rb +22 -22
  107. data/lib/solargraph/pin/reference/extend.rb +11 -11
  108. data/lib/solargraph/pin/reference/include.rb +11 -11
  109. data/lib/solargraph/pin/reference/require.rb +15 -15
  110. data/lib/solargraph/pin/reference/superclass.rb +11 -11
  111. data/lib/solargraph/pin/symbol.rb +44 -44
  112. data/lib/solargraph/pin/yard_pin.rb +10 -10
  113. data/lib/solargraph/pin/yard_pin/constant.rb +14 -14
  114. data/lib/solargraph/pin/yard_pin/method.rb +35 -35
  115. data/lib/solargraph/pin/yard_pin/namespace.rb +19 -19
  116. data/lib/solargraph/pin/yard_pin/yard_mixin.rb +14 -14
  117. data/lib/solargraph/plugin.rb +8 -8
  118. data/lib/solargraph/plugin/base.rb +41 -41
  119. data/lib/solargraph/plugin/canceler.rb +11 -11
  120. data/lib/solargraph/plugin/process.rb +172 -172
  121. data/lib/solargraph/plugin/runtime.rb +134 -134
  122. data/lib/solargraph/position.rb +110 -110
  123. data/lib/solargraph/range.rb +83 -83
  124. data/lib/solargraph/server_methods.rb +14 -14
  125. data/lib/solargraph/shell.rb +102 -102
  126. data/lib/solargraph/source.rb +521 -521
  127. data/lib/solargraph/source/chain.rb +120 -120
  128. data/lib/solargraph/source/chain/call.rb +107 -107
  129. data/lib/solargraph/source/chain/class_variable.rb +11 -11
  130. data/lib/solargraph/source/chain/constant.rb +30 -30
  131. data/lib/solargraph/source/chain/global_variable.rb +11 -11
  132. data/lib/solargraph/source/chain/head.rb +33 -33
  133. data/lib/solargraph/source/chain/instance_variable.rb +11 -11
  134. data/lib/solargraph/source/chain/link.rb +33 -33
  135. data/lib/solargraph/source/chain/literal.rb +21 -21
  136. data/lib/solargraph/source/chain/variable.rb +11 -11
  137. data/lib/solargraph/source/change.rb +77 -77
  138. data/lib/solargraph/source/cursor.rb +157 -157
  139. data/lib/solargraph/source/node_chainer.rb +96 -96
  140. data/lib/solargraph/source/node_methods.rb +225 -225
  141. data/lib/solargraph/source/source_chainer.rb +183 -183
  142. data/lib/solargraph/source_map.rb +169 -169
  143. data/lib/solargraph/source_map/clip.rb +145 -145
  144. data/lib/solargraph/source_map/completion.rb +21 -21
  145. data/lib/solargraph/source_map/mapper.rb +149 -149
  146. data/lib/solargraph/source_map/node_processor.rb +78 -78
  147. data/lib/solargraph/source_map/node_processor/alias_node.rb +19 -19
  148. data/lib/solargraph/source_map/node_processor/args_node.rb +28 -28
  149. data/lib/solargraph/source_map/node_processor/base.rb +68 -68
  150. data/lib/solargraph/source_map/node_processor/begin_node.rb +11 -11
  151. data/lib/solargraph/source_map/node_processor/block_node.rb +14 -14
  152. data/lib/solargraph/source_map/node_processor/casgn_node.rb +14 -14
  153. data/lib/solargraph/source_map/node_processor/cvasgn_node.rb +14 -14
  154. data/lib/solargraph/source_map/node_processor/def_node.rb +54 -54
  155. data/lib/solargraph/source_map/node_processor/defs_node.rb +21 -21
  156. data/lib/solargraph/source_map/node_processor/gvasgn_node.rb +12 -12
  157. data/lib/solargraph/source_map/node_processor/ivasgn_node.rb +18 -18
  158. data/lib/solargraph/source_map/node_processor/lvasgn_node.rb +16 -16
  159. data/lib/solargraph/source_map/node_processor/namespace_node.rb +26 -26
  160. data/lib/solargraph/source_map/node_processor/orasgn_node.rb +12 -12
  161. data/lib/solargraph/source_map/node_processor/sclass_node.rb +11 -11
  162. data/lib/solargraph/source_map/node_processor/send_node.rb +162 -162
  163. data/lib/solargraph/source_map/node_processor/sym_node.rb +11 -11
  164. data/lib/solargraph/source_map/region.rb +58 -58
  165. data/lib/solargraph/version.rb +3 -3
  166. data/lib/solargraph/views/environment.erb +53 -53
  167. data/lib/solargraph/workspace.rb +183 -183
  168. data/lib/solargraph/workspace/config.rb +170 -170
  169. data/lib/solargraph/yard_map.rb +298 -298
  170. data/lib/solargraph/yard_map/cache.rb +17 -17
  171. data/lib/solargraph/yard_map/core_docs.rb +163 -163
  172. data/lib/solargraph/yard_map/core_gen.rb +76 -76
  173. data/lib/yard-coregen.rb +16 -16
  174. data/lib/yard-solargraph.rb +18 -18
  175. data/solargraph.gemspec +37 -0
  176. data/travis-bundler.rb +10 -0
  177. metadata +19 -6
data/lib/yard-coregen.rb CHANGED
@@ -1,16 +1,16 @@
1
- require 'yard'
2
-
3
- class CoreMethodHandler < YARD::Handlers::C::Base
4
- MATCH = /define_filetest_function\s*\(
5
- \s*"([^"]+)",
6
- \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
7
- \s*(-?\w+)\s*\)/xm
8
- handles MATCH
9
- statement_class BodyStatement
10
-
11
- process do
12
- statement.source.scan(MATCH) do |name, func_name, _param_count|
13
- handle_method("singleton_method", "rb_cFile", name, func_name)
14
- end
15
- end
16
- end
1
+ require 'yard'
2
+
3
+ class CoreMethodHandler < YARD::Handlers::C::Base
4
+ MATCH = /define_filetest_function\s*\(
5
+ \s*"([^"]+)",
6
+ \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
7
+ \s*(-?\w+)\s*\)/xm
8
+ handles MATCH
9
+ statement_class BodyStatement
10
+
11
+ process do
12
+ statement.source.scan(MATCH) do |name, func_name, _param_count|
13
+ handle_method("singleton_method", "rb_cFile", name, func_name)
14
+ end
15
+ end
16
+ end
@@ -1,18 +1,18 @@
1
- require 'yard'
2
-
3
- module Solargraph
4
- # A placeholder for the @!domain directive. It doesn't need to do anything
5
- # for yardocs. It's only used for Solargraph API maps.
6
- class DomainDirective < YARD::Tags::Directive
7
- def call; end
8
- end
9
- end
10
-
11
- # Define a @type tag for documenting variables
12
- YARD::Tags::Library.define_tag("Type", :type, :with_types_and_name)
13
- # Define a @yieldself tag for documenting block contexts
14
- YARD::Tags::Library.define_tag("Yieldself", :yieldself, :with_types)
15
- # Define a @yieldpublic tag for documenting block domains
16
- YARD::Tags::Library.define_tag("Yieldpublic", :yieldpublic, :with_types)
17
- # Define a @!domain directive for documenting DSLs
18
- YARD::Tags::Library.define_directive("domain", :with_types, Solargraph::DomainDirective)
1
+ require 'yard'
2
+
3
+ module Solargraph
4
+ # A placeholder for the @!domain directive. It doesn't need to do anything
5
+ # for yardocs. It's only used for Solargraph API maps.
6
+ class DomainDirective < YARD::Tags::Directive
7
+ def call; end
8
+ end
9
+ end
10
+
11
+ # Define a @type tag for documenting variables
12
+ YARD::Tags::Library.define_tag("Type", :type, :with_types_and_name)
13
+ # Define a @yieldself tag for documenting block contexts
14
+ YARD::Tags::Library.define_tag("Yieldself", :yieldself, :with_types)
15
+ # Define a @yieldpublic tag for documenting block domains
16
+ YARD::Tags::Library.define_tag("Yieldpublic", :yieldpublic, :with_types)
17
+ # Define a @!domain directive for documenting DSLs
18
+ YARD::Tags::Library.define_directive("domain", :with_types, Solargraph::DomainDirective)
@@ -0,0 +1,37 @@
1
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/lib'
2
+ require 'solargraph/version'
3
+ require 'date'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'solargraph'
7
+ s.version = Solargraph::VERSION
8
+ s.date = Date.today.strftime("%Y-%m-%d")
9
+ s.summary = "A Ruby language server"
10
+ s.description = "IDE tools for code completion, inline documentation, and static analysis"
11
+ s.authors = ["Fred Snyder"]
12
+ s.email = 'admin@castwide.com'
13
+ s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
14
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
+ end
16
+ s.homepage = 'http://solargraph.org'
17
+ s.license = 'MIT'
18
+ s.executables = ['solargraph', 'solargraph-runtime']
19
+
20
+ s.required_ruby_version = '>= 2.1'
21
+
22
+ s.add_runtime_dependency 'backport', '~> 1.0'
23
+ s.add_runtime_dependency 'bundler', '>= 1.17.2'
24
+ s.add_runtime_dependency 'htmlentities', '~> 4.3', '>= 4.3.4'
25
+ s.add_runtime_dependency 'jaro_winkler', '~> 1.5'
26
+ s.add_runtime_dependency 'kramdown', '~> 1.16'
27
+ s.add_runtime_dependency 'parser', '~> 2.3'
28
+ s.add_runtime_dependency 'reverse_markdown', '~> 1.0', '>= 1.0.5'
29
+ s.add_runtime_dependency 'rubocop', '~> 0.52'
30
+ s.add_runtime_dependency 'thor', '~> 0.19', '>= 0.19.4'
31
+ s.add_runtime_dependency 'tilt', '~> 2.0'
32
+ s.add_runtime_dependency 'yard', '~> 0.9'
33
+
34
+ s.add_development_dependency 'pry', '~> 0.11.3'
35
+ s.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
36
+ s.add_development_dependency 'simplecov', '~> 0.14'
37
+ end
data/travis-bundler.rb ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Travis uses this script to select which version of bundler to install for
4
+ # each job.
5
+
6
+ if RUBY_VERSION =~ /^2\.(1|2)\./
7
+ exec "gem install bundler -v '< 2'"
8
+ else
9
+ exec "gem install bundler"
10
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.32.1
4
+ version: 0.32.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-09 00:00:00.000000000 Z
11
+ date: 2019-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backport
@@ -230,7 +230,7 @@ dependencies:
230
230
  - - "~>"
231
231
  - !ruby/object:Gem::Version
232
232
  version: '0.14'
233
- description: IDE tools for code completion and inline documentation
233
+ description: IDE tools for code completion, inline documentation, and static analysis
234
234
  email: admin@castwide.com
235
235
  executables:
236
236
  - solargraph
@@ -238,7 +238,19 @@ executables:
238
238
  extensions: []
239
239
  extra_rdoc_files: []
240
240
  files:
241
+ - ".gitignore"
242
+ - ".rspec"
243
+ - ".rubocop.yml"
244
+ - ".travis.yml"
241
245
  - ".yardopts"
246
+ - EXAMPLES.md
247
+ - Gemfile
248
+ - LANGUAGE_SERVER.md
249
+ - LICENSE
250
+ - OVERVIEW.md
251
+ - README.md
252
+ - Rakefile
253
+ - SERVER.md
242
254
  - bin/solargraph
243
255
  - bin/solargraph-runtime
244
256
  - lib/solargraph.rb
@@ -423,6 +435,8 @@ files:
423
435
  - lib/solargraph/yard_map/core_gen.rb
424
436
  - lib/yard-coregen.rb
425
437
  - lib/yard-solargraph.rb
438
+ - solargraph.gemspec
439
+ - travis-bundler.rb
426
440
  - yardoc/2.2.2.tar.gz
427
441
  homepage: http://solargraph.org
428
442
  licenses:
@@ -443,9 +457,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
443
457
  - !ruby/object:Gem::Version
444
458
  version: '0'
445
459
  requirements: []
446
- rubyforge_project:
447
- rubygems_version: 2.7.8
460
+ rubygems_version: 3.0.3
448
461
  signing_key:
449
462
  specification_version: 4
450
- summary: Solargraph for Ruby
463
+ summary: A Ruby language server
451
464
  test_files: []