steep 1.2.0.pre.1 → 1.2.0
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 +11 -0
- data/Gemfile.lock +3 -3
- data/Steepfile +2 -1
- data/lib/steep/cli.rb +12 -13
- data/lib/steep/drivers/check.rb +4 -3
- data/lib/steep/drivers/checkfile.rb +10 -5
- data/lib/steep/drivers/langserver.rb +4 -6
- data/lib/steep/drivers/stats.rb +4 -3
- data/lib/steep/drivers/utils/jobs_option.rb +27 -0
- data/lib/steep/drivers/watch.rb +7 -6
- data/lib/steep/source.rb +0 -2
- data/lib/steep/subtyping/check.rb +0 -1
- data/lib/steep/version.rb +1 -1
- data/lib/steep.rb +1 -1
- data/sig/shims/parallel.rbs +5 -0
- data/sig/steep/cli.rbs +55 -0
- data/sig/steep/drivers/check.rbs +2 -2
- data/sig/steep/drivers/checkfile.rbs +2 -1
- data/sig/steep/drivers/langserver.rbs +15 -14
- data/sig/steep/drivers/stats.rbs +23 -13
- data/sig/steep/drivers/utils/jobs_option.rbs +23 -0
- data/sig/steep/drivers/watch.rbs +11 -11
- data/sig/steep/path_helper.rbs +6 -0
- data/steep.gemspec +1 -1
- metadata +11 -9
- data/lib/steep/drivers/utils/jobs_count.rb +0 -9
- data/sig/steep/drivers/utils/jobs_count.rbs +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93e3e37cfc8107518827a5b5e7126618c6189fae7804456e706b8ee810941ad7
|
4
|
+
data.tar.gz: c80ef32b93abb3f0c1f6f77eba1a675c993a2eb94632825f9057f76a39edb0ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72d8aadb1ea9454f47f4ab98dbd353c8372aa676096923c05d13d87f3b226fc7102c573bf02d563a5adbb2a072747ff5e9ea282e33cf0654ad3d3f562ebe81a5
|
7
|
+
data.tar.gz: 15fe6ea35cb298337440074e188178c6fdf73a03b5104fbca92863f8863862bfbb9d8e942e0b2482394307a19061185335da442af29d878c7d98f904ee52d2ab
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,17 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 1.2.0 (2022-10-08)
|
6
|
+
|
7
|
+
### Commandline tool
|
8
|
+
|
9
|
+
* Refactor `--jobs` and `--steep-command` option handling ([#654](https://github.com/soutaro/steep/pull/654))
|
10
|
+
|
11
|
+
### Miscellaneous
|
12
|
+
|
13
|
+
* Delete debug prints ([#653](https://github.com/soutaro/steep/pull/653))
|
14
|
+
* Update RBS to 2.7.0 ([#655](https://github.com/soutaro/steep/pull/655))
|
15
|
+
|
5
16
|
## 1.2.0.pre.1 (2022-10-06)
|
6
17
|
|
7
18
|
### Type checker core
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
steep (1.2.0
|
4
|
+
steep (1.2.0)
|
5
5
|
activesupport (>= 5.1)
|
6
6
|
language_server-protocol (>= 3.15, < 4.0)
|
7
7
|
listen (~> 3.0)
|
8
8
|
parallel (>= 1.0.0)
|
9
9
|
parser (>= 3.1)
|
10
10
|
rainbow (>= 2.2.2, < 4.0)
|
11
|
-
rbs (>= 2.7.0
|
11
|
+
rbs (>= 2.7.0)
|
12
12
|
securerandom (>= 0.1)
|
13
13
|
terminal-table (>= 2, < 4)
|
14
14
|
|
@@ -45,7 +45,7 @@ GEM
|
|
45
45
|
rb-fsevent (0.11.2)
|
46
46
|
rb-inotify (0.10.1)
|
47
47
|
ffi (~> 1.0)
|
48
|
-
rbs (2.7.0
|
48
|
+
rbs (2.7.0)
|
49
49
|
ruby-debug-ide (0.7.3)
|
50
50
|
rake (>= 0.8.1)
|
51
51
|
securerandom (0.2.0)
|
data/Steepfile
CHANGED
data/lib/steep/cli.rb
CHANGED
@@ -43,7 +43,9 @@ module Steep
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def setup_command
|
46
|
-
|
46
|
+
return false unless command = argv.shift&.to_sym
|
47
|
+
@command = command
|
48
|
+
|
47
49
|
if CLI.available_commands.include?(@command) || @command == :worker || @command == :vendor
|
48
50
|
true
|
49
51
|
else
|
@@ -74,16 +76,13 @@ module Steep
|
|
74
76
|
end
|
75
77
|
end
|
76
78
|
|
77
|
-
def handle_jobs_option(
|
78
|
-
|
79
|
-
|
80
|
-
opts.on("-j N", "--jobs=N", "Specify the number of type check workers (defaults: #{default})") do |count|
|
81
|
-
command.jobs_count = Integer(count) if Integer(count) > 0
|
79
|
+
def handle_jobs_option(option, opts)
|
80
|
+
opts.on("-j N", "--jobs=N", "Specify the number of type check workers (defaults: #{option.default_jobs_count})") do |count|
|
81
|
+
option.jobs_count = Integer(count) if Integer(count) > 0
|
82
82
|
end
|
83
83
|
|
84
|
-
command.steep_command = "steep"
|
85
84
|
opts.on("--steep-command=COMMAND", "Specify command to exec Steep CLI for worker (defaults: steep)") do |cmd|
|
86
|
-
|
85
|
+
option.steep_command = cmd
|
87
86
|
end
|
88
87
|
end
|
89
88
|
|
@@ -115,7 +114,7 @@ module Steep
|
|
115
114
|
opts.on("--severity-level=LEVEL", /^error|warning|information|hint$/, "Specify the minimum diagnostic severity to be recognized as an error (defaults: warning): error, warning, information, or hint") do |level|
|
116
115
|
check.severity_level = level.to_sym
|
117
116
|
end
|
118
|
-
handle_jobs_option check, opts
|
117
|
+
handle_jobs_option check.jobs_option, opts
|
119
118
|
handle_logging_options opts
|
120
119
|
end.parse!(argv)
|
121
120
|
|
@@ -138,7 +137,7 @@ module Steep
|
|
138
137
|
check.stdin_input[Pathname(object[:path])] = object[:content]
|
139
138
|
end
|
140
139
|
end
|
141
|
-
handle_jobs_option check, opts
|
140
|
+
handle_jobs_option check.jobs_option, opts
|
142
141
|
handle_logging_options opts
|
143
142
|
end.parse!(argv)
|
144
143
|
|
@@ -153,7 +152,7 @@ module Steep
|
|
153
152
|
|
154
153
|
opts.on("--steepfile=PATH") {|path| check.steepfile = Pathname(path) }
|
155
154
|
opts.on("--format=FORMAT", "Specify output format: csv, table") {|format| check.format = format }
|
156
|
-
handle_jobs_option check, opts
|
155
|
+
handle_jobs_option check.jobs_option, opts
|
157
156
|
handle_logging_options opts
|
158
157
|
end.parse!(argv)
|
159
158
|
|
@@ -197,7 +196,7 @@ module Steep
|
|
197
196
|
opts.on("--severity-level=LEVEL", /^error|warning|information|hint$/, "Specify the minimum diagnostic severity to be recognized as an error (defaults: warning): error, warning, information, or hint") do |level|
|
198
197
|
command.severity_level = level.to_sym
|
199
198
|
end
|
200
|
-
handle_jobs_option command, opts
|
199
|
+
handle_jobs_option command.jobs_option, opts
|
201
200
|
handle_logging_options opts
|
202
201
|
end.parse!(argv)
|
203
202
|
|
@@ -210,7 +209,7 @@ module Steep
|
|
210
209
|
Drivers::Langserver.new(stdout: stdout, stderr: stderr, stdin: stdin).tap do |command|
|
211
210
|
OptionParser.new do |opts|
|
212
211
|
opts.on("--steepfile=PATH") {|path| command.steepfile = Pathname(path) }
|
213
|
-
handle_jobs_option command, opts
|
212
|
+
handle_jobs_option command.jobs_option, opts
|
214
213
|
handle_logging_options opts
|
215
214
|
end.parse!(argv)
|
216
215
|
end.run
|
data/lib/steep/drivers/check.rb
CHANGED
@@ -9,15 +9,16 @@ module Steep
|
|
9
9
|
attr_accessor :with_expectations_path
|
10
10
|
attr_accessor :save_expectations_path
|
11
11
|
attr_accessor :severity_level
|
12
|
+
attr_reader :jobs_option
|
12
13
|
|
13
14
|
include Utils::DriverHelper
|
14
|
-
include Utils::JobsCount
|
15
15
|
|
16
16
|
def initialize(stdout:, stderr:)
|
17
17
|
@stdout = stdout
|
18
18
|
@stderr = stderr
|
19
19
|
@command_line_patterns = []
|
20
20
|
@severity_level = :warning
|
21
|
+
@jobs_option = Utils::JobsOption.new()
|
21
22
|
end
|
22
23
|
|
23
24
|
def run
|
@@ -39,8 +40,8 @@ module Steep
|
|
39
40
|
steepfile: project.steepfile_path,
|
40
41
|
args: command_line_patterns,
|
41
42
|
delay_shutdown: true,
|
42
|
-
steep_command:
|
43
|
-
count:
|
43
|
+
steep_command: jobs_option.steep_command_value,
|
44
|
+
count: jobs_option.jobs_count_value
|
44
45
|
)
|
45
46
|
|
46
47
|
master = Server::Master.new(
|
@@ -8,9 +8,9 @@ module Steep
|
|
8
8
|
attr_reader :command_line_args
|
9
9
|
attr_accessor :all_ruby, :all_rbs
|
10
10
|
attr_reader :stdin_input
|
11
|
+
attr_reader :jobs_option
|
11
12
|
|
12
13
|
include Utils::DriverHelper
|
13
|
-
include Utils::JobsCount
|
14
14
|
|
15
15
|
def initialize(stdout:, stderr:)
|
16
16
|
@stdout = stdout
|
@@ -20,6 +20,8 @@ module Steep
|
|
20
20
|
@all_rbs = false
|
21
21
|
@all_ruby = false
|
22
22
|
@stdin_input = {}
|
23
|
+
|
24
|
+
@jobs_option = Utils::JobsOption.new()
|
23
25
|
end
|
24
26
|
|
25
27
|
def run
|
@@ -88,10 +90,13 @@ module Steep
|
|
88
90
|
files = target_paths + signature_paths
|
89
91
|
|
90
92
|
count =
|
91
|
-
if
|
92
|
-
jobs_count
|
93
|
+
if jobs_option.jobs_count
|
94
|
+
jobs_option.jobs_count
|
93
95
|
else
|
94
|
-
|
96
|
+
[
|
97
|
+
files.size + 2,
|
98
|
+
jobs_option.default_jobs_count
|
99
|
+
].min || raise
|
95
100
|
end
|
96
101
|
|
97
102
|
Steep.logger.info { "Starting #{count} workers for #{files.size} files..." }
|
@@ -100,7 +105,7 @@ module Steep
|
|
100
105
|
steepfile: project.steepfile_path,
|
101
106
|
args: [],
|
102
107
|
delay_shutdown: true,
|
103
|
-
steep_command:
|
108
|
+
steep_command: jobs_option.steep_command_value,
|
104
109
|
count: count
|
105
110
|
)
|
106
111
|
|
@@ -4,15 +4,12 @@ module Steep
|
|
4
4
|
attr_reader :stdout
|
5
5
|
attr_reader :stderr
|
6
6
|
attr_reader :stdin
|
7
|
-
attr_reader :latest_update_version
|
8
7
|
attr_reader :write_mutex
|
9
8
|
attr_reader :type_check_queue
|
10
9
|
attr_reader :type_check_thread
|
10
|
+
attr_reader :jobs_option
|
11
11
|
|
12
12
|
include Utils::DriverHelper
|
13
|
-
include Utils::JobsCount
|
14
|
-
|
15
|
-
TypeCheckRequest = Struct.new(:version, keyword_init: true)
|
16
13
|
|
17
14
|
def initialize(stdout:, stderr:, stdin:)
|
18
15
|
@stdout = stdout
|
@@ -20,6 +17,7 @@ module Steep
|
|
20
17
|
@stdin = stdin
|
21
18
|
@write_mutex = Mutex.new
|
22
19
|
@type_check_queue = Queue.new
|
20
|
+
@jobs_option = Utils::JobsOption.new(jobs_count_modifier: -1)
|
23
21
|
end
|
24
22
|
|
25
23
|
def writer
|
@@ -37,8 +35,8 @@ module Steep
|
|
37
35
|
def run
|
38
36
|
@project = load_config()
|
39
37
|
|
40
|
-
interaction_worker = Server::WorkerProcess.spawn_worker(:interaction, name: "interaction", steepfile: project.steepfile_path, steep_command:
|
41
|
-
typecheck_workers = Server::WorkerProcess.spawn_typecheck_workers(steepfile: project.steepfile_path, args: [], steep_command:
|
38
|
+
interaction_worker = Server::WorkerProcess.spawn_worker(:interaction, name: "interaction", steepfile: project.steepfile_path, steep_command: jobs_option.steep_command_value)
|
39
|
+
typecheck_workers = Server::WorkerProcess.spawn_typecheck_workers(steepfile: project.steepfile_path, args: [], steep_command: jobs_option.steep_command_value, count: jobs_option.jobs_count_value)
|
42
40
|
|
43
41
|
master = Server::Master.new(
|
44
42
|
project: project,
|
data/lib/steep/drivers/stats.rb
CHANGED
@@ -100,14 +100,15 @@ module Steep
|
|
100
100
|
attr_reader :stderr
|
101
101
|
attr_reader :command_line_patterns
|
102
102
|
attr_accessor :format
|
103
|
+
attr_reader :jobs_option
|
103
104
|
|
104
105
|
include Utils::DriverHelper
|
105
|
-
include Utils::JobsCount
|
106
106
|
|
107
107
|
def initialize(stdout:, stderr:)
|
108
108
|
@stdout = stdout
|
109
109
|
@stderr = stderr
|
110
110
|
@command_line_patterns = []
|
111
|
+
@jobs_option = Utils::JobsOption.new()
|
111
112
|
end
|
112
113
|
|
113
114
|
def run
|
@@ -129,8 +130,8 @@ module Steep
|
|
129
130
|
steepfile: project.steepfile_path,
|
130
131
|
delay_shutdown: true,
|
131
132
|
args: command_line_patterns,
|
132
|
-
steep_command:
|
133
|
-
count:
|
133
|
+
steep_command: jobs_option.steep_command_value,
|
134
|
+
count: jobs_option.jobs_count_value
|
134
135
|
)
|
135
136
|
|
136
137
|
master = Server::Master.new(
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Steep
|
2
|
+
module Drivers
|
3
|
+
module Utils
|
4
|
+
class JobsOption
|
5
|
+
attr_accessor :jobs_count, :steep_command, :jobs_count_modifier
|
6
|
+
|
7
|
+
include Parallel::ProcessorCount
|
8
|
+
|
9
|
+
def initialize(jobs_count_modifier: 0)
|
10
|
+
@jobs_count_modifier = jobs_count_modifier
|
11
|
+
end
|
12
|
+
|
13
|
+
def default_jobs_count
|
14
|
+
physical_processor_count + jobs_count_modifier
|
15
|
+
end
|
16
|
+
|
17
|
+
def jobs_count_value
|
18
|
+
jobs_count || default_jobs_count
|
19
|
+
end
|
20
|
+
|
21
|
+
def steep_command_value
|
22
|
+
steep_command || "steep"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/steep/drivers/watch.rb
CHANGED
@@ -6,9 +6,9 @@ module Steep
|
|
6
6
|
attr_reader :stderr
|
7
7
|
attr_reader :queue
|
8
8
|
attr_accessor :severity_level
|
9
|
+
attr_reader :jobs_option
|
9
10
|
|
10
11
|
include Utils::DriverHelper
|
11
|
-
include Utils::JobsCount
|
12
12
|
|
13
13
|
LSP = LanguageServer::Protocol
|
14
14
|
|
@@ -18,6 +18,7 @@ module Steep
|
|
18
18
|
@stderr = stderr
|
19
19
|
@queue = Thread::Queue.new
|
20
20
|
@severity_level = :warning
|
21
|
+
@jobs_option = Utils::JobsOption.new()
|
21
22
|
end
|
22
23
|
|
23
24
|
def watching?(changed_path, files:, dirs:)
|
@@ -41,7 +42,7 @@ module Steep
|
|
41
42
|
server_reader = LanguageServer::Protocol::Transport::Io::Reader.new(server_read)
|
42
43
|
server_writer = LanguageServer::Protocol::Transport::Io::Writer.new(server_write)
|
43
44
|
|
44
|
-
typecheck_workers = Server::WorkerProcess.spawn_typecheck_workers(steepfile: project.steepfile_path, args: dirs.map(&:to_s), steep_command:
|
45
|
+
typecheck_workers = Server::WorkerProcess.spawn_typecheck_workers(steepfile: project.steepfile_path, args: dirs.map(&:to_s), steep_command: jobs_option.steep_command_value, count: jobs_option.jobs_count_value)
|
45
46
|
|
46
47
|
master = Server::Master.new(
|
47
48
|
project: project,
|
@@ -51,7 +52,7 @@ module Steep
|
|
51
52
|
typecheck_workers: typecheck_workers
|
52
53
|
)
|
53
54
|
master.typecheck_automatically = false
|
54
|
-
master.commandline_args.push(*dirs)
|
55
|
+
master.commandline_args.push(*dirs.map(&:to_s))
|
55
56
|
|
56
57
|
main_thread = Thread.start do
|
57
58
|
master.start()
|
@@ -99,6 +100,7 @@ module Steep
|
|
99
100
|
end
|
100
101
|
|
101
102
|
removed.each do |path|
|
103
|
+
p = Pathname(path)
|
102
104
|
if watching?(p, files: file_paths, dirs: dir_paths)
|
103
105
|
client_writer.write(
|
104
106
|
method: "textDocument/didChange",
|
@@ -112,7 +114,7 @@ module Steep
|
|
112
114
|
end
|
113
115
|
|
114
116
|
client_writer.write(method: "$/typecheck", params: { guid: nil })
|
115
|
-
|
117
|
+
|
116
118
|
stdout.puts Rainbow("done!").bold
|
117
119
|
end.tap(&:start)
|
118
120
|
|
@@ -124,8 +126,7 @@ module Steep
|
|
124
126
|
client_reader.read do |response|
|
125
127
|
case response[:method]
|
126
128
|
when "textDocument/publishDiagnostics"
|
127
|
-
|
128
|
-
path = project.relative_path(Pathname(uri.path))
|
129
|
+
path = PathHelper.to_pathname(response[:params][:uri]) or break
|
129
130
|
buffer = RBS::Buffer.new(content: path.read, name: path)
|
130
131
|
printer = DiagnosticPrinter.new(stdout: stdout, buffer: buffer)
|
131
132
|
|
data/lib/steep/source.rb
CHANGED
@@ -194,7 +194,6 @@ module Steep
|
|
194
194
|
fvs = relation.sub_type.free_variables + relation.super_type.free_variables
|
195
195
|
cached = cache[relation, @self_type, @instance_type, @class_type, bounds]
|
196
196
|
if cached && fvs.none? {|var| constraints.unknown?(var) }
|
197
|
-
Steep.logger.fatal { { cached: relation.to_s }.inspect }
|
198
197
|
cached
|
199
198
|
else
|
200
199
|
if assumptions.member?(relation)
|
data/lib/steep/version.rb
CHANGED
data/lib/steep.rb
CHANGED
@@ -125,7 +125,7 @@ require "steep/project/dsl"
|
|
125
125
|
|
126
126
|
require "steep/expectations"
|
127
127
|
require "steep/drivers/utils/driver_helper"
|
128
|
-
require "steep/drivers/utils/
|
128
|
+
require "steep/drivers/utils/jobs_option"
|
129
129
|
require "steep/drivers/check"
|
130
130
|
require "steep/drivers/checkfile"
|
131
131
|
require "steep/drivers/stats"
|
data/sig/steep/cli.rbs
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module Steep
|
2
|
+
class CLI
|
3
|
+
attr_reader argv: Array[String]
|
4
|
+
|
5
|
+
attr_reader stdout: IO
|
6
|
+
|
7
|
+
attr_reader stdin: IO
|
8
|
+
|
9
|
+
attr_reader stderr: IO
|
10
|
+
|
11
|
+
attr_reader command: Symbol
|
12
|
+
|
13
|
+
include Parallel::ProcessorCount
|
14
|
+
|
15
|
+
def initialize: (stdout: IO, stdin: IO, stderr: IO, argv: Array[String]) -> void
|
16
|
+
|
17
|
+
def self.available_commands: () -> ::Array[Symbol]
|
18
|
+
|
19
|
+
def process_global_options: () -> bool
|
20
|
+
|
21
|
+
def setup_command: () -> bool
|
22
|
+
|
23
|
+
def run: () -> Integer
|
24
|
+
|
25
|
+
def handle_logging_options: (OptionParser opts) -> void
|
26
|
+
|
27
|
+
def handle_jobs_option: (Drivers::Utils::JobsOption jobs_option, OptionParser opts) -> void
|
28
|
+
|
29
|
+
def process_init: () -> Integer
|
30
|
+
|
31
|
+
def process_check: () -> Integer
|
32
|
+
|
33
|
+
def process_checkfile: () -> Integer
|
34
|
+
|
35
|
+
def process_stats: () -> Integer
|
36
|
+
|
37
|
+
def process_validate: () -> Integer
|
38
|
+
|
39
|
+
def process_annotations: () -> Integer
|
40
|
+
|
41
|
+
def process_project: () -> Integer
|
42
|
+
|
43
|
+
def process_watch: () -> Integer
|
44
|
+
|
45
|
+
def process_langserver: () -> Integer
|
46
|
+
|
47
|
+
def process_vendor: () -> Integer
|
48
|
+
|
49
|
+
def process_binstub: () -> Integer
|
50
|
+
|
51
|
+
def process_version: () -> Integer
|
52
|
+
|
53
|
+
def process_worker: () -> Integer
|
54
|
+
end
|
55
|
+
end
|
data/sig/steep/drivers/check.rbs
CHANGED
@@ -15,9 +15,9 @@ module Steep
|
|
15
15
|
|
16
16
|
attr_accessor severity_level: untyped
|
17
17
|
|
18
|
-
|
18
|
+
attr_reader jobs_option: Utils::JobsOption
|
19
19
|
|
20
|
-
include Utils::
|
20
|
+
include Utils::DriverHelper
|
21
21
|
|
22
22
|
def initialize: (stdout: untyped, stderr: untyped) -> void
|
23
23
|
|
@@ -10,7 +10,6 @@ module Steep
|
|
10
10
|
attr_reader command_line_args: Array[String]
|
11
11
|
|
12
12
|
include Utils::DriverHelper
|
13
|
-
include Utils::JobsCount
|
14
13
|
|
15
14
|
attr_accessor all_rbs: bool
|
16
15
|
|
@@ -18,6 +17,8 @@ module Steep
|
|
18
17
|
|
19
18
|
attr_reader stdin_input: Hash[Pathname, String]
|
20
19
|
|
20
|
+
attr_reader jobs_option: Utils::JobsOption
|
21
|
+
|
21
22
|
def initialize: (stdout: IO, stderr: IO) -> void
|
22
23
|
|
23
24
|
def run: () -> Integer
|
@@ -1,35 +1,36 @@
|
|
1
1
|
module Steep
|
2
2
|
module Drivers
|
3
3
|
class Langserver
|
4
|
-
attr_reader stdout:
|
4
|
+
attr_reader stdout: IO
|
5
5
|
|
6
|
-
attr_reader stderr:
|
6
|
+
attr_reader stderr: IO
|
7
7
|
|
8
|
-
attr_reader stdin:
|
8
|
+
attr_reader stdin: IO
|
9
9
|
|
10
|
-
attr_reader
|
10
|
+
attr_reader write_mutex: Thread::Mutex
|
11
11
|
|
12
|
-
attr_reader
|
12
|
+
attr_reader type_check_queue: Thread::Queue
|
13
13
|
|
14
|
-
attr_reader
|
14
|
+
attr_reader type_check_thread: Thread
|
15
15
|
|
16
|
-
attr_reader
|
16
|
+
attr_reader jobs_option: Utils::JobsOption
|
17
17
|
|
18
18
|
include Utils::DriverHelper
|
19
19
|
|
20
|
-
|
20
|
+
def initialize: (stdout: untyped, stderr: untyped, stdin: untyped) -> void
|
21
21
|
|
22
|
-
|
22
|
+
@writer: LanguageServer::Protocol::Transport::Io::Writer?
|
23
23
|
|
24
|
-
def
|
24
|
+
def writer: () -> LanguageServer::Protocol::Transport::Io::Writer
|
25
25
|
|
26
|
-
|
26
|
+
@reader: LanguageServer::Protocol::Transport::Io::Reader?
|
27
27
|
|
28
|
-
def reader: () ->
|
28
|
+
def reader: () -> LanguageServer::Protocol::Transport::Io::Reader
|
29
29
|
|
30
|
-
|
30
|
+
@project: Project
|
31
|
+
def project: () -> Project
|
31
32
|
|
32
|
-
def run: () ->
|
33
|
+
def run: () -> Integer
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
data/sig/steep/drivers/stats.rbs
CHANGED
@@ -1,35 +1,45 @@
|
|
1
1
|
module Steep
|
2
2
|
module Drivers
|
3
3
|
class Stats
|
4
|
+
type file_stats = {
|
5
|
+
type: String,
|
6
|
+
target: String,
|
7
|
+
path: String,
|
8
|
+
type: String,
|
9
|
+
typed_calls: Integer,
|
10
|
+
untyped_calls: Integer,
|
11
|
+
total_calls: Integer
|
12
|
+
}
|
13
|
+
|
4
14
|
class CSVPrinter
|
5
|
-
attr_reader io:
|
15
|
+
attr_reader io: IO
|
6
16
|
|
7
|
-
def initialize: (io:
|
17
|
+
def initialize: (io: IO) -> void
|
8
18
|
|
9
|
-
def print: (
|
19
|
+
def print: (Array[file_stats] stats_result) -> void
|
10
20
|
end
|
11
21
|
|
12
22
|
class TablePrinter
|
13
|
-
attr_reader io:
|
23
|
+
attr_reader io: IO
|
14
24
|
|
15
|
-
def initialize: (io:
|
25
|
+
def initialize: (io: IO) -> void
|
16
26
|
|
17
|
-
def print: (
|
27
|
+
def print: (Array[file_stats] stats_result) -> void
|
18
28
|
end
|
19
29
|
|
20
|
-
attr_reader stdout:
|
30
|
+
attr_reader stdout: IO
|
21
31
|
|
22
|
-
attr_reader stderr:
|
32
|
+
attr_reader stderr: IO
|
23
33
|
|
24
|
-
attr_reader command_line_patterns:
|
34
|
+
attr_reader command_line_patterns: Array[String]
|
25
35
|
|
26
|
-
attr_accessor format:
|
36
|
+
attr_accessor format: "csv" | "table" | nil
|
27
37
|
|
28
|
-
|
38
|
+
attr_reader jobs_option: Utils::JobsOption
|
29
39
|
|
30
|
-
include Utils::
|
40
|
+
include Utils::DriverHelper
|
31
41
|
|
32
|
-
def initialize: (stdout:
|
42
|
+
def initialize: (stdout: IO, stderr: IO) -> void
|
33
43
|
|
34
44
|
def run: () -> 0
|
35
45
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Steep
|
2
|
+
module Drivers
|
3
|
+
module Utils
|
4
|
+
class JobsOption
|
5
|
+
attr_accessor jobs_count: Integer?
|
6
|
+
|
7
|
+
attr_accessor steep_command: String?
|
8
|
+
|
9
|
+
attr_reader jobs_count_modifier: Integer
|
10
|
+
|
11
|
+
include Parallel::ProcessorCount
|
12
|
+
|
13
|
+
def initialize: (?jobs_count_modifier: Integer) -> void
|
14
|
+
|
15
|
+
def default_jobs_count: () -> Integer
|
16
|
+
|
17
|
+
def jobs_count_value: () -> Integer
|
18
|
+
|
19
|
+
def steep_command_value: () -> String
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/sig/steep/drivers/watch.rbs
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
module Steep
|
2
2
|
module Drivers
|
3
3
|
class Watch
|
4
|
-
attr_reader dirs:
|
4
|
+
attr_reader dirs: Array[Pathname]
|
5
5
|
|
6
|
-
attr_reader stdout:
|
6
|
+
attr_reader stdout: IO
|
7
7
|
|
8
|
-
attr_reader stderr:
|
8
|
+
attr_reader stderr: IO
|
9
9
|
|
10
|
-
attr_reader queue:
|
10
|
+
attr_reader queue: Thread::Queue
|
11
11
|
|
12
|
-
attr_accessor severity_level:
|
12
|
+
attr_accessor severity_level: Symbol
|
13
13
|
|
14
|
-
|
14
|
+
attr_reader jobs_option: Utils::JobsOption
|
15
15
|
|
16
|
-
include Utils::
|
16
|
+
include Utils::DriverHelper
|
17
17
|
|
18
|
-
LSP:
|
18
|
+
LSP: singleton(LanguageServer::Protocol)
|
19
19
|
|
20
|
-
def initialize: (stdout:
|
20
|
+
def initialize: (stdout: IO, stderr: IO) -> void
|
21
21
|
|
22
|
-
def watching?: (
|
22
|
+
def watching?: (Pathname changed_path, files: Set[Pathname], dirs: Set[Pathname]) -> bool
|
23
23
|
|
24
|
-
def run: () ->
|
24
|
+
def run: () -> Integer
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
data/sig/steep/path_helper.rbs
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
module Steep
|
2
2
|
module PathHelper
|
3
|
+
# Receives a String that represents a *file* URI and returns a Pathname
|
4
|
+
#
|
5
|
+
# Returns `nil` when the schema of given URI is not `file://`.
|
6
|
+
#
|
3
7
|
def self?.to_pathname: (String uri, ?dosish: bool) -> Pathname?
|
4
8
|
|
9
|
+
# Receives a Pathname and returns a *file* URI
|
10
|
+
#
|
5
11
|
def self?.to_uri: (Pathname path, ?dosish: bool) -> URI::File
|
6
12
|
end
|
7
13
|
end
|
data/steep.gemspec
CHANGED
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
|
34
34
|
spec.add_runtime_dependency "listen", "~> 3.0"
|
35
35
|
spec.add_runtime_dependency "language_server-protocol", ">= 3.15", "< 4.0"
|
36
|
-
spec.add_runtime_dependency "rbs", ">= 2.7.0
|
36
|
+
spec.add_runtime_dependency "rbs", ">= 2.7.0"
|
37
37
|
spec.add_runtime_dependency "parallel", ">= 1.0.0"
|
38
38
|
spec.add_runtime_dependency "terminal-table", ">= 2", "< 4"
|
39
39
|
spec.add_runtime_dependency "securerandom", ">= 0.1"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: steep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soutaro Matsumoto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -98,14 +98,14 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 2.7.0
|
101
|
+
version: 2.7.0
|
102
102
|
type: :runtime
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
106
|
- - ">="
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
version: 2.7.0
|
108
|
+
version: 2.7.0
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: parallel
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,7 +225,7 @@ files:
|
|
225
225
|
- lib/steep/drivers/print_project.rb
|
226
226
|
- lib/steep/drivers/stats.rb
|
227
227
|
- lib/steep/drivers/utils/driver_helper.rb
|
228
|
-
- lib/steep/drivers/utils/
|
228
|
+
- lib/steep/drivers/utils/jobs_option.rb
|
229
229
|
- lib/steep/drivers/validate.rb
|
230
230
|
- lib/steep/drivers/vendor.rb
|
231
231
|
- lib/steep/drivers/watch.rb
|
@@ -303,6 +303,7 @@ files:
|
|
303
303
|
- sample/sig/conference.rbs
|
304
304
|
- sample/sig/length.rbs
|
305
305
|
- sig/shims/language-server_protocol.rbs
|
306
|
+
- sig/shims/parallel.rbs
|
306
307
|
- sig/shims/parser.rbs
|
307
308
|
- sig/shims/parser/source/map.rbs
|
308
309
|
- sig/shims/parser/source/range.rbs
|
@@ -333,6 +334,7 @@ files:
|
|
333
334
|
- sig/steep/ast/types/union.rbs
|
334
335
|
- sig/steep/ast/types/var.rbs
|
335
336
|
- sig/steep/ast/types/void.rbs
|
337
|
+
- sig/steep/cli.rbs
|
336
338
|
- sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs
|
337
339
|
- sig/steep/diagnostic/helper.rbs
|
338
340
|
- sig/steep/diagnostic/lsp_formatter.rbs
|
@@ -347,7 +349,7 @@ files:
|
|
347
349
|
- sig/steep/drivers/print_project.rbs
|
348
350
|
- sig/steep/drivers/stats.rbs
|
349
351
|
- sig/steep/drivers/utils/driver_helper.rbs
|
350
|
-
- sig/steep/drivers/utils/
|
352
|
+
- sig/steep/drivers/utils/jobs_option.rbs
|
351
353
|
- sig/steep/drivers/validate.rbs
|
352
354
|
- sig/steep/drivers/vendor.rbs
|
353
355
|
- sig/steep/drivers/watch.rbs
|
@@ -682,11 +684,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
682
684
|
version: 2.6.0
|
683
685
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
684
686
|
requirements:
|
685
|
-
- - "
|
687
|
+
- - ">="
|
686
688
|
- !ruby/object:Gem::Version
|
687
|
-
version:
|
689
|
+
version: '0'
|
688
690
|
requirements: []
|
689
|
-
rubygems_version: 3.3.
|
691
|
+
rubygems_version: 3.3.7
|
690
692
|
signing_key:
|
691
693
|
specification_version: 4
|
692
694
|
summary: Gradual Typing for Ruby
|