solargraph 0.46.0 → 0.54.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.github/workflows/plugins.yml +40 -0
- data/.github/workflows/rspec.yml +37 -41
- data/.github/workflows/typecheck.yml +34 -0
- data/.gitignore +9 -9
- data/.rspec +2 -2
- data/.yardopts +2 -2
- data/CHANGELOG.md +1338 -1115
- data/Gemfile +0 -0
- data/LICENSE +1 -1
- data/README.md +131 -128
- data/Rakefile +0 -0
- data/SPONSORS.md +10 -18
- data/bin/solargraph +0 -0
- data/lib/solargraph/api_map/cache.rb +109 -70
- data/lib/solargraph/api_map/index.rb +167 -0
- data/lib/solargraph/api_map/source_to_yard.rb +88 -81
- data/lib/solargraph/api_map/store.rb +260 -256
- data/lib/solargraph/api_map.rb +870 -686
- data/lib/solargraph/bench.rb +44 -27
- data/lib/solargraph/cache.rb +77 -0
- data/lib/solargraph/complex_type/type_methods.rb +217 -130
- data/lib/solargraph/complex_type/unique_type.rb +386 -75
- data/lib/solargraph/complex_type.rb +394 -221
- data/lib/solargraph/convention/base.rb +33 -33
- data/lib/solargraph/convention/gemfile.rb +15 -15
- data/lib/solargraph/convention/gemspec.rb +22 -22
- data/lib/solargraph/convention/rakefile.rb +17 -0
- data/lib/solargraph/convention.rb +47 -47
- data/lib/solargraph/converters/dd.rb +17 -12
- data/lib/solargraph/converters/dl.rb +15 -12
- data/lib/solargraph/converters/dt.rb +15 -12
- data/lib/solargraph/converters/misc.rb +1 -1
- data/lib/solargraph/diagnostics/base.rb +29 -29
- data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
- data/lib/solargraph/diagnostics/rubocop.rb +113 -98
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +66 -63
- data/lib/solargraph/diagnostics/severities.rb +15 -15
- data/lib/solargraph/diagnostics/type_check.rb +55 -54
- data/lib/solargraph/diagnostics/update_errors.rb +41 -41
- data/lib/solargraph/diagnostics.rb +55 -55
- data/lib/solargraph/doc_map.rb +188 -0
- data/lib/solargraph/environ.rb +45 -45
- data/lib/solargraph/equality.rb +33 -0
- data/lib/solargraph/gem_pins.rb +72 -0
- data/lib/solargraph/language_server/completion_item_kinds.rb +35 -35
- data/lib/solargraph/language_server/error_codes.rb +20 -20
- data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
- data/lib/solargraph/language_server/host/dispatch.rb +128 -111
- data/lib/solargraph/language_server/host/message_worker.rb +106 -59
- data/lib/solargraph/language_server/host/sources.rb +99 -156
- data/lib/solargraph/language_server/host.rb +861 -865
- data/lib/solargraph/language_server/message/base.rb +96 -89
- data/lib/solargraph/language_server/message/cancel_request.rb +13 -13
- data/lib/solargraph/language_server/message/client/register_capability.rb +15 -15
- data/lib/solargraph/language_server/message/client.rb +11 -11
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +60 -58
- data/lib/solargraph/language_server/message/completion_item.rb +11 -11
- data/lib/solargraph/language_server/message/exit_notification.rb +13 -13
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +112 -100
- data/lib/solargraph/language_server/message/extended/document.rb +20 -20
- data/lib/solargraph/language_server/message/extended/document_gems.rb +32 -32
- data/lib/solargraph/language_server/message/extended/download_core.rb +19 -23
- data/lib/solargraph/language_server/message/extended/environment.rb +25 -25
- data/lib/solargraph/language_server/message/extended/search.rb +20 -20
- data/lib/solargraph/language_server/message/extended.rb +21 -21
- data/lib/solargraph/language_server/message/initialize.rb +191 -162
- data/lib/solargraph/language_server/message/initialized.rb +28 -27
- data/lib/solargraph/language_server/message/method_not_found.rb +16 -16
- data/lib/solargraph/language_server/message/method_not_implemented.rb +14 -14
- data/lib/solargraph/language_server/message/shutdown.rb +13 -13
- data/lib/solargraph/language_server/message/text_document/base.rb +19 -19
- data/lib/solargraph/language_server/message/text_document/code_action.rb +17 -17
- data/lib/solargraph/language_server/message/text_document/completion.rb +56 -59
- data/lib/solargraph/language_server/message/text_document/definition.rb +38 -38
- data/lib/solargraph/language_server/message/text_document/did_change.rb +15 -15
- data/lib/solargraph/language_server/message/text_document/did_close.rb +15 -15
- data/lib/solargraph/language_server/message/text_document/did_open.rb +15 -15
- data/lib/solargraph/language_server/message/text_document/did_save.rb +17 -17
- data/lib/solargraph/language_server/message/text_document/document_highlight.rb +16 -16
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +26 -23
- data/lib/solargraph/language_server/message/text_document/folding_range.rb +26 -26
- data/lib/solargraph/language_server/message/text_document/formatting.rb +131 -126
- data/lib/solargraph/language_server/message/text_document/hover.rb +58 -54
- data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +34 -34
- data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +11 -11
- data/lib/solargraph/language_server/message/text_document/references.rb +16 -16
- data/lib/solargraph/language_server/message/text_document/rename.rb +19 -19
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +24 -29
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +24 -0
- data/lib/solargraph/language_server/message/text_document.rb +28 -28
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +35 -30
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +40 -33
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +24 -24
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
- data/lib/solargraph/language_server/message/workspace.rb +14 -14
- data/lib/solargraph/language_server/message.rb +94 -93
- data/lib/solargraph/language_server/message_types.rb +14 -14
- data/lib/solargraph/language_server/progress.rb +135 -0
- data/lib/solargraph/language_server/request.rb +24 -24
- data/lib/solargraph/language_server/symbol_kinds.rb +36 -36
- data/lib/solargraph/language_server/transport/adapter.rb +68 -53
- data/lib/solargraph/language_server/transport/data_reader.rb +74 -72
- data/lib/solargraph/language_server/transport.rb +13 -13
- data/lib/solargraph/language_server/uri_helpers.rb +49 -49
- data/lib/solargraph/language_server.rb +20 -19
- data/lib/solargraph/library.rb +663 -546
- data/lib/solargraph/location.rb +58 -37
- data/lib/solargraph/logging.rb +27 -27
- data/lib/solargraph/page.rb +89 -83
- data/lib/solargraph/parser/comment_ripper.rb +56 -52
- data/lib/solargraph/parser/node_methods.rb +83 -43
- data/lib/solargraph/parser/node_processor/base.rb +87 -77
- data/lib/solargraph/parser/node_processor.rb +45 -43
- data/lib/solargraph/parser/{legacy → parser_gem}/class_methods.rb +153 -135
- data/lib/solargraph/parser/{legacy → parser_gem}/flawed_builder.rb +18 -16
- data/lib/solargraph/parser/{legacy → parser_gem}/node_chainer.rb +164 -148
- data/lib/solargraph/parser/parser_gem/node_methods.rb +495 -0
- data/lib/solargraph/parser/{rubyvm → parser_gem}/node_processors/alias_node.rb +23 -23
- data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +57 -0
- data/lib/solargraph/parser/{rubyvm → parser_gem}/node_processors/begin_node.rb +15 -15
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/block_node.rb +43 -42
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/casgn_node.rb +35 -25
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/cvasgn_node.rb +23 -23
- data/lib/solargraph/parser/{rubyvm → parser_gem}/node_processors/def_node.rb +50 -63
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/defs_node.rb +36 -36
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/gvasgn_node.rb +23 -23
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/ivasgn_node.rb +38 -38
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/lvasgn_node.rb +28 -28
- data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +53 -0
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/namespace_node.rb +39 -39
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/orasgn_node.rb +16 -16
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/resbody_node.rb +36 -36
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +42 -0
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/send_node.rb +259 -257
- data/lib/solargraph/parser/{legacy → parser_gem}/node_processors/sym_node.rb +18 -18
- data/lib/solargraph/parser/parser_gem/node_processors.rb +56 -0
- data/lib/solargraph/parser/parser_gem.rb +12 -0
- data/lib/solargraph/parser/region.rb +66 -66
- data/lib/solargraph/parser/snippet.rb +15 -13
- data/lib/solargraph/parser.rb +22 -26
- data/lib/solargraph/pin/base.rb +378 -296
- data/lib/solargraph/pin/base_variable.rb +118 -84
- data/lib/solargraph/pin/block.rb +101 -72
- data/lib/solargraph/pin/callable.rb +147 -0
- data/lib/solargraph/pin/class_variable.rb +8 -8
- data/lib/solargraph/pin/closure.rb +57 -37
- data/lib/solargraph/pin/common.rb +70 -70
- data/lib/solargraph/pin/constant.rb +43 -43
- data/lib/solargraph/pin/conversions.rb +123 -96
- data/lib/solargraph/pin/delegated_method.rb +101 -0
- data/lib/solargraph/pin/documenting.rb +98 -105
- data/lib/solargraph/pin/duck_method.rb +16 -16
- data/lib/solargraph/pin/global_variable.rb +8 -8
- data/lib/solargraph/pin/instance_variable.rb +34 -30
- data/lib/solargraph/pin/keyword.rb +15 -15
- data/lib/solargraph/pin/keyword_param.rb +8 -8
- data/lib/solargraph/pin/local_variable.rb +67 -55
- data/lib/solargraph/pin/method.rb +527 -245
- data/lib/solargraph/pin/method_alias.rb +31 -31
- data/lib/solargraph/pin/namespace.rb +107 -91
- data/lib/solargraph/pin/parameter.rb +212 -201
- data/lib/solargraph/pin/proxy_type.rb +29 -29
- data/lib/solargraph/pin/reference/extend.rb +10 -10
- data/lib/solargraph/pin/reference/include.rb +10 -10
- data/lib/solargraph/pin/reference/override.rb +29 -29
- data/lib/solargraph/pin/reference/prepend.rb +10 -10
- data/lib/solargraph/pin/reference/require.rb +14 -14
- data/lib/solargraph/pin/reference/superclass.rb +10 -10
- data/lib/solargraph/pin/reference.rb +22 -14
- data/lib/solargraph/pin/search.rb +56 -56
- data/lib/solargraph/pin/signature.rb +17 -0
- data/lib/solargraph/pin/singleton.rb +11 -11
- data/lib/solargraph/pin/symbol.rb +47 -47
- data/lib/solargraph/pin.rb +41 -37
- data/lib/solargraph/position.rb +107 -100
- data/lib/solargraph/range.rb +98 -95
- data/lib/solargraph/rbs_map/conversions.rb +646 -0
- data/lib/solargraph/rbs_map/core_fills.rb +50 -0
- data/lib/solargraph/rbs_map/core_map.rb +28 -0
- data/lib/solargraph/rbs_map/stdlib_map.rb +33 -0
- data/lib/solargraph/rbs_map.rb +93 -0
- data/lib/solargraph/server_methods.rb +16 -16
- data/lib/solargraph/shell.rb +269 -226
- data/lib/solargraph/source/chain/array.rb +33 -0
- data/lib/solargraph/source/chain/block_symbol.rb +13 -0
- data/lib/solargraph/source/chain/block_variable.rb +13 -13
- data/lib/solargraph/source/chain/call.rb +303 -204
- data/lib/solargraph/source/chain/class_variable.rb +13 -13
- data/lib/solargraph/source/chain/constant.rb +89 -75
- data/lib/solargraph/source/chain/global_variable.rb +13 -13
- data/lib/solargraph/source/chain/hash.rb +33 -28
- data/lib/solargraph/source/chain/head.rb +19 -19
- data/lib/solargraph/source/chain/if.rb +28 -0
- data/lib/solargraph/source/chain/instance_variable.rb +13 -13
- data/lib/solargraph/source/chain/link.rb +98 -71
- data/lib/solargraph/source/chain/literal.rb +28 -23
- data/lib/solargraph/source/chain/or.rb +23 -23
- data/lib/solargraph/source/chain/q_call.rb +11 -11
- data/lib/solargraph/source/chain/variable.rb +13 -13
- data/lib/solargraph/source/chain/z_super.rb +30 -30
- data/lib/solargraph/source/chain.rb +252 -164
- data/lib/solargraph/source/change.rb +82 -79
- data/lib/solargraph/source/cursor.rb +167 -164
- data/lib/solargraph/source/source_chainer.rb +194 -191
- data/lib/solargraph/source/updater.rb +55 -54
- data/lib/solargraph/source.rb +495 -522
- data/lib/solargraph/source_map/clip.rb +232 -224
- data/lib/solargraph/source_map/completion.rb +23 -23
- data/lib/solargraph/source_map/data.rb +30 -0
- data/lib/solargraph/source_map/mapper.rb +255 -212
- data/lib/solargraph/source_map.rb +217 -180
- data/lib/solargraph/type_checker/checks.rb +120 -99
- data/lib/solargraph/type_checker/param_def.rb +35 -35
- data/lib/solargraph/type_checker/problem.rb +32 -32
- data/lib/solargraph/type_checker/rules.rb +62 -57
- data/lib/solargraph/type_checker.rb +672 -543
- data/lib/solargraph/version.rb +5 -5
- data/lib/solargraph/views/environment.erb +56 -58
- data/lib/solargraph/workspace/config.rb +239 -231
- data/lib/solargraph/workspace.rb +239 -215
- data/lib/solargraph/yard_map/cache.rb +25 -19
- data/lib/solargraph/yard_map/helpers.rb +16 -16
- data/lib/solargraph/yard_map/mapper/to_constant.rb +26 -25
- data/lib/solargraph/yard_map/mapper/to_method.rb +94 -78
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +28 -27
- data/lib/solargraph/yard_map/mapper.rb +78 -77
- data/lib/solargraph/yard_map/to_method.rb +86 -79
- data/lib/solargraph/yard_map.rb +18 -460
- data/lib/solargraph/yard_tags.rb +20 -0
- data/lib/solargraph/yardoc.rb +52 -0
- data/lib/solargraph.rb +72 -69
- data/solargraph.gemspec +21 -10
- metadata +184 -115
- data/.travis.yml +0 -19
- data/lib/solargraph/api_map/bundler_methods.rb +0 -22
- data/lib/solargraph/compat.rb +0 -37
- data/lib/solargraph/convention/rspec.rb +0 -30
- data/lib/solargraph/documentor.rb +0 -76
- data/lib/solargraph/language_server/host/cataloger.rb +0 -56
- data/lib/solargraph/parser/legacy/node_methods.rb +0 -325
- data/lib/solargraph/parser/legacy/node_processors/alias_node.rb +0 -23
- data/lib/solargraph/parser/legacy/node_processors/args_node.rb +0 -35
- data/lib/solargraph/parser/legacy/node_processors/begin_node.rb +0 -15
- data/lib/solargraph/parser/legacy/node_processors/def_node.rb +0 -63
- data/lib/solargraph/parser/legacy/node_processors/sclass_node.rb +0 -21
- data/lib/solargraph/parser/legacy/node_processors.rb +0 -54
- data/lib/solargraph/parser/legacy.rb +0 -12
- data/lib/solargraph/parser/rubyvm/class_methods.rb +0 -144
- data/lib/solargraph/parser/rubyvm/node_chainer.rb +0 -160
- data/lib/solargraph/parser/rubyvm/node_methods.rb +0 -315
- data/lib/solargraph/parser/rubyvm/node_processors/args_node.rb +0 -85
- data/lib/solargraph/parser/rubyvm/node_processors/block_node.rb +0 -42
- data/lib/solargraph/parser/rubyvm/node_processors/casgn_node.rb +0 -22
- data/lib/solargraph/parser/rubyvm/node_processors/cvasgn_node.rb +0 -23
- data/lib/solargraph/parser/rubyvm/node_processors/defs_node.rb +0 -57
- data/lib/solargraph/parser/rubyvm/node_processors/gvasgn_node.rb +0 -23
- data/lib/solargraph/parser/rubyvm/node_processors/ivasgn_node.rb +0 -38
- data/lib/solargraph/parser/rubyvm/node_processors/kw_arg_node.rb +0 -39
- data/lib/solargraph/parser/rubyvm/node_processors/lit_node.rb +0 -20
- data/lib/solargraph/parser/rubyvm/node_processors/lvasgn_node.rb +0 -27
- data/lib/solargraph/parser/rubyvm/node_processors/namespace_node.rb +0 -39
- data/lib/solargraph/parser/rubyvm/node_processors/opt_arg_node.rb +0 -26
- data/lib/solargraph/parser/rubyvm/node_processors/orasgn_node.rb +0 -15
- data/lib/solargraph/parser/rubyvm/node_processors/resbody_node.rb +0 -45
- data/lib/solargraph/parser/rubyvm/node_processors/sclass_node.rb +0 -21
- data/lib/solargraph/parser/rubyvm/node_processors/scope_node.rb +0 -15
- data/lib/solargraph/parser/rubyvm/node_processors/send_node.rb +0 -277
- data/lib/solargraph/parser/rubyvm/node_processors/sym_node.rb +0 -18
- data/lib/solargraph/parser/rubyvm/node_processors.rb +0 -63
- data/lib/solargraph/parser/rubyvm.rb +0 -40
- data/lib/solargraph/yard_map/core_docs.rb +0 -170
- data/lib/solargraph/yard_map/core_fills.rb +0 -208
- data/lib/solargraph/yard_map/core_gen.rb +0 -76
- data/lib/solargraph/yard_map/rdoc_to_yard.rb +0 -140
- data/lib/solargraph/yard_map/stdlib_fills.rb +0 -43
- data/lib/yard-solargraph.rb +0 -33
- data/yardoc/2.2.2.tar.gz +0 -0
@@ -1,33 +1,33 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Solargraph
|
4
|
-
module Convention
|
5
|
-
# The base class for Conventions.
|
6
|
-
#
|
7
|
-
# A Convention provides Environs that customize ApiMaps with additional
|
8
|
-
# pins and other information. Subclasses should implement the `local` and
|
9
|
-
# `global` methods as necessary.
|
10
|
-
#
|
11
|
-
class Base
|
12
|
-
EMPTY_ENVIRON = Environ.new
|
13
|
-
|
14
|
-
# The Environ for a source map.
|
15
|
-
# Subclasses can override this method.
|
16
|
-
#
|
17
|
-
# @param source_map [SourceMap]
|
18
|
-
# @return [Environ]
|
19
|
-
def local source_map
|
20
|
-
EMPTY_ENVIRON
|
21
|
-
end
|
22
|
-
|
23
|
-
# The Environ for a YARD map.
|
24
|
-
# Subclasses can override this method.
|
25
|
-
#
|
26
|
-
# @param yard_map [YardMap]
|
27
|
-
# @return [Environ]
|
28
|
-
def global yard_map
|
29
|
-
EMPTY_ENVIRON
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Solargraph
|
4
|
+
module Convention
|
5
|
+
# The base class for Conventions.
|
6
|
+
#
|
7
|
+
# A Convention provides Environs that customize ApiMaps with additional
|
8
|
+
# pins and other information. Subclasses should implement the `local` and
|
9
|
+
# `global` methods as necessary.
|
10
|
+
#
|
11
|
+
class Base
|
12
|
+
EMPTY_ENVIRON = Environ.new
|
13
|
+
|
14
|
+
# The Environ for a source map.
|
15
|
+
# Subclasses can override this method.
|
16
|
+
#
|
17
|
+
# @param source_map [SourceMap]
|
18
|
+
# @return [Environ]
|
19
|
+
def local source_map
|
20
|
+
EMPTY_ENVIRON
|
21
|
+
end
|
22
|
+
|
23
|
+
# The Environ for a YARD map.
|
24
|
+
# Subclasses can override this method.
|
25
|
+
#
|
26
|
+
# @param yard_map [YardMap]
|
27
|
+
# @return [Environ]
|
28
|
+
def global yard_map
|
29
|
+
EMPTY_ENVIRON
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -1,15 +1,15 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Solargraph
|
4
|
-
module Convention
|
5
|
-
class Gemfile < Base
|
6
|
-
def local source_map
|
7
|
-
return EMPTY_ENVIRON unless File.basename(source_map.filename) == 'Gemfile'
|
8
|
-
@environ ||= Environ.new(
|
9
|
-
requires: ['bundler'],
|
10
|
-
domains: ['Bundler::Dsl']
|
11
|
-
)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Solargraph
|
4
|
+
module Convention
|
5
|
+
class Gemfile < Base
|
6
|
+
def local source_map
|
7
|
+
return EMPTY_ENVIRON unless File.basename(source_map.filename) == 'Gemfile'
|
8
|
+
@environ ||= Environ.new(
|
9
|
+
requires: ['bundler'],
|
10
|
+
domains: ['Bundler::Dsl']
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,22 +1,22 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Solargraph
|
4
|
-
module Convention
|
5
|
-
class Gemspec < Base
|
6
|
-
def local source_map
|
7
|
-
return EMPTY_ENVIRON unless File.basename(source_map.filename).end_with?('.gemspec')
|
8
|
-
@environ ||= Environ.new(
|
9
|
-
requires: ['rubygems'],
|
10
|
-
pins: [
|
11
|
-
Solargraph::Pin::Reference::Override.from_comment(
|
12
|
-
'Gem::Specification.new',
|
13
|
-
%(
|
14
|
-
@yieldparam [self]
|
15
|
-
)
|
16
|
-
)
|
17
|
-
]
|
18
|
-
)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Solargraph
|
4
|
+
module Convention
|
5
|
+
class Gemspec < Base
|
6
|
+
def local source_map
|
7
|
+
return EMPTY_ENVIRON unless File.basename(source_map.filename).end_with?('.gemspec')
|
8
|
+
@environ ||= Environ.new(
|
9
|
+
requires: ['rubygems'],
|
10
|
+
pins: [
|
11
|
+
Solargraph::Pin::Reference::Override.from_comment(
|
12
|
+
'Gem::Specification.new',
|
13
|
+
%(
|
14
|
+
@yieldparam [self]
|
15
|
+
)
|
16
|
+
)
|
17
|
+
]
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Solargraph
|
4
|
+
module Convention
|
5
|
+
class Rakefile < Base
|
6
|
+
def local source_map
|
7
|
+
basename = File.basename(source_map.filename)
|
8
|
+
return EMPTY_ENVIRON unless basename.end_with?('.rake') || basename == 'Rakefile'
|
9
|
+
|
10
|
+
@environ ||= Environ.new(
|
11
|
+
requires: ['rake'],
|
12
|
+
domains: ['Rake::DSL']
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,47 +1,47 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
#
|
7
|
-
#
|
8
|
-
|
9
|
-
|
10
|
-
autoload :
|
11
|
-
autoload :
|
12
|
-
autoload :
|
13
|
-
|
14
|
-
|
15
|
-
@@conventions = Set.new
|
16
|
-
|
17
|
-
# @param convention [Class<Convention::Base>]
|
18
|
-
# @return [void]
|
19
|
-
def self.register convention
|
20
|
-
@@conventions.add convention.new
|
21
|
-
end
|
22
|
-
|
23
|
-
# @param source_map [SourceMap]
|
24
|
-
# @return [Environ]
|
25
|
-
def self.for_local(source_map)
|
26
|
-
result = Environ.new
|
27
|
-
@@conventions.each do |conv|
|
28
|
-
result.merge conv.local(source_map)
|
29
|
-
end
|
30
|
-
result
|
31
|
-
end
|
32
|
-
|
33
|
-
# @param yard_map [YardMap]
|
34
|
-
# @return [Environ]
|
35
|
-
def self.for_global(yard_map)
|
36
|
-
result = Environ.new
|
37
|
-
@@conventions.each do |conv|
|
38
|
-
result.merge conv.global(yard_map)
|
39
|
-
end
|
40
|
-
result
|
41
|
-
end
|
42
|
-
|
43
|
-
register Gemfile
|
44
|
-
register Gemspec
|
45
|
-
register
|
46
|
-
end
|
47
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
|
4
|
+
module Solargraph
|
5
|
+
# Conventions provide a way to modify an ApiMap based on expectations about
|
6
|
+
# one of its sources.
|
7
|
+
#
|
8
|
+
module Convention
|
9
|
+
autoload :Base, 'solargraph/convention/base'
|
10
|
+
autoload :Gemfile, 'solargraph/convention/gemfile'
|
11
|
+
autoload :Gemspec, 'solargraph/convention/gemspec'
|
12
|
+
autoload :Rakefile, 'solargraph/convention/rakefile'
|
13
|
+
|
14
|
+
# @type [Set<Convention::Base>]
|
15
|
+
@@conventions = Set.new
|
16
|
+
|
17
|
+
# @param convention [Class<Convention::Base>]
|
18
|
+
# @return [void]
|
19
|
+
def self.register convention
|
20
|
+
@@conventions.add convention.new
|
21
|
+
end
|
22
|
+
|
23
|
+
# @param source_map [SourceMap]
|
24
|
+
# @return [Environ]
|
25
|
+
def self.for_local(source_map)
|
26
|
+
result = Environ.new
|
27
|
+
@@conventions.each do |conv|
|
28
|
+
result.merge conv.local(source_map)
|
29
|
+
end
|
30
|
+
result
|
31
|
+
end
|
32
|
+
|
33
|
+
# @param yard_map [YardMap]
|
34
|
+
# @return [Environ]
|
35
|
+
def self.for_global(yard_map)
|
36
|
+
result = Environ.new
|
37
|
+
@@conventions.each do |conv|
|
38
|
+
result.merge conv.global(yard_map)
|
39
|
+
end
|
40
|
+
result
|
41
|
+
end
|
42
|
+
|
43
|
+
register Gemfile
|
44
|
+
register Gemspec
|
45
|
+
register Rakefile
|
46
|
+
end
|
47
|
+
end
|
@@ -1,12 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module ReverseMarkdown
|
4
|
+
module Converters
|
5
|
+
class Dd < Base
|
6
|
+
# @return [String]
|
7
|
+
# @param node [Nokogiri::XML::Element]
|
8
|
+
# @param state [Hash]
|
9
|
+
def convert node, state = {}
|
10
|
+
content = treat_children(node, state)
|
11
|
+
": #{content.strip}\n"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
ReverseMarkdown::Converters.register :dd, ReverseMarkdown::Converters::Dd.new
|
@@ -1,12 +1,15 @@
|
|
1
|
-
module ReverseMarkdown
|
2
|
-
module Converters
|
3
|
-
class Dl < Base
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
|
1
|
+
module ReverseMarkdown
|
2
|
+
module Converters
|
3
|
+
class Dl < Base
|
4
|
+
# @return [String]
|
5
|
+
# @param node [Nokogiri::XML::Element]
|
6
|
+
# @param state [Hash]
|
7
|
+
def convert node, state = {}
|
8
|
+
content = treat_children(node, state).strip
|
9
|
+
"\n\n#{content}\n"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
ReverseMarkdown::Converters.register :dl, ReverseMarkdown::Converters::Dl.new
|
@@ -1,12 +1,15 @@
|
|
1
|
-
module ReverseMarkdown
|
2
|
-
module Converters
|
3
|
-
class Dt < Base
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
|
1
|
+
module ReverseMarkdown
|
2
|
+
module Converters
|
3
|
+
class Dt < Base
|
4
|
+
# @return [String]
|
5
|
+
# @param node [Nokogiri::XML::Element]
|
6
|
+
# @param state [Hash]
|
7
|
+
def convert node, state = {}
|
8
|
+
content = treat_children(node, state)
|
9
|
+
"\n#{content.strip}\n"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
ReverseMarkdown::Converters.register :dt, ReverseMarkdown::Converters::Dt.new
|
@@ -1 +1 @@
|
|
1
|
-
ReverseMarkdown::Converters.register :tt, ReverseMarkdown::Converters::Code.new
|
1
|
+
ReverseMarkdown::Converters.register :tt, ReverseMarkdown::Converters::Code.new
|
@@ -1,29 +1,29 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Solargraph
|
4
|
-
module Diagnostics
|
5
|
-
# The base class for diagnostics reporters.
|
6
|
-
#
|
7
|
-
class Base
|
8
|
-
# @return [Array<String>]
|
9
|
-
attr_reader :args
|
10
|
-
|
11
|
-
def initialize *args
|
12
|
-
@args = args
|
13
|
-
end
|
14
|
-
|
15
|
-
# Perform a diagnosis on a Source within the context of an ApiMap.
|
16
|
-
# The result is an array of hash objects that conform to the LSP's
|
17
|
-
# Diagnostic specification.
|
18
|
-
#
|
19
|
-
# Subclasses should override this method.
|
20
|
-
#
|
21
|
-
# @param source [Solargraph::Source]
|
22
|
-
# @param api_map [Solargraph::ApiMap]
|
23
|
-
# @return [Array<Hash>]
|
24
|
-
def diagnose source, api_map
|
25
|
-
[]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Solargraph
|
4
|
+
module Diagnostics
|
5
|
+
# The base class for diagnostics reporters.
|
6
|
+
#
|
7
|
+
class Base
|
8
|
+
# @return [Array<String>]
|
9
|
+
attr_reader :args
|
10
|
+
|
11
|
+
def initialize *args
|
12
|
+
@args = args
|
13
|
+
end
|
14
|
+
|
15
|
+
# Perform a diagnosis on a Source within the context of an ApiMap.
|
16
|
+
# The result is an array of hash objects that conform to the LSP's
|
17
|
+
# Diagnostic specification.
|
18
|
+
#
|
19
|
+
# Subclasses should override this method.
|
20
|
+
#
|
21
|
+
# @param source [Solargraph::Source]
|
22
|
+
# @param api_map [Solargraph::ApiMap]
|
23
|
+
# @return [Array<Hash>]
|
24
|
+
def diagnose source, api_map
|
25
|
+
[]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -1,53 +1,53 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Solargraph
|
4
|
-
module Diagnostics
|
5
|
-
# RequireNotFound reports required paths that could not be resolved to
|
6
|
-
# either a file in the workspace or a gem.
|
7
|
-
#
|
8
|
-
class RequireNotFound < Base
|
9
|
-
def diagnose source, api_map
|
10
|
-
return [] unless source.parsed? && source.synchronized?
|
11
|
-
result = []
|
12
|
-
refs = {}
|
13
|
-
map = api_map.source_map(source.filename)
|
14
|
-
map.requires.each { |ref| refs[ref.name] = ref }
|
15
|
-
api_map.missing_docs.each do |r|
|
16
|
-
next unless refs.key?(r)
|
17
|
-
result.push docs_error(r, refs[r].location)
|
18
|
-
end
|
19
|
-
api_map.unresolved_requires.each do |r|
|
20
|
-
next unless refs.key?(r)
|
21
|
-
result.push require_error(r, refs[r].location)
|
22
|
-
end
|
23
|
-
result
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
# @param path [String]
|
29
|
-
# @param location [Location]
|
30
|
-
# @return [Hash]
|
31
|
-
def docs_error path, location
|
32
|
-
{
|
33
|
-
range: location.range.to_hash,
|
34
|
-
severity: Diagnostics::Severities::WARNING,
|
35
|
-
source: 'RequireNotFound',
|
36
|
-
message: "YARD docs not found for #{path}"
|
37
|
-
}
|
38
|
-
end
|
39
|
-
|
40
|
-
# @param path [String]
|
41
|
-
# @param location [Location]
|
42
|
-
# @return [Hash]
|
43
|
-
def require_error path, location
|
44
|
-
{
|
45
|
-
range: location.range.to_hash,
|
46
|
-
severity: Diagnostics::Severities::WARNING,
|
47
|
-
source: 'RequireNotFound',
|
48
|
-
message: "Required path #{path} could not be resolved."
|
49
|
-
}
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Solargraph
|
4
|
+
module Diagnostics
|
5
|
+
# RequireNotFound reports required paths that could not be resolved to
|
6
|
+
# either a file in the workspace or a gem.
|
7
|
+
#
|
8
|
+
class RequireNotFound < Base
|
9
|
+
def diagnose source, api_map
|
10
|
+
return [] unless source.parsed? && source.synchronized?
|
11
|
+
result = []
|
12
|
+
refs = {}
|
13
|
+
map = api_map.source_map(source.filename)
|
14
|
+
map.requires.each { |ref| refs[ref.name] = ref }
|
15
|
+
api_map.missing_docs.each do |r|
|
16
|
+
next unless refs.key?(r)
|
17
|
+
result.push docs_error(r, refs[r].location)
|
18
|
+
end
|
19
|
+
api_map.unresolved_requires.each do |r|
|
20
|
+
next unless refs.key?(r)
|
21
|
+
result.push require_error(r, refs[r].location)
|
22
|
+
end
|
23
|
+
result
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
# @param path [String]
|
29
|
+
# @param location [Location]
|
30
|
+
# @return [Hash]
|
31
|
+
def docs_error path, location
|
32
|
+
{
|
33
|
+
range: location.range.to_hash,
|
34
|
+
severity: Diagnostics::Severities::WARNING,
|
35
|
+
source: 'RequireNotFound',
|
36
|
+
message: "YARD docs not found for #{path}"
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
# @param path [String]
|
41
|
+
# @param location [Location]
|
42
|
+
# @return [Hash]
|
43
|
+
def require_error path, location
|
44
|
+
{
|
45
|
+
range: location.range.to_hash,
|
46
|
+
severity: Diagnostics::Severities::WARNING,
|
47
|
+
source: 'RequireNotFound',
|
48
|
+
message: "Required path #{path} could not be resolved."
|
49
|
+
}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|