steep 1.10.0 → 2.1.0.dev.1
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/CHANGELOG.md +84 -1
- data/CLAUDE.md +114 -0
- data/README.md +2 -2
- data/Rakefile +365 -150
- data/Steepfile +13 -13
- data/doc/release.md +264 -0
- data/lib/steep/annotation_parser.rb +5 -1
- data/lib/steep/annotations_helper.rb +12 -2
- data/lib/steep/ast/node/type_application.rb +22 -16
- data/lib/steep/ast/node/type_assertion.rb +7 -4
- data/lib/steep/ast/types/factory.rb +3 -2
- data/lib/steep/cli.rb +246 -2
- data/lib/steep/daemon/configuration.rb +19 -0
- data/lib/steep/daemon/server.rb +476 -0
- data/lib/steep/daemon.rb +201 -0
- data/lib/steep/diagnostic/ruby.rb +54 -12
- data/lib/steep/diagnostic/signature.rb +31 -8
- data/lib/steep/drivers/check.rb +301 -140
- data/lib/steep/drivers/print_project.rb +9 -10
- data/lib/steep/drivers/query.rb +102 -0
- data/lib/steep/drivers/start_server.rb +19 -0
- data/lib/steep/drivers/stop_server.rb +20 -0
- data/lib/steep/drivers/watch.rb +2 -2
- data/lib/steep/index/rbs_index.rb +38 -13
- data/lib/steep/index/signature_symbol_provider.rb +24 -3
- data/lib/steep/interface/builder.rb +48 -15
- data/lib/steep/interface/shape.rb +13 -5
- data/lib/steep/locator.rb +377 -0
- data/lib/steep/node_helper.rb +2 -2
- data/lib/steep/project/dsl.rb +26 -5
- data/lib/steep/project/group.rb +8 -2
- data/lib/steep/project/target.rb +16 -2
- data/lib/steep/project.rb +21 -2
- data/lib/steep/server/base_worker.rb +2 -2
- data/lib/steep/server/change_buffer.rb +2 -1
- data/lib/steep/server/custom_methods.rb +12 -0
- data/lib/steep/server/inline_source_change_detector.rb +94 -0
- data/lib/steep/server/interaction_worker.rb +51 -74
- data/lib/steep/server/lsp_formatter.rb +48 -12
- data/lib/steep/server/master.rb +100 -18
- data/lib/steep/server/target_group_files.rb +124 -151
- data/lib/steep/server/type_check_controller.rb +276 -123
- data/lib/steep/server/type_check_worker.rb +104 -3
- data/lib/steep/services/completion_provider/rbs.rb +74 -0
- data/lib/steep/services/completion_provider/ruby.rb +652 -0
- data/lib/steep/services/completion_provider/type_name.rb +243 -0
- data/lib/steep/services/completion_provider.rb +39 -662
- data/lib/steep/services/content_change.rb +14 -1
- data/lib/steep/services/file_loader.rb +4 -2
- data/lib/steep/services/goto_service.rb +271 -68
- data/lib/steep/services/hover_provider/content.rb +67 -0
- data/lib/steep/services/hover_provider/rbs.rb +8 -9
- data/lib/steep/services/hover_provider/ruby.rb +124 -65
- data/lib/steep/services/hover_provider/singleton_methods.rb +4 -0
- data/lib/steep/services/signature_help_provider.rb +1 -1
- data/lib/steep/services/signature_service.rb +129 -54
- data/lib/steep/services/type_check_service.rb +72 -27
- data/lib/steep/signature/validator.rb +30 -18
- data/lib/steep/source/ignore_ranges.rb +14 -4
- data/lib/steep/source.rb +21 -7
- data/lib/steep/tagged_logging.rb +39 -0
- data/lib/steep/type_construction.rb +111 -24
- data/lib/steep/type_inference/block_params.rb +7 -7
- data/lib/steep/type_inference/context.rb +4 -2
- data/lib/steep/type_inference/logic_type_interpreter.rb +24 -3
- data/lib/steep/type_inference/method_call.rb +4 -0
- data/lib/steep/type_inference/type_env.rb +1 -1
- data/lib/steep/typing.rb +3 -5
- data/lib/steep/version.rb +1 -1
- data/lib/steep.rb +42 -32
- data/manual/ruby-diagnostics.md +67 -0
- data/sample/Steepfile +1 -0
- data/sample/lib/conference.rb +1 -0
- data/sample/lib/deprecated.rb +6 -0
- data/sample/lib/inline.rb +43 -0
- data/sample/sig/generics.rbs +3 -0
- data/steep.gemspec +4 -5
- metadata +27 -26
- data/lib/steep/services/type_name_completion.rb +0 -236
|
@@ -42,6 +42,8 @@ module Steep
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
TopLevelContext = _ = Class.new() do
|
|
45
|
+
# @implements TopLevelContext
|
|
46
|
+
|
|
45
47
|
def to_s
|
|
46
48
|
"@<main>"
|
|
47
49
|
end
|
|
@@ -58,6 +60,8 @@ module Steep
|
|
|
58
60
|
end
|
|
59
61
|
|
|
60
62
|
UnknownContext = _ = Class.new() do
|
|
63
|
+
# @implements UnknownContext
|
|
64
|
+
|
|
61
65
|
def to_s
|
|
62
66
|
"@<unknown>"
|
|
63
67
|
end
|
|
@@ -150,7 +150,7 @@ module Steep
|
|
|
150
150
|
pure_call_updates = pure_node_invalidation(invalidated_nodes)
|
|
151
151
|
|
|
152
152
|
pure_call_types.each do |node, type|
|
|
153
|
-
call, _ = pure_call_updates
|
|
153
|
+
call, _ = pure_call_updates.fetch(node)
|
|
154
154
|
pure_call_updates[node] = [call, type]
|
|
155
155
|
end
|
|
156
156
|
|
data/lib/steep/typing.rb
CHANGED
|
@@ -106,7 +106,7 @@ module Steep
|
|
|
106
106
|
set(body_begin_pos..body_end_pos, context)
|
|
107
107
|
end
|
|
108
108
|
|
|
109
|
-
when :block, :numblock
|
|
109
|
+
when :block, :numblock, :itblock
|
|
110
110
|
range = block_range(node)
|
|
111
111
|
set(range, context)
|
|
112
112
|
|
|
@@ -132,7 +132,7 @@ module Steep
|
|
|
132
132
|
node.loc.begin.end_pos # steep:ignore NoMethod
|
|
133
133
|
end
|
|
134
134
|
end_pos = node.loc.end.begin_pos # steep:ignore NoMethod
|
|
135
|
-
when :numblock
|
|
135
|
+
when :numblock, :itblock
|
|
136
136
|
send_node, _ = node.children
|
|
137
137
|
begin_pos = node.loc.begin.end_pos # steep:ignore NoMethod
|
|
138
138
|
end_pos = node.loc.end.begin_pos # steep:ignore NoMethod
|
|
@@ -208,8 +208,6 @@ module Steep
|
|
|
208
208
|
end
|
|
209
209
|
|
|
210
210
|
def type_of(node:)
|
|
211
|
-
raise "`nil` given to `Typing#type_of(node:)`" unless node
|
|
212
|
-
|
|
213
211
|
type = typing[node]
|
|
214
212
|
|
|
215
213
|
if type
|
|
@@ -247,7 +245,7 @@ module Steep
|
|
|
247
245
|
node.loc.begin.end_pos # steep:ignore NoMethod
|
|
248
246
|
end
|
|
249
247
|
end_pos = node.loc.end.begin_pos # steep:ignore NoMethod
|
|
250
|
-
when :numblock
|
|
248
|
+
when :numblock, :itblock
|
|
251
249
|
send_node, _ = node.children
|
|
252
250
|
begin_pos = node.loc.begin.end_pos # steep:ignore NoMethod
|
|
253
251
|
end_pos = node.loc.end.begin_pos # steep:ignore NoMethod
|
data/lib/steep/version.rb
CHANGED
data/lib/steep.rb
CHANGED
|
@@ -2,9 +2,7 @@ require "steep/version"
|
|
|
2
2
|
|
|
3
3
|
require "pathname"
|
|
4
4
|
require "parser/ruby33"
|
|
5
|
-
require "
|
|
6
|
-
require "active_support/core_ext/object/try"
|
|
7
|
-
require "active_support/core_ext/string/inflections"
|
|
5
|
+
require "prism"
|
|
8
6
|
require "logger"
|
|
9
7
|
require "rainbow"
|
|
10
8
|
require "listen"
|
|
@@ -15,7 +13,6 @@ require "stringio"
|
|
|
15
13
|
require 'uri'
|
|
16
14
|
require "yaml"
|
|
17
15
|
require "securerandom"
|
|
18
|
-
require "base64"
|
|
19
16
|
require "time"
|
|
20
17
|
require 'socket'
|
|
21
18
|
|
|
@@ -26,6 +23,7 @@ require "rbs"
|
|
|
26
23
|
|
|
27
24
|
require "steep/path_helper"
|
|
28
25
|
require "steep/located_value"
|
|
26
|
+
require "steep/tagged_logging"
|
|
29
27
|
require "steep/thread_waiter"
|
|
30
28
|
require "steep/equatable"
|
|
31
29
|
require "steep/method_name"
|
|
@@ -99,6 +97,8 @@ require "steep/type_inference/multiple_assignment"
|
|
|
99
97
|
require "steep/type_inference/method_call"
|
|
100
98
|
require "steep/type_inference/case_when"
|
|
101
99
|
|
|
100
|
+
require "steep/locator.rb"
|
|
101
|
+
|
|
102
102
|
require "steep/index/rbs_index"
|
|
103
103
|
require "steep/index/signature_symbol_provider"
|
|
104
104
|
require "steep/index/source_index"
|
|
@@ -107,11 +107,14 @@ require "steep/services/content_change"
|
|
|
107
107
|
require "steep/services/path_assignment"
|
|
108
108
|
require "steep/services/signature_service"
|
|
109
109
|
require "steep/services/type_check_service"
|
|
110
|
+
require "steep/services/hover_provider/content"
|
|
110
111
|
require "steep/services/hover_provider/singleton_methods"
|
|
111
112
|
require "steep/services/hover_provider/ruby"
|
|
112
113
|
require "steep/services/hover_provider/rbs"
|
|
113
|
-
require "steep/services/type_name_completion"
|
|
114
114
|
require "steep/services/completion_provider"
|
|
115
|
+
require "steep/services/completion_provider/type_name"
|
|
116
|
+
require "steep/services/completion_provider/ruby"
|
|
117
|
+
require "steep/services/completion_provider/rbs"
|
|
115
118
|
require "steep/services/signature_help_provider"
|
|
116
119
|
require "steep/services/stats_calculator"
|
|
117
120
|
require "steep/services/file_loader"
|
|
@@ -128,7 +131,9 @@ require "steep/server/interaction_worker"
|
|
|
128
131
|
require "steep/server/type_check_worker"
|
|
129
132
|
require "steep/server/target_group_files"
|
|
130
133
|
require "steep/server/type_check_controller"
|
|
134
|
+
require "steep/server/inline_source_change_detector"
|
|
131
135
|
require "steep/server/master"
|
|
136
|
+
require "steep/daemon"
|
|
132
137
|
|
|
133
138
|
require "steep/project"
|
|
134
139
|
require "steep/project/pattern"
|
|
@@ -150,6 +155,9 @@ require "steep/drivers/print_project"
|
|
|
150
155
|
require "steep/drivers/init"
|
|
151
156
|
require "steep/drivers/vendor"
|
|
152
157
|
require "steep/drivers/worker"
|
|
158
|
+
require "steep/drivers/start_server"
|
|
159
|
+
require "steep/drivers/stop_server"
|
|
160
|
+
require "steep/drivers/query"
|
|
153
161
|
require "steep/drivers/diagnostic_printer"
|
|
154
162
|
require "steep/drivers/diagnostic_printer/base_formatter"
|
|
155
163
|
require "steep/drivers/diagnostic_printer/code_formatter"
|
|
@@ -173,19 +181,7 @@ module Steep
|
|
|
173
181
|
end
|
|
174
182
|
|
|
175
183
|
def self.new_logger(output, prev_level)
|
|
176
|
-
|
|
177
|
-
logger.formatter = proc do |severity, datetime, progname, msg|
|
|
178
|
-
# @type var severity: String
|
|
179
|
-
# @type var datetime: Time
|
|
180
|
-
# @type var progname: untyped
|
|
181
|
-
# @type var msg: untyped
|
|
182
|
-
# @type block: String
|
|
183
|
-
"#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}: #{severity}: #{msg}\n"
|
|
184
|
-
end
|
|
185
|
-
ActiveSupport::TaggedLogging.new(logger).tap do |logger|
|
|
186
|
-
logger.push_tags "Steep #{VERSION}"
|
|
187
|
-
logger.level = prev_level || Logger::ERROR
|
|
188
|
-
end
|
|
184
|
+
TaggedLogging.new(output, level: prev_level || Logger::ERROR)
|
|
189
185
|
end
|
|
190
186
|
|
|
191
187
|
def self.log_output
|
|
@@ -195,11 +191,17 @@ module Steep
|
|
|
195
191
|
def self.log_output=(output)
|
|
196
192
|
@log_output = output
|
|
197
193
|
|
|
194
|
+
if output.is_a?(String)
|
|
195
|
+
io = File.open(output, "a")
|
|
196
|
+
else
|
|
197
|
+
io = output
|
|
198
|
+
end
|
|
199
|
+
|
|
198
200
|
prev_level = @logger&.level
|
|
199
|
-
@logger = new_logger(
|
|
201
|
+
@logger = new_logger(io, prev_level)
|
|
200
202
|
|
|
201
203
|
prev_level = @ui_logger&.level
|
|
202
|
-
@ui_logger = new_logger(
|
|
204
|
+
@ui_logger = new_logger(io, prev_level)
|
|
203
205
|
|
|
204
206
|
output
|
|
205
207
|
end
|
|
@@ -233,7 +235,15 @@ module Steep
|
|
|
233
235
|
end
|
|
234
236
|
|
|
235
237
|
def self.can_fork?
|
|
236
|
-
defined?(
|
|
238
|
+
return @can_fork if defined?(@can_fork)
|
|
239
|
+
|
|
240
|
+
@can_fork = begin
|
|
241
|
+
pid = fork { exit!(0) }
|
|
242
|
+
Process.waitpid(pid) if pid
|
|
243
|
+
true
|
|
244
|
+
rescue NotImplementedError
|
|
245
|
+
false
|
|
246
|
+
end
|
|
237
247
|
end
|
|
238
248
|
|
|
239
249
|
class Sampler
|
|
@@ -299,17 +309,17 @@ module Steep
|
|
|
299
309
|
end
|
|
300
310
|
end
|
|
301
311
|
|
|
302
|
-
klasses = [
|
|
303
|
-
|
|
304
|
-
] #: Array[Class]
|
|
305
|
-
|
|
306
|
-
klasses.each do |klass|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
end
|
|
312
|
+
# klasses = [
|
|
313
|
+
# # Steep::Interface::MethodType
|
|
314
|
+
# ] #: Array[Class]
|
|
315
|
+
#
|
|
316
|
+
# klasses.each do |klass|
|
|
317
|
+
# klass.instance_eval do
|
|
318
|
+
# def self.new(*_a, **_b, &_c)
|
|
319
|
+
# super
|
|
320
|
+
# end
|
|
321
|
+
# end
|
|
322
|
+
# end
|
|
313
323
|
|
|
314
324
|
module GCCounter
|
|
315
325
|
module_function
|
data/manual/ruby-diagnostics.md
CHANGED
|
@@ -667,6 +667,45 @@ test.rb:1:0: [error] Invalid ignore comment
|
|
|
667
667
|
| - | - | - | - | - |
|
|
668
668
|
| error | warning | warning | warning | - |
|
|
669
669
|
|
|
670
|
+
<a name='Ruby::LibraryRBSError'></a>
|
|
671
|
+
## Ruby::LibraryRBSError
|
|
672
|
+
|
|
673
|
+
Type checking failed because of errors in library RBS files.
|
|
674
|
+
|
|
675
|
+
This diagnostic is reported on source files when RBS signatures from library or standard library
|
|
676
|
+
have validation errors, such as superclass mismatches. Each error is reported as a separate diagnostic.
|
|
677
|
+
|
|
678
|
+
### RBS
|
|
679
|
+
|
|
680
|
+
```rbs
|
|
681
|
+
class Integer < String
|
|
682
|
+
end
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
### Ruby code
|
|
686
|
+
|
|
687
|
+
```ruby
|
|
688
|
+
1 + 2
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
### Diagnostic
|
|
692
|
+
|
|
693
|
+
```
|
|
694
|
+
a.rb:1:0: [error] Type checking failed due to error in library RBS file
|
|
695
|
+
│ Different superclasses are specified for `::Integer`
|
|
696
|
+
│ Diagnostic ID: Ruby::LibraryRBSError
|
|
697
|
+
│
|
|
698
|
+
└ 1 + 2
|
|
699
|
+
~~~~~
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
### Severity
|
|
704
|
+
|
|
705
|
+
| all_error | strict | default | lenient | silent |
|
|
706
|
+
| - | - | - | - | - |
|
|
707
|
+
| error | error | error | error | - |
|
|
708
|
+
|
|
670
709
|
<a name='Ruby::MethodArityMismatch'></a>
|
|
671
710
|
## Ruby::MethodArityMismatch
|
|
672
711
|
|
|
@@ -1022,6 +1061,34 @@ test.rb:1:9: [error] Cannot find type `::Int`
|
|
|
1022
1061
|
| - | - | - | - | - |
|
|
1023
1062
|
| error | error | information | information | - |
|
|
1024
1063
|
|
|
1064
|
+
<a name='Ruby::RedundantIgnoreComment'></a>
|
|
1065
|
+
## Ruby::RedundantIgnoreComment
|
|
1066
|
+
|
|
1067
|
+
`steep:ignore` comment is redundant.
|
|
1068
|
+
|
|
1069
|
+
### Ruby code
|
|
1070
|
+
|
|
1071
|
+
```ruby
|
|
1072
|
+
1 + 1 # steep:ignore
|
|
1073
|
+
```
|
|
1074
|
+
|
|
1075
|
+
### Diagnostic
|
|
1076
|
+
|
|
1077
|
+
```
|
|
1078
|
+
test.rb:1:6: [hint] Redundant ignore comment
|
|
1079
|
+
│ Diagnostic ID: Ruby::RedundantIgnoreComment
|
|
1080
|
+
│
|
|
1081
|
+
└ 1 + 1 # steep:ignore
|
|
1082
|
+
~~~~~~~~~~~~~~
|
|
1083
|
+
```
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
### Severity
|
|
1087
|
+
|
|
1088
|
+
| all_error | strict | default | lenient | silent |
|
|
1089
|
+
| - | - | - | - | - |
|
|
1090
|
+
| error | warning | warning | hint | - |
|
|
1091
|
+
|
|
1025
1092
|
<a name='Ruby::RequiredBlockMissing'></a>
|
|
1026
1093
|
## Ruby::RequiredBlockMissing
|
|
1027
1094
|
|
data/sample/Steepfile
CHANGED
data/sample/lib/conference.rb
CHANGED
data/sample/lib/deprecated.rb
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Inline
|
|
2
|
+
# This is a bar class
|
|
3
|
+
class Bar
|
|
4
|
+
# @rbs () -> Integer
|
|
5
|
+
def from_bar
|
|
6
|
+
123
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class Foo < HelloWorld #[String]
|
|
11
|
+
# @rbs (Integer, Integer) -> String
|
|
12
|
+
def foo(x, y)
|
|
13
|
+
(x + y).to_s
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
#: () -> untyped
|
|
17
|
+
def bar
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @rbs return: String?
|
|
22
|
+
def baz
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @rbs (Integer) -> void
|
|
27
|
+
def initialize(x)
|
|
28
|
+
@name
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @rbs @name: String -- the name of something
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
foo = Foo.new(1)
|
|
36
|
+
foo.foo(1, 2)
|
|
37
|
+
foo.foo(1, "2")
|
|
38
|
+
foo.foo(1, 2, "3")
|
|
39
|
+
|
|
40
|
+
foo.hello_world
|
|
41
|
+
|
|
42
|
+
x = nil #: String?
|
|
43
|
+
end
|
data/sample/sig/generics.rbs
CHANGED
data/steep.gemspec
CHANGED
|
@@ -35,14 +35,14 @@ Gem::Specification.new do |spec|
|
|
|
35
35
|
spec.required_ruby_version = ">= 3.3.0"
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
spec.required_ruby_version = '>= 3.
|
|
38
|
+
spec.required_ruby_version = '>= 3.2.0'
|
|
39
39
|
|
|
40
|
-
spec.add_runtime_dependency "parser", ">= 3.
|
|
41
|
-
spec.add_runtime_dependency "
|
|
40
|
+
spec.add_runtime_dependency "parser", ">= 3.2"
|
|
41
|
+
spec.add_runtime_dependency "prism", ">= 0.25.0"
|
|
42
42
|
spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
|
|
43
43
|
spec.add_runtime_dependency "listen", "~> 3.0"
|
|
44
44
|
spec.add_runtime_dependency "language_server-protocol", ">= 3.17.0.4", "< 4.0"
|
|
45
|
-
spec.add_runtime_dependency "rbs", "~>
|
|
45
|
+
spec.add_runtime_dependency "rbs", "~> 4.0"
|
|
46
46
|
spec.add_runtime_dependency "concurrent-ruby", ">= 1.1.10"
|
|
47
47
|
spec.add_runtime_dependency "terminal-table", ">= 2", "< 5"
|
|
48
48
|
spec.add_runtime_dependency "securerandom", ">= 0.1"
|
|
@@ -52,5 +52,4 @@ Gem::Specification.new do |spec|
|
|
|
52
52
|
spec.add_runtime_dependency "strscan", ">= 1.0.0"
|
|
53
53
|
spec.add_runtime_dependency "csv", ">= 3.0.9"
|
|
54
54
|
spec.add_runtime_dependency "uri", ">= 0.12.0"
|
|
55
|
-
spec.add_runtime_dependency "mutex_m", ">= 0.3.0"
|
|
56
55
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: steep
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 2.1.0.dev.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Soutaro Matsumoto
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: parser
|
|
@@ -15,28 +15,28 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '3.
|
|
18
|
+
version: '3.2'
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '3.
|
|
25
|
+
version: '3.2'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
|
-
name:
|
|
27
|
+
name: prism
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
32
|
+
version: 0.25.0
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
39
|
+
version: 0.25.0
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: rainbow
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -97,14 +97,14 @@ dependencies:
|
|
|
97
97
|
requirements:
|
|
98
98
|
- - "~>"
|
|
99
99
|
- !ruby/object:Gem::Version
|
|
100
|
-
version: '
|
|
100
|
+
version: '4.0'
|
|
101
101
|
type: :runtime
|
|
102
102
|
prerelease: false
|
|
103
103
|
version_requirements: !ruby/object:Gem::Requirement
|
|
104
104
|
requirements:
|
|
105
105
|
- - "~>"
|
|
106
106
|
- !ruby/object:Gem::Version
|
|
107
|
-
version: '
|
|
107
|
+
version: '4.0'
|
|
108
108
|
- !ruby/object:Gem::Dependency
|
|
109
109
|
name: concurrent-ruby
|
|
110
110
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -237,20 +237,6 @@ dependencies:
|
|
|
237
237
|
- - ">="
|
|
238
238
|
- !ruby/object:Gem::Version
|
|
239
239
|
version: 0.12.0
|
|
240
|
-
- !ruby/object:Gem::Dependency
|
|
241
|
-
name: mutex_m
|
|
242
|
-
requirement: !ruby/object:Gem::Requirement
|
|
243
|
-
requirements:
|
|
244
|
-
- - ">="
|
|
245
|
-
- !ruby/object:Gem::Version
|
|
246
|
-
version: 0.3.0
|
|
247
|
-
type: :runtime
|
|
248
|
-
prerelease: false
|
|
249
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
250
|
-
requirements:
|
|
251
|
-
- - ">="
|
|
252
|
-
- !ruby/object:Gem::Version
|
|
253
|
-
version: 0.3.0
|
|
254
240
|
description: Gradual Typing for Ruby
|
|
255
241
|
email:
|
|
256
242
|
- matsumoto@soutaro.com
|
|
@@ -262,6 +248,7 @@ files:
|
|
|
262
248
|
- ".gitignore"
|
|
263
249
|
- ".gitmodules"
|
|
264
250
|
- CHANGELOG.md
|
|
251
|
+
- CLAUDE.md
|
|
265
252
|
- LICENSE
|
|
266
253
|
- README.md
|
|
267
254
|
- Rakefile
|
|
@@ -280,6 +267,7 @@ files:
|
|
|
280
267
|
- bin/steep-check.rb
|
|
281
268
|
- bin/steep-prof
|
|
282
269
|
- doc/narrowing.md
|
|
270
|
+
- doc/release.md
|
|
283
271
|
- doc/shape.md
|
|
284
272
|
- exe/steep
|
|
285
273
|
- guides/README.md
|
|
@@ -317,6 +305,9 @@ files:
|
|
|
317
305
|
- lib/steep/ast/types/var.rb
|
|
318
306
|
- lib/steep/ast/types/void.rb
|
|
319
307
|
- lib/steep/cli.rb
|
|
308
|
+
- lib/steep/daemon.rb
|
|
309
|
+
- lib/steep/daemon/configuration.rb
|
|
310
|
+
- lib/steep/daemon/server.rb
|
|
320
311
|
- lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb
|
|
321
312
|
- lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb
|
|
322
313
|
- lib/steep/diagnostic/helper.rb
|
|
@@ -334,7 +325,10 @@ files:
|
|
|
334
325
|
- lib/steep/drivers/init.rb
|
|
335
326
|
- lib/steep/drivers/langserver.rb
|
|
336
327
|
- lib/steep/drivers/print_project.rb
|
|
328
|
+
- lib/steep/drivers/query.rb
|
|
329
|
+
- lib/steep/drivers/start_server.rb
|
|
337
330
|
- lib/steep/drivers/stats.rb
|
|
331
|
+
- lib/steep/drivers/stop_server.rb
|
|
338
332
|
- lib/steep/drivers/utils/driver_helper.rb
|
|
339
333
|
- lib/steep/drivers/utils/jobs_option.rb
|
|
340
334
|
- lib/steep/drivers/vendor.rb
|
|
@@ -353,6 +347,7 @@ files:
|
|
|
353
347
|
- lib/steep/interface/substitution.rb
|
|
354
348
|
- lib/steep/interface/type_param.rb
|
|
355
349
|
- lib/steep/located_value.rb
|
|
350
|
+
- lib/steep/locator.rb
|
|
356
351
|
- lib/steep/method_name.rb
|
|
357
352
|
- lib/steep/module_helper.rb
|
|
358
353
|
- lib/steep/node_helper.rb
|
|
@@ -369,6 +364,7 @@ files:
|
|
|
369
364
|
- lib/steep/server/change_buffer.rb
|
|
370
365
|
- lib/steep/server/custom_methods.rb
|
|
371
366
|
- lib/steep/server/delay_queue.rb
|
|
367
|
+
- lib/steep/server/inline_source_change_detector.rb
|
|
372
368
|
- lib/steep/server/interaction_worker.rb
|
|
373
369
|
- lib/steep/server/lsp_formatter.rb
|
|
374
370
|
- lib/steep/server/master.rb
|
|
@@ -378,9 +374,13 @@ files:
|
|
|
378
374
|
- lib/steep/server/work_done_progress.rb
|
|
379
375
|
- lib/steep/server/worker_process.rb
|
|
380
376
|
- lib/steep/services/completion_provider.rb
|
|
377
|
+
- lib/steep/services/completion_provider/rbs.rb
|
|
378
|
+
- lib/steep/services/completion_provider/ruby.rb
|
|
379
|
+
- lib/steep/services/completion_provider/type_name.rb
|
|
381
380
|
- lib/steep/services/content_change.rb
|
|
382
381
|
- lib/steep/services/file_loader.rb
|
|
383
382
|
- lib/steep/services/goto_service.rb
|
|
383
|
+
- lib/steep/services/hover_provider/content.rb
|
|
384
384
|
- lib/steep/services/hover_provider/rbs.rb
|
|
385
385
|
- lib/steep/services/hover_provider/ruby.rb
|
|
386
386
|
- lib/steep/services/hover_provider/singleton_methods.rb
|
|
@@ -389,7 +389,6 @@ files:
|
|
|
389
389
|
- lib/steep/services/signature_service.rb
|
|
390
390
|
- lib/steep/services/stats_calculator.rb
|
|
391
391
|
- lib/steep/services/type_check_service.rb
|
|
392
|
-
- lib/steep/services/type_name_completion.rb
|
|
393
392
|
- lib/steep/signature/validator.rb
|
|
394
393
|
- lib/steep/source.rb
|
|
395
394
|
- lib/steep/source/ignore_ranges.rb
|
|
@@ -399,6 +398,7 @@ files:
|
|
|
399
398
|
- lib/steep/subtyping/relation.rb
|
|
400
399
|
- lib/steep/subtyping/result.rb
|
|
401
400
|
- lib/steep/subtyping/variable_variance.rb
|
|
401
|
+
- lib/steep/tagged_logging.rb
|
|
402
402
|
- lib/steep/test.rb
|
|
403
403
|
- lib/steep/thread_waiter.rb
|
|
404
404
|
- lib/steep/type_construction.rb
|
|
@@ -421,6 +421,7 @@ files:
|
|
|
421
421
|
- sample/Steepfile
|
|
422
422
|
- sample/lib/conference.rb
|
|
423
423
|
- sample/lib/deprecated.rb
|
|
424
|
+
- sample/lib/inline.rb
|
|
424
425
|
- sample/lib/length.rb
|
|
425
426
|
- sample/sig/conference.rbs
|
|
426
427
|
- sample/sig/deprecated.rbs
|
|
@@ -441,14 +442,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
441
442
|
requirements:
|
|
442
443
|
- - ">="
|
|
443
444
|
- !ruby/object:Gem::Version
|
|
444
|
-
version: 3.
|
|
445
|
+
version: 3.2.0
|
|
445
446
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
446
447
|
requirements:
|
|
447
448
|
- - ">="
|
|
448
449
|
- !ruby/object:Gem::Version
|
|
449
450
|
version: '0'
|
|
450
451
|
requirements: []
|
|
451
|
-
rubygems_version:
|
|
452
|
+
rubygems_version: 4.0.18
|
|
452
453
|
specification_version: 4
|
|
453
454
|
summary: Gradual Typing for Ruby
|
|
454
455
|
test_files: []
|