solargraph 0.58.0 → 0.58.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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -0
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +9 -0
  5. data/bin/solargraph +8 -8
  6. data/lib/solargraph/api_map/cache.rb +110 -110
  7. data/lib/solargraph/api_map/constants.rb +279 -279
  8. data/lib/solargraph/api_map/index.rb +193 -193
  9. data/lib/solargraph/api_map/source_to_yard.rb +97 -97
  10. data/lib/solargraph/api_map/store.rb +384 -384
  11. data/lib/solargraph/api_map.rb +945 -945
  12. data/lib/solargraph/complex_type/type_methods.rb +228 -228
  13. data/lib/solargraph/complex_type/unique_type.rb +482 -482
  14. data/lib/solargraph/complex_type.rb +444 -444
  15. data/lib/solargraph/convention/data_definition/data_definition_node.rb +91 -91
  16. data/lib/solargraph/convention/data_definition.rb +105 -105
  17. data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +61 -61
  18. data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +102 -102
  19. data/lib/solargraph/convention/struct_definition.rb +164 -164
  20. data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
  21. data/lib/solargraph/diagnostics/rubocop.rb +118 -118
  22. data/lib/solargraph/diagnostics/rubocop_helpers.rb +68 -68
  23. data/lib/solargraph/diagnostics/type_check.rb +55 -55
  24. data/lib/solargraph/doc_map.rb +439 -439
  25. data/lib/solargraph/equality.rb +34 -34
  26. data/lib/solargraph/gem_pins.rb +98 -98
  27. data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
  28. data/lib/solargraph/language_server/host/dispatch.rb +130 -130
  29. data/lib/solargraph/language_server/host/message_worker.rb +112 -112
  30. data/lib/solargraph/language_server/host/sources.rb +99 -99
  31. data/lib/solargraph/language_server/host.rb +878 -878
  32. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +114 -114
  33. data/lib/solargraph/language_server/message/extended/document.rb +23 -23
  34. data/lib/solargraph/language_server/message/text_document/completion.rb +56 -56
  35. data/lib/solargraph/language_server/message/text_document/definition.rb +40 -40
  36. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +26 -26
  37. data/lib/solargraph/language_server/message/text_document/formatting.rb +148 -148
  38. data/lib/solargraph/language_server/message/text_document/hover.rb +58 -58
  39. data/lib/solargraph/language_server/message/text_document/signature_help.rb +24 -24
  40. data/lib/solargraph/language_server/message/text_document/type_definition.rb +25 -25
  41. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
  42. data/lib/solargraph/library.rb +683 -683
  43. data/lib/solargraph/location.rb +82 -82
  44. data/lib/solargraph/logging.rb +37 -37
  45. data/lib/solargraph/parser/comment_ripper.rb +69 -69
  46. data/lib/solargraph/parser/flow_sensitive_typing.rb +255 -255
  47. data/lib/solargraph/parser/node_processor/base.rb +92 -92
  48. data/lib/solargraph/parser/node_processor.rb +62 -62
  49. data/lib/solargraph/parser/parser_gem/class_methods.rb +149 -149
  50. data/lib/solargraph/parser/parser_gem/node_chainer.rb +166 -166
  51. data/lib/solargraph/parser/parser_gem/node_methods.rb +486 -486
  52. data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +22 -22
  53. data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +59 -59
  54. data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +15 -15
  55. data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +46 -46
  56. data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +53 -53
  57. data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +23 -23
  58. data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +40 -40
  59. data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +29 -29
  60. data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +59 -59
  61. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +98 -98
  62. data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +17 -17
  63. data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +38 -38
  64. data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +52 -52
  65. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +291 -291
  66. data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -29
  67. data/lib/solargraph/parser/parser_gem/node_processors.rb +70 -70
  68. data/lib/solargraph/parser/region.rb +69 -69
  69. data/lib/solargraph/parser/snippet.rb +17 -17
  70. data/lib/solargraph/pin/base.rb +729 -729
  71. data/lib/solargraph/pin/base_variable.rb +126 -126
  72. data/lib/solargraph/pin/block.rb +104 -104
  73. data/lib/solargraph/pin/breakable.rb +9 -9
  74. data/lib/solargraph/pin/callable.rb +231 -231
  75. data/lib/solargraph/pin/closure.rb +72 -72
  76. data/lib/solargraph/pin/common.rb +79 -79
  77. data/lib/solargraph/pin/conversions.rb +123 -123
  78. data/lib/solargraph/pin/delegated_method.rb +120 -120
  79. data/lib/solargraph/pin/documenting.rb +114 -114
  80. data/lib/solargraph/pin/instance_variable.rb +34 -34
  81. data/lib/solargraph/pin/keyword.rb +20 -20
  82. data/lib/solargraph/pin/local_variable.rb +75 -75
  83. data/lib/solargraph/pin/method.rb +672 -672
  84. data/lib/solargraph/pin/method_alias.rb +34 -34
  85. data/lib/solargraph/pin/namespace.rb +115 -115
  86. data/lib/solargraph/pin/parameter.rb +275 -275
  87. data/lib/solargraph/pin/proxy_type.rb +39 -39
  88. data/lib/solargraph/pin/reference/override.rb +47 -47
  89. data/lib/solargraph/pin/reference/superclass.rb +15 -15
  90. data/lib/solargraph/pin/reference.rb +39 -39
  91. data/lib/solargraph/pin/search.rb +61 -61
  92. data/lib/solargraph/pin/signature.rb +61 -61
  93. data/lib/solargraph/pin/symbol.rb +53 -53
  94. data/lib/solargraph/pin/until.rb +18 -18
  95. data/lib/solargraph/pin/while.rb +18 -18
  96. data/lib/solargraph/pin.rb +44 -44
  97. data/lib/solargraph/pin_cache.rb +245 -245
  98. data/lib/solargraph/position.rb +132 -119
  99. data/lib/solargraph/range.rb +112 -112
  100. data/lib/solargraph/rbs_map/conversions.rb +823 -823
  101. data/lib/solargraph/rbs_map/core_map.rb +58 -58
  102. data/lib/solargraph/rbs_map/stdlib_map.rb +43 -43
  103. data/lib/solargraph/rbs_map.rb +163 -163
  104. data/lib/solargraph/shell.rb +352 -352
  105. data/lib/solargraph/source/chain/call.rb +337 -337
  106. data/lib/solargraph/source/chain/constant.rb +26 -26
  107. data/lib/solargraph/source/chain/hash.rb +34 -34
  108. data/lib/solargraph/source/chain/if.rb +28 -28
  109. data/lib/solargraph/source/chain/instance_variable.rb +13 -13
  110. data/lib/solargraph/source/chain/literal.rb +48 -48
  111. data/lib/solargraph/source/chain/or.rb +23 -23
  112. data/lib/solargraph/source/chain.rb +291 -291
  113. data/lib/solargraph/source/change.rb +82 -82
  114. data/lib/solargraph/source/cursor.rb +166 -166
  115. data/lib/solargraph/source/encoding_fixes.rb +23 -23
  116. data/lib/solargraph/source/source_chainer.rb +194 -194
  117. data/lib/solargraph/source/updater.rb +55 -55
  118. data/lib/solargraph/source.rb +498 -498
  119. data/lib/solargraph/source_map/clip.rb +226 -226
  120. data/lib/solargraph/source_map/data.rb +34 -34
  121. data/lib/solargraph/source_map/mapper.rb +259 -259
  122. data/lib/solargraph/source_map.rb +212 -212
  123. data/lib/solargraph/type_checker/checks.rb +124 -124
  124. data/lib/solargraph/type_checker/param_def.rb +37 -37
  125. data/lib/solargraph/type_checker/problem.rb +32 -32
  126. data/lib/solargraph/type_checker/rules.rb +84 -84
  127. data/lib/solargraph/type_checker.rb +814 -814
  128. data/lib/solargraph/version.rb +5 -5
  129. data/lib/solargraph/workspace/config.rb +255 -255
  130. data/lib/solargraph/workspace/require_paths.rb +97 -97
  131. data/lib/solargraph/workspace.rb +220 -220
  132. data/lib/solargraph/yard_map/helpers.rb +44 -44
  133. data/lib/solargraph/yard_map/mapper/to_method.rb +130 -130
  134. data/lib/solargraph/yard_map/mapper/to_namespace.rb +31 -31
  135. data/lib/solargraph/yard_map/mapper.rb +79 -79
  136. data/lib/solargraph/yard_map/to_method.rb +89 -89
  137. data/lib/solargraph/yardoc.rb +87 -87
  138. data/lib/solargraph.rb +105 -105
  139. data/rbs_collection.yaml +1 -1
  140. metadata +13 -12
  141. /data/{sig → rbs}/shims/ast/0/node.rbs +0 -0
  142. /data/{sig → rbs}/shims/ast/2.4/.rbs_meta.yaml +0 -0
  143. /data/{sig → rbs}/shims/ast/2.4/ast.rbs +0 -0
  144. /data/{sig → rbs}/shims/parser/3.2.0.1/builders/default.rbs +0 -0
  145. /data/{sig → rbs}/shims/parser/3.2.0.1/manifest.yaml +0 -0
  146. /data/{sig → rbs}/shims/parser/3.2.0.1/parser.rbs +0 -0
  147. /data/{sig → rbs}/shims/parser/3.2.0.1/polyfill.rbs +0 -0
  148. /data/{sig → rbs}/shims/thor/1.2.0.1/.rbs_meta.yaml +0 -0
  149. /data/{sig → rbs}/shims/thor/1.2.0.1/manifest.yaml +0 -0
  150. /data/{sig → rbs}/shims/thor/1.2.0.1/thor.rbs +0 -0
