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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e56c80fcd3d09dfa44076f993bc9b9109499f5aca4453b2bec161257161791d6
4
- data.tar.gz: e1063c87d37ac58f04cf790e40e6e01b5044d74ab2fa102b1a80a133ad47111b
3
+ metadata.gz: b608545d678dd0531b4026bea812c79fa4bbc2de028d1e2bc1780e4160897225
4
+ data.tar.gz: 60390ef3b1cc67335cfd6e894fbd3605d0e4e9328ba2ee50a3ea76740912b27e
5
5
  SHA512:
6
- metadata.gz: c4bf24a5265c55ce29e24ae70fd5504250aec4f684b7f2aa220ed96292feda346ad0d0ad9116399a59a57ae69e6846b8cca6b5ee7946690fa49a34b90777b913
7
- data.tar.gz: d4c04335686f8d5af07fa7b0a581e96c197ad605bdd4b5a5eeb5fd41fe4ddca8c14a89b19c4b0acf5257909d2e45864929aacaf98d19c6459109f815a383c5b1
6
+ metadata.gz: 150c25946a8485d3a7443900e49096a489761bcff7d16056a48328478f365b1d77d66f6c93ab99d927d8d5518ae2bdb3ce14ffda5a6db0808bfb597296e076f7
7
+ data.tar.gz: 47475436921ff5e04f69869a5be28a2e174ddf5a4b0ce243115bd5b5ad5c699a7370f27da76bdad88b85cb7d4462438ea11567e3c41419b7af057fa43e332535
data/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ *.rb text eol=lf
2
+ bin/* text eol=lf
data/.gitignore CHANGED
@@ -14,3 +14,4 @@ coverage
14
14
  /Makefile
15
15
  /.pryrc
16
16
  /.rspec-local
17
+ vendor/cache
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 0.58.2 - January 19, 2026
2
+ - Avoid rbs pollution (#1146)
3
+ - Fix 'solargraph pin --references ClassName' private method call (#1150)
4
+ - Improve memory efficiency of Position class (#1054)
5
+ - Raise InvalidOffsetError for offsets > text (#1155)
6
+
7
+ ## 0.58.1 - January 2, 2026
8
+ - Normalize line endings to LF (#1142)
9
+
1
10
  ## 0.58.0 - January 1, 2026
2
11
  - Faster constant resolution (#1083)
3
12
  - [regression] Handle RBS static method aliases (#1094)
data/bin/solargraph CHANGED
@@ -1,8 +1,8 @@
1
- #!/usr/bin/env ruby
2
-
3
- # turn off warning diagnostics from Ruby
4
- $VERBOSE=nil
5
-
6
- require 'solargraph'
7
-
8
- Solargraph::Shell.start(ARGV)
1
+ #!/usr/bin/env ruby
2
+
3
+ # turn off warning diagnostics from Ruby
4
+ $VERBOSE=nil
5
+
6
+ require 'solargraph'
7
+
8
+ Solargraph::Shell.start(ARGV)
@@ -1,110 +1,110 @@
1
- # frozen_string_literal: true
2
-
3
- module Solargraph
4
- class ApiMap
5
- class Cache
6
- def initialize
7
- # @type [Hash{String => Array<Pin::Method>}]
8
- @methods = {}
9
- # @type [Hash{String, Array<String> => Array<Pin::Base>}]
10
- @constants = {}
11
- # @type [Hash{String => String}]
12
- @qualified_namespaces = {}
13
- # @type [Hash{String => Pin::Method}]
14
- @receiver_definitions = {}
15
- # @type [Hash{String => SourceMap::Clip}]
16
- @clips = {}
17
- end
18
-
19
- def to_s
20
- self.class.to_s
21
- end
22
-
23
- # avoid enormous dump
24
- def inspect
25
- to_s
26
- end
27
-
28
- # @param fqns [String]
29
- # @param scope [Symbol]
30
- # @param visibility [Array<Symbol>]
31
- # @param deep [Boolean]
32
- # @return [Array<Pin::Method>]
33
- def get_methods fqns, scope, visibility, deep
34
- @methods["#{fqns}|#{scope}|#{visibility}|#{deep}"]
35
- end
36
-
37
- # @param fqns [String]
38
- # @param scope [Symbol]
39
- # @param visibility [Array<Symbol>]
40
- # @param deep [Boolean]
41
- # @param value [Array<Pin::Method>]
42
- # @return [void]
43
- def set_methods fqns, scope, visibility, deep, value
44
- @methods["#{fqns}|#{scope}|#{visibility}|#{deep}"] = value
45
- end
46
-
47
- # @param namespace [String]
48
- # @param contexts [Array<String>]
49
- # @return [Array<Pin::Base>]
50
- def get_constants namespace, contexts
51
- @constants["#{namespace}|#{contexts}"]
52
- end
53
-
54
- # @param namespace [String]
55
- # @param contexts [Array<String>]
56
- # @param value [Array<Pin::Base>]
57
- # @return [void]
58
- def set_constants namespace, contexts, value
59
- @constants["#{namespace}|#{contexts}"] = value
60
- end
61
-
62
- # @param name [String]
63
- # @param context [String]
64
- # @return [String]
65
- def get_qualified_namespace name, context
66
- @qualified_namespaces["#{name}|#{context}"]
67
- end
68
-
69
- # @param name [String]
70
- # @param context [String]
71
- # @param value [String]
72
- # @return [void]
73
- def set_qualified_namespace name, context, value
74
- @qualified_namespaces["#{name}|#{context}"] = value
75
- end
76
-
77
- # @param path [String]
78
- # @return [Pin::Method]
79
- def get_receiver_definition path
80
- @receiver_definitions[path]
81
- end
82
-
83
- # @param path [String]
84
- # @param pin [Pin::Method]
85
- # @return [void]
86
- def set_receiver_definition path, pin
87
- @receiver_definitions[path] = pin
88
- end
89
-
90
- # @return [void]
91
- def clear
92
- return if empty?
93
-
94
- all_caches.each(&:clear)
95
- end
96
-
97
- # @return [Boolean]
98
- def empty?
99
- all_caches.all?(&:empty?)
100
- end
101
-
102
- private
103
-
104
- # @return [Array<Object>]
105
- def all_caches
106
- [@methods, @constants, @qualified_namespaces, @receiver_definitions, @clips]
107
- end
108
- end
109
- end
110
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Solargraph
4
+ class ApiMap
5
+ class Cache
6
+ def initialize
7
+ # @type [Hash{String => Array<Pin::Method>}]
8
+ @methods = {}
9
+ # @type [Hash{String, Array<String> => Array<Pin::Base>}]
10
+ @constants = {}
11
+ # @type [Hash{String => String}]
12
+ @qualified_namespaces = {}
13
+ # @type [Hash{String => Pin::Method}]
14
+ @receiver_definitions = {}
15
+ # @type [Hash{String => SourceMap::Clip}]
16
+ @clips = {}
17
+ end
18
+
19
+ def to_s
20
+ self.class.to_s
21
+ end
22
+
23
+ # avoid enormous dump
24
+ def inspect
25
+ to_s
26
+ end
27
+
28
+ # @param fqns [String]
29
+ # @param scope [Symbol]
30
+ # @param visibility [Array<Symbol>]
31
+ # @param deep [Boolean]
32
+ # @return [Array<Pin::Method>]
33
+ def get_methods fqns, scope, visibility, deep
34
+ @methods["#{fqns}|#{scope}|#{visibility}|#{deep}"]
35
+ end
36
+
37
+ # @param fqns [String]
38
+ # @param scope [Symbol]
39
+ # @param visibility [Array<Symbol>]
40
+ # @param deep [Boolean]
41
+ # @param value [Array<Pin::Method>]
42
+ # @return [void]
43
+ def set_methods fqns, scope, visibility, deep, value
44
+ @methods["#{fqns}|#{scope}|#{visibility}|#{deep}"] = value
45
+ end
46
+
47
+ # @param namespace [String]
48
+ # @param contexts [Array<String>]
49
+ # @return [Array<Pin::Base>]
50
+ def get_constants namespace, contexts
51
+ @constants["#{namespace}|#{contexts}"]
52
+ end
53
+
54
+ # @param namespace [String]
55
+ # @param contexts [Array<String>]
56
+ # @param value [Array<Pin::Base>]
57
+ # @return [void]
58
+ def set_constants namespace, contexts, value
59
+ @constants["#{namespace}|#{contexts}"] = value
60
+ end
61
+
62
+ # @param name [String]
63
+ # @param context [String]
64
+ # @return [String]
65
+ def get_qualified_namespace name, context
66
+ @qualified_namespaces["#{name}|#{context}"]
67
+ end
68
+
69
+ # @param name [String]
70
+ # @param context [String]
71
+ # @param value [String]
72
+ # @return [void]
73
+ def set_qualified_namespace name, context, value
74
+ @qualified_namespaces["#{name}|#{context}"] = value
75
+ end
76
+
77
+ # @param path [String]
78
+ # @return [Pin::Method]
79
+ def get_receiver_definition path
80
+ @receiver_definitions[path]
81
+ end
82
+
83
+ # @param path [String]
84
+ # @param pin [Pin::Method]
85
+ # @return [void]
86
+ def set_receiver_definition path, pin
87
+ @receiver_definitions[path] = pin
88
+ end
89
+
90
+ # @return [void]
91
+ def clear
92
+ return if empty?
93
+
94
+ all_caches.each(&:clear)
95
+ end
96
+
97
+ # @return [Boolean]
98
+ def empty?
99
+ all_caches.all?(&:empty?)
100
+ end
101
+
102
+ private
103
+
104
+ # @return [Array<Object>]
105
+ def all_caches
106
+ [@methods, @constants, @qualified_namespaces, @receiver_definitions, @clips]
107
+ end
108
+ end
109
+ end
110
+ end