solargraph 0.58.1 → 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 (147) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +7 -1
  4. data/lib/solargraph/api_map/cache.rb +110 -110
  5. data/lib/solargraph/api_map/constants.rb +279 -279
  6. data/lib/solargraph/api_map/index.rb +193 -193
  7. data/lib/solargraph/api_map/source_to_yard.rb +97 -97
  8. data/lib/solargraph/api_map/store.rb +384 -384
  9. data/lib/solargraph/api_map.rb +945 -945
  10. data/lib/solargraph/complex_type/type_methods.rb +228 -228
  11. data/lib/solargraph/complex_type/unique_type.rb +482 -482
  12. data/lib/solargraph/complex_type.rb +444 -444
  13. data/lib/solargraph/convention/data_definition/data_definition_node.rb +91 -91
  14. data/lib/solargraph/convention/data_definition.rb +105 -105
  15. data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +61 -61
  16. data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +102 -102
  17. data/lib/solargraph/convention/struct_definition.rb +164 -164
  18. data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
  19. data/lib/solargraph/diagnostics/rubocop.rb +118 -118
  20. data/lib/solargraph/diagnostics/rubocop_helpers.rb +68 -68
  21. data/lib/solargraph/diagnostics/type_check.rb +55 -55
  22. data/lib/solargraph/doc_map.rb +439 -439
  23. data/lib/solargraph/equality.rb +34 -34
  24. data/lib/solargraph/gem_pins.rb +98 -98
  25. data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
  26. data/lib/solargraph/language_server/host/dispatch.rb +130 -130
  27. data/lib/solargraph/language_server/host/message_worker.rb +112 -112
  28. data/lib/solargraph/language_server/host/sources.rb +99 -99
  29. data/lib/solargraph/language_server/host.rb +878 -878
  30. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +114 -114
  31. data/lib/solargraph/language_server/message/extended/document.rb +23 -23
  32. data/lib/solargraph/language_server/message/text_document/completion.rb +56 -56
  33. data/lib/solargraph/language_server/message/text_document/definition.rb +40 -40
  34. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +26 -26
  35. data/lib/solargraph/language_server/message/text_document/formatting.rb +148 -148
  36. data/lib/solargraph/language_server/message/text_document/hover.rb +58 -58
  37. data/lib/solargraph/language_server/message/text_document/signature_help.rb +24 -24
  38. data/lib/solargraph/language_server/message/text_document/type_definition.rb +25 -25
  39. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
  40. data/lib/solargraph/library.rb +683 -683
  41. data/lib/solargraph/location.rb +82 -82
  42. data/lib/solargraph/logging.rb +37 -37
  43. data/lib/solargraph/parser/comment_ripper.rb +69 -69
  44. data/lib/solargraph/parser/flow_sensitive_typing.rb +255 -255
  45. data/lib/solargraph/parser/node_processor/base.rb +92 -92
  46. data/lib/solargraph/parser/node_processor.rb +62 -62
  47. data/lib/solargraph/parser/parser_gem/class_methods.rb +149 -149
  48. data/lib/solargraph/parser/parser_gem/node_chainer.rb +166 -166
  49. data/lib/solargraph/parser/parser_gem/node_methods.rb +486 -486
  50. data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +22 -22
  51. data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +59 -59
  52. data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +15 -15
  53. data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +46 -46
  54. data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +53 -53
  55. data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +23 -23
  56. data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +40 -40
  57. data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +29 -29
  58. data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +59 -59
  59. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +98 -98
  60. data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +17 -17
  61. data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +38 -38
  62. data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +52 -52
  63. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +291 -291
  64. data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -29
  65. data/lib/solargraph/parser/parser_gem/node_processors.rb +70 -70
  66. data/lib/solargraph/parser/region.rb +69 -69
  67. data/lib/solargraph/parser/snippet.rb +17 -17
  68. data/lib/solargraph/pin/base.rb +729 -729
  69. data/lib/solargraph/pin/base_variable.rb +126 -126
  70. data/lib/solargraph/pin/block.rb +104 -104
  71. data/lib/solargraph/pin/breakable.rb +9 -9
  72. data/lib/solargraph/pin/callable.rb +231 -231
  73. data/lib/solargraph/pin/closure.rb +72 -72
  74. data/lib/solargraph/pin/common.rb +79 -79
  75. data/lib/solargraph/pin/conversions.rb +123 -123
  76. data/lib/solargraph/pin/delegated_method.rb +120 -120
  77. data/lib/solargraph/pin/documenting.rb +114 -114
  78. data/lib/solargraph/pin/instance_variable.rb +34 -34
  79. data/lib/solargraph/pin/keyword.rb +20 -20
  80. data/lib/solargraph/pin/local_variable.rb +75 -75
  81. data/lib/solargraph/pin/method.rb +672 -672
  82. data/lib/solargraph/pin/method_alias.rb +34 -34
  83. data/lib/solargraph/pin/namespace.rb +115 -115
  84. data/lib/solargraph/pin/parameter.rb +275 -275
  85. data/lib/solargraph/pin/proxy_type.rb +39 -39
  86. data/lib/solargraph/pin/reference/override.rb +47 -47
  87. data/lib/solargraph/pin/reference/superclass.rb +15 -15
  88. data/lib/solargraph/pin/reference.rb +39 -39
  89. data/lib/solargraph/pin/search.rb +61 -61
  90. data/lib/solargraph/pin/signature.rb +61 -61
  91. data/lib/solargraph/pin/symbol.rb +53 -53
  92. data/lib/solargraph/pin/until.rb +18 -18
  93. data/lib/solargraph/pin/while.rb +18 -18
  94. data/lib/solargraph/pin.rb +44 -44
  95. data/lib/solargraph/pin_cache.rb +245 -245
  96. data/lib/solargraph/position.rb +132 -119
  97. data/lib/solargraph/range.rb +112 -112
  98. data/lib/solargraph/rbs_map/conversions.rb +823 -823
  99. data/lib/solargraph/rbs_map/core_map.rb +58 -58
  100. data/lib/solargraph/rbs_map/stdlib_map.rb +43 -43
  101. data/lib/solargraph/rbs_map.rb +163 -163
  102. data/lib/solargraph/shell.rb +352 -352
  103. data/lib/solargraph/source/chain/call.rb +337 -337
  104. data/lib/solargraph/source/chain/constant.rb +26 -26
  105. data/lib/solargraph/source/chain/hash.rb +34 -34
  106. data/lib/solargraph/source/chain/if.rb +28 -28
  107. data/lib/solargraph/source/chain/instance_variable.rb +13 -13
  108. data/lib/solargraph/source/chain/literal.rb +48 -48
  109. data/lib/solargraph/source/chain/or.rb +23 -23
  110. data/lib/solargraph/source/chain.rb +291 -291
  111. data/lib/solargraph/source/change.rb +82 -82
  112. data/lib/solargraph/source/cursor.rb +166 -166
  113. data/lib/solargraph/source/source_chainer.rb +194 -194
  114. data/lib/solargraph/source/updater.rb +55 -55
  115. data/lib/solargraph/source.rb +498 -498
  116. data/lib/solargraph/source_map/clip.rb +226 -226
  117. data/lib/solargraph/source_map/data.rb +34 -34
  118. data/lib/solargraph/source_map/mapper.rb +259 -259
  119. data/lib/solargraph/source_map.rb +212 -212
  120. data/lib/solargraph/type_checker/checks.rb +124 -124
  121. data/lib/solargraph/type_checker/param_def.rb +37 -37
  122. data/lib/solargraph/type_checker/problem.rb +32 -32
  123. data/lib/solargraph/type_checker/rules.rb +84 -84
  124. data/lib/solargraph/type_checker.rb +814 -814
  125. data/lib/solargraph/version.rb +1 -1
  126. data/lib/solargraph/workspace/config.rb +255 -255
  127. data/lib/solargraph/workspace/require_paths.rb +97 -97
  128. data/lib/solargraph/workspace.rb +220 -220
  129. data/lib/solargraph/yard_map/helpers.rb +44 -44
  130. data/lib/solargraph/yard_map/mapper/to_method.rb +130 -130
  131. data/lib/solargraph/yard_map/mapper/to_namespace.rb +31 -31
  132. data/lib/solargraph/yard_map/mapper.rb +79 -79
  133. data/lib/solargraph/yard_map/to_method.rb +89 -89
  134. data/lib/solargraph/yardoc.rb +87 -87
  135. data/lib/solargraph.rb +105 -105
  136. data/rbs_collection.yaml +1 -1
  137. metadata +12 -12
  138. /data/{sig → rbs}/shims/ast/0/node.rbs +0 -0
  139. /data/{sig → rbs}/shims/ast/2.4/.rbs_meta.yaml +0 -0
  140. /data/{sig → rbs}/shims/ast/2.4/ast.rbs +0 -0
  141. /data/{sig → rbs}/shims/parser/3.2.0.1/builders/default.rbs +0 -0
  142. /data/{sig → rbs}/shims/parser/3.2.0.1/manifest.yaml +0 -0
  143. /data/{sig → rbs}/shims/parser/3.2.0.1/parser.rbs +0 -0
  144. /data/{sig → rbs}/shims/parser/3.2.0.1/polyfill.rbs +0 -0
  145. /data/{sig → rbs}/shims/thor/1.2.0.1/.rbs_meta.yaml +0 -0
  146. /data/{sig → rbs}/shims/thor/1.2.0.1/manifest.yaml +0 -0
  147. /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