@@ -1,34 +1,34 @@
1
- # frozen_string_literal: true
2
-
3
- module Solargraph
4
- module Pin
5
- # Use this class to track method aliases for later remapping. Common
6
- # examples that defer mapping are aliases for superclass methods or
7
- # methods from included modules.
8
- #
9
- class MethodAlias < Method
10
- # @return [::Symbol]
11
- attr_reader :scope
12
-
13
- # @return [String]
14
- attr_reader :original
15
-
16
- # @param scope [::Symbol]
17
- # @param original [String, nil] The name of the original method
18
- # @param splat [Hash] Additional options supported by superclasses
19
- def initialize scope: :instance, original: nil, **splat
20
- super(**splat)
21
- @scope = scope
22
- @original = original
23
- end
24
-
25
- def visibility
26
- :public
27
- end
28
-
29
- def path
30
- @path ||= namespace + (scope == :instance ? '#' : '.') + name
31
- end
32
- end
33
- end
34
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Solargraph
4
+ module Pin
5
+ # Use this class to track method aliases for later remapping. Common
6
+ # examples that defer mapping are aliases for superclass methods or
7
+ # methods from included modules.
8
+ #
9
+ class MethodAlias < Method
10
+ # @return [::Symbol]
11
+ attr_reader :scope
12
+
13
+ # @return [String]
14
+ attr_reader :original
15
+
16
+ # @param scope [::Symbol]
17
+ # @param original [String, nil] The name of the original method
18
+ # @param splat [Hash] Additional options supported by superclasses
19
+ def initialize scope: :instance, original: nil, **splat
20
+ super(**splat)
21
+ @scope = scope
22
+ @original = original
23
+ end
24
+
25
+ def visibility
26
+ :public
27
+ end
28
+
29
+ def path
30
+ @path ||= namespace + (scope == :instance ? '#' : '.') + name
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,115 +1,115 @@
1
- # frozen_string_literal: true
2
-
3
- require 'solargraph/yard_tags'
4
-
5
- module Solargraph
6
- module Pin
7
- class Namespace < Closure
8
- # @return [::Symbol] :public or :private
9
- attr_reader :visibility
10
-
11
- # @return [::Symbol] :class or :module
12
- attr_reader :type
13
-
14
- # does not assert like super, as a namespace without a closure
15
- # may be the root level namespace, or it may not yet be
16
- # qualified
17
- attr_reader :closure
18
-
19
- # @param type [::Symbol] :class or :module
20
- # @param visibility [::Symbol] :public or :private
21
- # @param gates [::Array<String>]
22
- # @param name [String]
23
- def initialize type: :class, visibility: :public, gates: [''], name: '', **splat
24
- # super(location, namespace, name, comments)
25
- super(**splat, name: name)
26
- @type = type
27
- @visibility = visibility
28
- if name.start_with?('::')
29
- # @type [String]
30
- name = name[2..-1] || ''
31
- @closure = Solargraph::Pin::ROOT_PIN
32
- end
33
- @open_gates = gates
34
- if name.include?('::')
35
- # In this case, a chained namespace was opened (e.g., Foo::Bar)
36
- # but Foo does not exist.
37
- parts = name.split('::')
38
- name = parts.pop
39
- closure_name = if [Solargraph::Pin::ROOT_PIN, nil].include?(closure)
40
- ''
41
- else
42
- closure.full_context.namespace + '::'
43
- end
44
- closure_name += parts.join('::')
45
- @closure = Pin::Namespace.new(name: closure_name, gates: [parts.join('::')], source: :namespace)
46
- @context = nil
47
- end
48
- @name = name
49
- end
50
-
51
- def to_rbs
52
- "#{@type.to_s} #{return_type.all_params.first.to_rbs}#{rbs_generics}".strip
53
- end
54
-
55
- def inner_desc
56
- if name.nil? || name.empty?
57
- '(top-level)'
58
- else
59
- super
60
- end
61
- end
62
-
63
- def namespace
64
- context.namespace
65
- end
66
-
67
- def full_context
68
- @full_context ||= ComplexType.try_parse("::#{type.to_s.capitalize}<#{path}>")
69
- end
70
-
71
- def binder
72
- full_context
73
- end
74
-
75
- def scope
76
- context.scope
77
- end
78
-
79
- def completion_item_kind
80
- (type == :class ? LanguageServer::CompletionItemKinds::CLASS : LanguageServer::CompletionItemKinds::MODULE)
81
- end
82
-
83
- # @return [Integer]
84
- def symbol_kind
85
- (type == :class ? LanguageServer::SymbolKinds::CLASS : LanguageServer::SymbolKinds::MODULE)
86
- end
87
-
88
- # @return [String]
89
- def path
90
- @path ||= (namespace.empty? ? '' : "#{namespace}::") + name
91
- end
92
-
93
- def return_type
94
- @return_type ||= ComplexType.try_parse( (type == :class ? '::Class' : '::Module') + "<::#{path}>")
95
- end
96
-
97
- # @return [Array<String>]
98
- def domains
99
- @domains ||= []
100
- end
101
-
102
- def typify api_map
103
- return_type
104
- end
105
-
106
- def gates
107
- @gates ||= if path.empty?
108
- @open_gates
109
- else
110
- [path] + @open_gates
111
- end
112
- end
113
- end
114
- end
115
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'solargraph/yard_tags'
4
+
5
+ module Solargraph
6
+ module Pin
7
+ class Namespace < Closure
8
+ # @return [::Symbol] :public or :private
9
+ attr_reader :visibility
10
+
11
+ # @return [::Symbol] :class or :module
12
+ attr_reader :type
13
+
14
+ # does not assert like super, as a namespace without a closure
15
+ # may be the root level namespace, or it may not yet be
16
+ # qualified
17
+ attr_reader :closure
18
+
19
+ # @param type [::Symbol] :class or :module
20
+ # @param visibility [::Symbol] :public or :private
21
+ # @param gates [::Array<String>]
22
+ # @param name [String]
23
+ def initialize type: :class, visibility: :public, gates: [''], name: '', **splat
24
+ # super(location, namespace, name, comments)
25
+ super(**splat, name: name)
26
+ @type = type
27
+ @visibility = visibility
28
+ if name.start_with?('::')
29
+ # @type [String]
30
+ name = name[2..-1] || ''
31
+ @closure = Solargraph::Pin::ROOT_PIN
32
+ end
33
+ @open_gates = gates
34
+ if name.include?('::')
35
+ # In this case, a chained namespace was opened (e.g., Foo::Bar)
36
+ # but Foo does not exist.
37
+ parts = name.split('::')
38
+ name = parts.pop
39
+ closure_name = if [Solargraph::Pin::ROOT_PIN, nil].include?(closure)
40
+ ''
41
+ else
42
+ closure.full_context.namespace + '::'
43
+ end
44
+ closure_name += parts.join('::')
45
+ @closure = Pin::Namespace.new(name: closure_name, gates: [parts.join('::')], source: :namespace)
46
+ @context = nil
47
+ end
48
+ @name = name
49
+ end
50
+
51
+ def to_rbs
52
+ "#{@type.to_s} #{return_type.all_params.first.to_rbs}#{rbs_generics}".strip
53
+ end
54
+
55
+ def inner_desc
56
+ if name.nil? || name.empty?
57
+ '(top-level)'
58
+ else
59
+ super
60
+ end
61
+ end
62
+
63
+ def namespace
64
+ context.namespace
65
+ end
66
+
67
+ def full_context
68
+ @full_context ||= ComplexType.try_parse("::#{type.to_s.capitalize}<#{path}>")
69
+ end
70
+
71
+ def binder
72
+ full_context
73
+ end
74
+
75
+ def scope
76
+ context.scope
77
+ end
78
+
79
+ def completion_item_kind
80
+ (type == :class ? LanguageServer::CompletionItemKinds::CLASS : LanguageServer::CompletionItemKinds::MODULE)
81
+ end
82
+
83
+ # @return [Integer]
84
+ def symbol_kind
85
+ (type == :class ? LanguageServer::SymbolKinds::CLASS : LanguageServer::SymbolKinds::MODULE)
86
+ end
87
+
88
+ # @return [String]
89
+ def path
90
+ @path ||= (namespace.empty? ? '' : "#{namespace}::") + name
91
+ end
92
+
93
+ def return_type
94
+ @return_type ||= ComplexType.try_parse( (type == :class ? '::Class' : '::Module') + "<::#{path}>")
95
+ end
96
+
97
+ # @return [Array<String>]
98
+ def domains
99
+ @domains ||= []
100
+ end
101
+
102
+ def typify api_map
103
+ return_type
104
+ end
105
+
106
+ def gates
107
+ @gates ||= if path.empty?
108
+ @open_gates
109
+ else
110
+ [path] + @open_gates
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end