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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -1
  3. data/CLAUDE.md +114 -0
  4. data/README.md +2 -2
  5. data/Rakefile +365 -150
  6. data/Steepfile +13 -13
  7. data/doc/release.md +264 -0
  8. data/lib/steep/annotation_parser.rb +5 -1
  9. data/lib/steep/annotations_helper.rb +12 -2
  10. data/lib/steep/ast/node/type_application.rb +22 -16
  11. data/lib/steep/ast/node/type_assertion.rb +7 -4
  12. data/lib/steep/ast/types/factory.rb +3 -2
  13. data/lib/steep/cli.rb +246 -2
  14. data/lib/steep/daemon/configuration.rb +19 -0
  15. data/lib/steep/daemon/server.rb +476 -0
  16. data/lib/steep/daemon.rb +201 -0
  17. data/lib/steep/diagnostic/ruby.rb +54 -12
  18. data/lib/steep/diagnostic/signature.rb +31 -8
  19. data/lib/steep/drivers/check.rb +301 -140
  20. data/lib/steep/drivers/print_project.rb +9 -10
  21. data/lib/steep/drivers/query.rb +102 -0
  22. data/lib/steep/drivers/start_server.rb +19 -0
  23. data/lib/steep/drivers/stop_server.rb +20 -0
  24. data/lib/steep/drivers/watch.rb +2 -2
  25. data/lib/steep/index/rbs_index.rb +38 -13
  26. data/lib/steep/index/signature_symbol_provider.rb +24 -3
  27. data/lib/steep/interface/builder.rb +48 -15
  28. data/lib/steep/interface/shape.rb +13 -5
  29. data/lib/steep/locator.rb +377 -0
  30. data/lib/steep/node_helper.rb +2 -2
  31. data/lib/steep/project/dsl.rb +26 -5
  32. data/lib/steep/project/group.rb +8 -2
  33. data/lib/steep/project/target.rb +16 -2
  34. data/lib/steep/project.rb +21 -2
  35. data/lib/steep/server/base_worker.rb +2 -2
  36. data/lib/steep/server/change_buffer.rb +2 -1
  37. data/lib/steep/server/custom_methods.rb +12 -0
  38. data/lib/steep/server/inline_source_change_detector.rb +94 -0
  39. data/lib/steep/server/interaction_worker.rb +51 -74
  40. data/lib/steep/server/lsp_formatter.rb +48 -12
  41. data/lib/steep/server/master.rb +100 -18
  42. data/lib/steep/server/target_group_files.rb +124 -151
  43. data/lib/steep/server/type_check_controller.rb +276 -123
  44. data/lib/steep/server/type_check_worker.rb +104 -3
  45. data/lib/steep/services/completion_provider/rbs.rb +74 -0
  46. data/lib/steep/services/completion_provider/ruby.rb +652 -0
  47. data/lib/steep/services/completion_provider/type_name.rb +243 -0
  48. data/lib/steep/services/completion_provider.rb +39 -662
  49. data/lib/steep/services/content_change.rb +14 -1
  50. data/lib/steep/services/file_loader.rb +4 -2
  51. data/lib/steep/services/goto_service.rb +271 -68
  52. data/lib/steep/services/hover_provider/content.rb +67 -0
  53. data/lib/steep/services/hover_provider/rbs.rb +8 -9
  54. data/lib/steep/services/hover_provider/ruby.rb +124 -65
  55. data/lib/steep/services/hover_provider/singleton_methods.rb +4 -0
  56. data/lib/steep/services/signature_help_provider.rb +1 -1
  57. data/lib/steep/services/signature_service.rb +129 -54
  58. data/lib/steep/services/type_check_service.rb +72 -27
  59. data/lib/steep/signature/validator.rb +30 -18
  60. data/lib/steep/source/ignore_ranges.rb +14 -4
  61. data/lib/steep/source.rb +21 -7
  62. data/lib/steep/tagged_logging.rb +39 -0
  63. data/lib/steep/type_construction.rb +111 -24
  64. data/lib/steep/type_inference/block_params.rb +7 -7
  65. data/lib/steep/type_inference/context.rb +4 -2
  66. data/lib/steep/type_inference/logic_type_interpreter.rb +24 -3
  67. data/lib/steep/type_inference/method_call.rb +4 -0
  68. data/lib/steep/type_inference/type_env.rb +1 -1
  69. data/lib/steep/typing.rb +3 -5
  70. data/lib/steep/version.rb +1 -1
  71. data/lib/steep.rb +42 -32
  72. data/manual/ruby-diagnostics.md +67 -0
  73. data/sample/Steepfile +1 -0
  74. data/sample/lib/conference.rb +1 -0
  75. data/sample/lib/deprecated.rb +6 -0
  76. data/sample/lib/inline.rb +43 -0
  77. data/sample/sig/generics.rbs +3 -0
  78. data/steep.gemspec +4 -5
  79. metadata +27 -26
  80. 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[node]
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
@@ -1,3 +1,3 @@
1
1
  module Steep
2
- VERSION = "1.10.0"
2
+ VERSION = "2.1.0.dev.1"
3
3
  end
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 "active_support"
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
- logger = Logger.new(output)
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(output, prev_level)
201
+ @logger = new_logger(io, prev_level)
200
202
 
201
203
  prev_level = @ui_logger&.level
202
- @ui_logger = new_logger(output, prev_level)
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?(fork)
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
- # Steep::Interface::MethodType
304
- ] #: Array[Class]
305
-
306
- klasses.each do |klass|
307
- klass.instance_eval do
308
- def self.new(*_a, **_b, &_c)
309
- super
310
- end
311
- end
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
@@ -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
@@ -3,6 +3,7 @@ D = Steep::Diagnostic
3
3
  target :lib do
4
4
  signature "sig"
5
5
 
6
+ check "lib/inline.rb", inline: true
6
7
  check "lib" # Directory name
7
8
 
8
9
  # configure_code_diagnostics(D::Ruby.strict) # `strict` diagnostics setting
@@ -47,3 +47,4 @@ end
47
47
 
48
48
  conference = nil #: Conference?
49
49
 
50
+ [].map { "" } #$ Array[Symbol]
@@ -5,3 +5,9 @@ Bar.bar()
5
5
  Bar.new.hogehoge("")
6
6
 
7
7
  foo = nil #: Foo
8
+
9
+ # steep:ignore:start
10
+
11
+ 1
12
+
13
+ # steep:ignore:end
@@ -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
@@ -13,3 +13,6 @@ class StringGeneric[X < Integer, Y < Integer = String]
13
13
  extend LocationHelper
14
14
  end
15
15
 
16
+ class HelloWorld[T]
17
+ def hello_world: () -> T
18
+ end
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.1.0'
38
+ spec.required_ruby_version = '>= 3.2.0'
39
39
 
40
- spec.add_runtime_dependency "parser", ">= 3.1"
41
- spec.add_runtime_dependency "activesupport", ">= 5.1"
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", "~> 3.9"
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.10.0
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: 2025-03-18 00:00:00.000000000 Z
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.1'
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.1'
25
+ version: '3.2'
26
26
  - !ruby/object:Gem::Dependency
27
- name: activesupport
27
+ name: prism
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '5.1'
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: '5.1'
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: '3.9'
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: '3.9'
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.1.0
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: 3.6.2
452
+ rubygems_version: 4.0.18
452
453
  specification_version: 4
453
454
  summary: Gradual Typing for Ruby
454
455
  test_files: []