packwerk 1.0.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 +7 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
- data/.github/probots.yml +2 -0
- data/.github/pull_request_template.md +27 -0
- data/.github/workflows/ci.yml +50 -0
- data/.gitignore +12 -0
- data/.rubocop.yml +46 -0
- data/.ruby-version +1 -0
- data/CODEOWNERS +1 -0
- data/CODE_OF_CONDUCT.md +76 -0
- data/CONTRIBUTING.md +17 -0
- data/Gemfile +22 -0
- data/Gemfile.lock +236 -0
- data/LICENSE.md +7 -0
- data/README.md +73 -0
- data/Rakefile +13 -0
- data/TROUBLESHOOT.md +67 -0
- data/USAGE.md +250 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/dev.yml +32 -0
- data/docs/cohesion.png +0 -0
- data/exe/packwerk +6 -0
- data/lib/packwerk.rb +44 -0
- data/lib/packwerk/application_validator.rb +343 -0
- data/lib/packwerk/association_inspector.rb +44 -0
- data/lib/packwerk/checking_deprecated_references.rb +40 -0
- data/lib/packwerk/cli.rb +238 -0
- data/lib/packwerk/configuration.rb +82 -0
- data/lib/packwerk/const_node_inspector.rb +44 -0
- data/lib/packwerk/constant_discovery.rb +60 -0
- data/lib/packwerk/constant_name_inspector.rb +22 -0
- data/lib/packwerk/dependency_checker.rb +28 -0
- data/lib/packwerk/deprecated_references.rb +92 -0
- data/lib/packwerk/file_processor.rb +43 -0
- data/lib/packwerk/files_for_processing.rb +67 -0
- data/lib/packwerk/formatters/progress_formatter.rb +46 -0
- data/lib/packwerk/generators/application_validation.rb +62 -0
- data/lib/packwerk/generators/configuration_file.rb +69 -0
- data/lib/packwerk/generators/inflections_file.rb +43 -0
- data/lib/packwerk/generators/root_package.rb +37 -0
- data/lib/packwerk/generators/templates/inflections.yml +6 -0
- data/lib/packwerk/generators/templates/package.yml +17 -0
- data/lib/packwerk/generators/templates/packwerk +23 -0
- data/lib/packwerk/generators/templates/packwerk.yml.erb +23 -0
- data/lib/packwerk/generators/templates/packwerk_validator_test.rb +11 -0
- data/lib/packwerk/graph.rb +74 -0
- data/lib/packwerk/inflections/custom.rb +33 -0
- data/lib/packwerk/inflections/default.rb +73 -0
- data/lib/packwerk/inflector.rb +41 -0
- data/lib/packwerk/node.rb +259 -0
- data/lib/packwerk/node_processor.rb +49 -0
- data/lib/packwerk/node_visitor.rb +22 -0
- data/lib/packwerk/offense.rb +44 -0
- data/lib/packwerk/output_styles.rb +41 -0
- data/lib/packwerk/package.rb +56 -0
- data/lib/packwerk/package_set.rb +59 -0
- data/lib/packwerk/parsed_constant_definitions.rb +62 -0
- data/lib/packwerk/parsers.rb +23 -0
- data/lib/packwerk/parsers/erb.rb +66 -0
- data/lib/packwerk/parsers/factory.rb +34 -0
- data/lib/packwerk/parsers/ruby.rb +42 -0
- data/lib/packwerk/privacy_checker.rb +45 -0
- data/lib/packwerk/reference.rb +6 -0
- data/lib/packwerk/reference_extractor.rb +81 -0
- data/lib/packwerk/reference_lister.rb +23 -0
- data/lib/packwerk/run_context.rb +103 -0
- data/lib/packwerk/sanity_checker.rb +10 -0
- data/lib/packwerk/spring_command.rb +28 -0
- data/lib/packwerk/updating_deprecated_references.rb +51 -0
- data/lib/packwerk/version.rb +6 -0
- data/lib/packwerk/violation_type.rb +13 -0
- data/library.yml +6 -0
- data/packwerk.gemspec +58 -0
- data/service.yml +6 -0
- data/shipit.rubygems.yml +1 -0
- data/sorbet/config +2 -0
- data/sorbet/rbi/gems/actioncable@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +840 -0
- data/sorbet/rbi/gems/actionmailbox@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +571 -0
- data/sorbet/rbi/gems/actionmailer@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +568 -0
- data/sorbet/rbi/gems/actionpack@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +5216 -0
- data/sorbet/rbi/gems/actiontext@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +663 -0
- data/sorbet/rbi/gems/actionview@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +2504 -0
- data/sorbet/rbi/gems/activejob@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +635 -0
- data/sorbet/rbi/gems/activemodel@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +1201 -0
- data/sorbet/rbi/gems/activerecord@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8011 -0
- data/sorbet/rbi/gems/activestorage@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +904 -0
- data/sorbet/rbi/gems/activesupport@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +3888 -0
- data/sorbet/rbi/gems/ast@2.4.1.rbi +54 -0
- data/sorbet/rbi/gems/better_html@1.0.15.rbi +317 -0
- data/sorbet/rbi/gems/builder@3.2.4.rbi +8 -0
- data/sorbet/rbi/gems/byebug@11.1.3.rbi +8 -0
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
- data/sorbet/rbi/gems/colorize@0.8.1.rbi +40 -0
- data/sorbet/rbi/gems/commander@4.5.2.rbi +8 -0
- data/sorbet/rbi/gems/concurrent-ruby@1.1.6.rbi +1966 -0
- data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +26 -0
- data/sorbet/rbi/gems/crass@1.0.6.rbi +138 -0
- data/sorbet/rbi/gems/erubi@1.9.0.rbi +39 -0
- data/sorbet/rbi/gems/globalid@0.4.2.rbi +178 -0
- data/sorbet/rbi/gems/highline@2.0.3.rbi +8 -0
- data/sorbet/rbi/gems/html_tokenizer@0.0.7.rbi +46 -0
- data/sorbet/rbi/gems/i18n@1.8.2.rbi +633 -0
- data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +8 -0
- data/sorbet/rbi/gems/loofah@2.5.0.rbi +272 -0
- data/sorbet/rbi/gems/m@1.5.1.rbi +108 -0
- data/sorbet/rbi/gems/mail@2.7.1.rbi +2490 -0
- data/sorbet/rbi/gems/marcel@0.3.3.rbi +30 -0
- data/sorbet/rbi/gems/method_source@1.0.0.rbi +76 -0
- data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +47 -0
- data/sorbet/rbi/gems/mini_mime@1.0.2.rbi +71 -0
- data/sorbet/rbi/gems/mini_portile2@2.4.0.rbi +8 -0
- data/sorbet/rbi/gems/minitest@5.14.0.rbi +542 -0
- data/sorbet/rbi/gems/mocha@1.11.2.rbi +964 -0
- data/sorbet/rbi/gems/nio4r@2.5.2.rbi +89 -0
- data/sorbet/rbi/gems/nokogiri@1.10.9.rbi +1608 -0
- data/sorbet/rbi/gems/parallel@1.19.1.rbi +8 -0
- data/sorbet/rbi/gems/parlour@4.0.1.rbi +561 -0
- data/sorbet/rbi/gems/parser@2.7.1.4.rbi +1632 -0
- data/sorbet/rbi/gems/pry@0.13.1.rbi +8 -0
- data/sorbet/rbi/gems/rack-test@1.1.0.rbi +335 -0
- data/sorbet/rbi/gems/rack@2.2.2.rbi +1730 -0
- data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +123 -0
- data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +213 -0
- data/sorbet/rbi/gems/rails@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8 -0
- data/sorbet/rbi/gems/railties@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +869 -0
- data/sorbet/rbi/gems/rainbow@3.0.0.rbi +155 -0
- data/sorbet/rbi/gems/rake@13.0.1.rbi +841 -0
- data/sorbet/rbi/gems/rexml@3.2.4.rbi +8 -0
- data/sorbet/rbi/gems/rubocop-performance@1.5.2.rbi +8 -0
- data/sorbet/rbi/gems/rubocop-shopify@1.0.2.rbi +8 -0
- data/sorbet/rbi/gems/rubocop-sorbet@0.3.7.rbi +8 -0
- data/sorbet/rbi/gems/rubocop@0.82.0.rbi +8 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.10.1.rbi +8 -0
- data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +168 -0
- data/sorbet/rbi/gems/spoom@1.0.4.rbi +418 -0
- data/sorbet/rbi/gems/spring@2.1.0.rbi +160 -0
- data/sorbet/rbi/gems/sprockets-rails@3.2.1.rbi +431 -0
- data/sorbet/rbi/gems/sprockets@4.0.0.rbi +1132 -0
- data/sorbet/rbi/gems/tapioca@0.4.5.rbi +518 -0
- data/sorbet/rbi/gems/thor@1.0.1.rbi +892 -0
- data/sorbet/rbi/gems/tzinfo@2.0.2.rbi +547 -0
- data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +8 -0
- data/sorbet/rbi/gems/websocket-driver@0.7.1.rbi +438 -0
- data/sorbet/rbi/gems/websocket-extensions@0.1.4.rbi +71 -0
- data/sorbet/rbi/gems/zeitwerk@2.3.0.rbi +8 -0
- data/sorbet/tapioca/require.rb +25 -0
- data/static/packwerk-check-demo.png +0 -0
- data/static/packwerk_check.gif +0 -0
- data/static/packwerk_check_violation.gif +0 -0
- data/static/packwerk_update.gif +0 -0
- data/static/packwerk_validate.gif +0 -0
- metadata +341 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `rexml` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `rubocop-performance` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `rubocop-shopify` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `rubocop-sorbet` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `rubocop` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `ruby-progressbar` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
|
@@ -0,0 +1,168 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `smart_properties` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
module SmartProperties
|
8
|
+
mixes_in_class_methods(::SmartProperties::ClassMethods)
|
9
|
+
|
10
|
+
def initialize(*args, &block); end
|
11
|
+
|
12
|
+
def [](name); end
|
13
|
+
def []=(name, value); end
|
14
|
+
|
15
|
+
class << self
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def included(base); end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class SmartProperties::AssignmentError < ::SmartProperties::Error
|
24
|
+
def initialize(sender, property, message); end
|
25
|
+
|
26
|
+
def property; end
|
27
|
+
def property=(_); end
|
28
|
+
def sender; end
|
29
|
+
def sender=(_); end
|
30
|
+
end
|
31
|
+
|
32
|
+
module SmartProperties::ClassMethods
|
33
|
+
def properties; end
|
34
|
+
|
35
|
+
protected
|
36
|
+
|
37
|
+
def property(name, options = T.unsafe(nil)); end
|
38
|
+
def property!(name, options = T.unsafe(nil)); end
|
39
|
+
end
|
40
|
+
|
41
|
+
class SmartProperties::ConfigurationError < ::SmartProperties::Error
|
42
|
+
end
|
43
|
+
|
44
|
+
class SmartProperties::ConstructorArgumentForwardingError < ::SmartProperties::Error
|
45
|
+
def initialize(positional_arguments, keyword_arguments); end
|
46
|
+
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def generate_description(argument_type, argument_number); end
|
51
|
+
end
|
52
|
+
|
53
|
+
class SmartProperties::Error < ::ArgumentError
|
54
|
+
end
|
55
|
+
|
56
|
+
class SmartProperties::InitializationError < ::SmartProperties::Error
|
57
|
+
def initialize(sender, properties); end
|
58
|
+
|
59
|
+
def properties; end
|
60
|
+
def properties=(_); end
|
61
|
+
def sender; end
|
62
|
+
def sender=(_); end
|
63
|
+
def to_hash; end
|
64
|
+
end
|
65
|
+
|
66
|
+
class SmartProperties::InvalidValueError < ::SmartProperties::AssignmentError
|
67
|
+
def initialize(sender, property, value); end
|
68
|
+
|
69
|
+
def to_hash; end
|
70
|
+
def value; end
|
71
|
+
def value=(_); end
|
72
|
+
|
73
|
+
private
|
74
|
+
|
75
|
+
def accepter_message(sender, property); end
|
76
|
+
end
|
77
|
+
|
78
|
+
class SmartProperties::MissingValueError < ::SmartProperties::AssignmentError
|
79
|
+
def initialize(sender, property); end
|
80
|
+
|
81
|
+
def to_hash; end
|
82
|
+
end
|
83
|
+
|
84
|
+
class SmartProperties::Property
|
85
|
+
def initialize(name, attrs = T.unsafe(nil)); end
|
86
|
+
|
87
|
+
def accepter; end
|
88
|
+
def accepts?(value, scope); end
|
89
|
+
def convert(scope, value); end
|
90
|
+
def converter; end
|
91
|
+
def default(scope); end
|
92
|
+
def define(klass); end
|
93
|
+
def get(scope); end
|
94
|
+
def instance_variable_name; end
|
95
|
+
def missing?(scope); end
|
96
|
+
def name; end
|
97
|
+
def optional?(scope); end
|
98
|
+
def prepare(scope, value); end
|
99
|
+
def present?(scope); end
|
100
|
+
def reader; end
|
101
|
+
def required?(scope); end
|
102
|
+
def set(scope, value); end
|
103
|
+
def set_default(scope); end
|
104
|
+
def to_h; end
|
105
|
+
def writable; end
|
106
|
+
def writable?; end
|
107
|
+
|
108
|
+
private
|
109
|
+
|
110
|
+
def null_object?(object); end
|
111
|
+
|
112
|
+
class << self
|
113
|
+
def define(scope, name, options = T.unsafe(nil)); end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
SmartProperties::Property::ALLOWED_DEFAULT_CLASSES = T.let(T.unsafe(nil), Array)
|
118
|
+
|
119
|
+
SmartProperties::Property::MODULE_REFERENCE = T.let(T.unsafe(nil), Symbol)
|
120
|
+
|
121
|
+
class SmartProperties::PropertyCollection
|
122
|
+
include(::Enumerable)
|
123
|
+
|
124
|
+
def initialize; end
|
125
|
+
|
126
|
+
def [](name); end
|
127
|
+
def []=(name, value); end
|
128
|
+
def each(&block); end
|
129
|
+
def key?(name); end
|
130
|
+
def keys; end
|
131
|
+
def parent; end
|
132
|
+
def register(child); end
|
133
|
+
def to_hash; end
|
134
|
+
def values; end
|
135
|
+
|
136
|
+
protected
|
137
|
+
|
138
|
+
def children; end
|
139
|
+
def children=(_); end
|
140
|
+
def collection; end
|
141
|
+
def collection=(_); end
|
142
|
+
def collection_with_parent_collection; end
|
143
|
+
def collection_with_parent_collection=(_); end
|
144
|
+
def notify_children; end
|
145
|
+
def refresh(parent_collection); end
|
146
|
+
|
147
|
+
class << self
|
148
|
+
def for(scope); end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
SmartProperties::VERSION = T.let(T.unsafe(nil), String)
|
153
|
+
|
154
|
+
module SmartProperties::Validations
|
155
|
+
end
|
156
|
+
|
157
|
+
class SmartProperties::Validations::Ancestor
|
158
|
+
include(::SmartProperties)
|
159
|
+
extend(::SmartProperties::ClassMethods)
|
160
|
+
|
161
|
+
def to_proc; end
|
162
|
+
def to_s; end
|
163
|
+
def validate(klass); end
|
164
|
+
|
165
|
+
class << self
|
166
|
+
def must_be(*_); end
|
167
|
+
end
|
168
|
+
end
|
@@ -0,0 +1,418 @@
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
2
|
+
# This is an autogenerated file for types exported from the `spoom` gem.
|
3
|
+
# Please instead update this file by running `dev typecheck update`.
|
4
|
+
|
5
|
+
# typed: true
|
6
|
+
|
7
|
+
module Spoom
|
8
|
+
end
|
9
|
+
|
10
|
+
module Spoom::Cli
|
11
|
+
end
|
12
|
+
|
13
|
+
module Spoom::Cli::Commands
|
14
|
+
end
|
15
|
+
|
16
|
+
class Spoom::Cli::Commands::Base < ::Thor
|
17
|
+
def in_sorbet_project!; end
|
18
|
+
def in_sorbet_project?; end
|
19
|
+
def say_error(message, status = T.unsafe(nil)); end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Spoom::Cli::Commands::Config < ::Spoom::Cli::Commands::Base
|
23
|
+
def files; end
|
24
|
+
def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
|
25
|
+
def show; end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Spoom::Cli::Commands::LSP < ::Spoom::Cli::Commands::Base
|
29
|
+
def defs(file, line, col); end
|
30
|
+
def find(query); end
|
31
|
+
def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
|
32
|
+
def hover(file, line, col); end
|
33
|
+
def list; end
|
34
|
+
def lsp_client; end
|
35
|
+
def refs(file, line, col); end
|
36
|
+
def run(&block); end
|
37
|
+
def show; end
|
38
|
+
def sigs(file, line, col); end
|
39
|
+
def symbols(file); end
|
40
|
+
def types(file, line, col); end
|
41
|
+
end
|
42
|
+
|
43
|
+
class Spoom::Cli::Commands::Run < ::Spoom::Cli::Commands::Base
|
44
|
+
def colorize_code(code, colors = T.unsafe(nil)); end
|
45
|
+
def colorize_message(message, colors = T.unsafe(nil)); end
|
46
|
+
def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
|
47
|
+
def metrics; end
|
48
|
+
def tc; end
|
49
|
+
end
|
50
|
+
|
51
|
+
class Spoom::Cli::Main < ::Thor
|
52
|
+
def config(*args); end
|
53
|
+
def lsp(*args); end
|
54
|
+
def tc(*args); end
|
55
|
+
|
56
|
+
class << self
|
57
|
+
def exit_on_failure?; end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
class Spoom::Cli::SymbolPrinter
|
62
|
+
def initialize(default_indent, no_color = T.unsafe(nil)); end
|
63
|
+
|
64
|
+
def dedent; end
|
65
|
+
def indent; end
|
66
|
+
def no_color; end
|
67
|
+
def no_color=(_); end
|
68
|
+
def print(string); end
|
69
|
+
def printn; end
|
70
|
+
def printt; end
|
71
|
+
def seen; end
|
72
|
+
def seen=(_); end
|
73
|
+
def visit(object); end
|
74
|
+
|
75
|
+
class << self
|
76
|
+
def print_list(list, no_color); end
|
77
|
+
def print_object(object, no_color); end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
module Spoom::Config
|
82
|
+
end
|
83
|
+
|
84
|
+
Spoom::Config::SORBET_CONFIG = T.let(T.unsafe(nil), String)
|
85
|
+
|
86
|
+
Spoom::Config::SORBET_GEM_PATH = T.let(T.unsafe(nil), String)
|
87
|
+
|
88
|
+
Spoom::Config::SORBET_PATH = T.let(T.unsafe(nil), String)
|
89
|
+
|
90
|
+
Spoom::Config::WORKSPACE_PATH = T.let(T.unsafe(nil), String)
|
91
|
+
|
92
|
+
class Spoom::Error < ::StandardError
|
93
|
+
end
|
94
|
+
|
95
|
+
module Spoom::LSP
|
96
|
+
end
|
97
|
+
|
98
|
+
class Spoom::LSP::Client
|
99
|
+
def initialize(sorbet_cmd, *sorbet_args); end
|
100
|
+
|
101
|
+
def close; end
|
102
|
+
def definitions(uri, line, column); end
|
103
|
+
def document_symbols(uri); end
|
104
|
+
def hover(uri, line, column); end
|
105
|
+
def next_id; end
|
106
|
+
def open(workspace_path); end
|
107
|
+
def read; end
|
108
|
+
def read_raw; end
|
109
|
+
def references(uri, line, column, include_decl = T.unsafe(nil)); end
|
110
|
+
def send(message); end
|
111
|
+
def send_raw(json_string); end
|
112
|
+
def signatures(uri, line, column); end
|
113
|
+
def symbols(query); end
|
114
|
+
def type_definitions(uri, line, column); end
|
115
|
+
end
|
116
|
+
|
117
|
+
class Spoom::LSP::Diagnostic < ::T::Struct
|
118
|
+
const :range, Spoom::LSP::Range
|
119
|
+
const :code, Integer
|
120
|
+
const :message, String
|
121
|
+
const :informations, Object
|
122
|
+
|
123
|
+
def to_s; end
|
124
|
+
|
125
|
+
class << self
|
126
|
+
def from_json(json); end
|
127
|
+
def inherited(s); end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
class Spoom::LSP::DocumentSymbol < ::T::Struct
|
132
|
+
const :name, String
|
133
|
+
const :detail, T.nilable(String)
|
134
|
+
const :kind, Integer
|
135
|
+
const :location, T.nilable(Spoom::LSP::Location)
|
136
|
+
const :range, T.nilable(Spoom::LSP::Range)
|
137
|
+
const :children, T::Array[Spoom::LSP::DocumentSymbol]
|
138
|
+
|
139
|
+
def accept_printer(printer); end
|
140
|
+
def kind_string; end
|
141
|
+
def to_s; end
|
142
|
+
|
143
|
+
class << self
|
144
|
+
def from_json(json); end
|
145
|
+
def inherited(s); end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
|
150
|
+
|
151
|
+
class Spoom::LSP::Error < ::StandardError
|
152
|
+
end
|
153
|
+
|
154
|
+
class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error
|
155
|
+
end
|
156
|
+
|
157
|
+
class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error
|
158
|
+
end
|
159
|
+
|
160
|
+
class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
|
161
|
+
def initialize(uri, diagnostics); end
|
162
|
+
|
163
|
+
def diagnostics; end
|
164
|
+
def uri; end
|
165
|
+
|
166
|
+
class << self
|
167
|
+
def from_json(json); end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
class Spoom::LSP::Hover < ::T::Struct
|
172
|
+
const :contents, String
|
173
|
+
const :range, T.nilable(T::Range[T.untyped])
|
174
|
+
|
175
|
+
def accept_printer(printer); end
|
176
|
+
def to_s; end
|
177
|
+
|
178
|
+
class << self
|
179
|
+
def from_json(json); end
|
180
|
+
def inherited(s); end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
class Spoom::LSP::Location < ::T::Struct
|
185
|
+
const :uri, String
|
186
|
+
const :range, Spoom::LSP::Range
|
187
|
+
|
188
|
+
def accept_printer(printer); end
|
189
|
+
def to_s; end
|
190
|
+
|
191
|
+
class << self
|
192
|
+
def from_json(json); end
|
193
|
+
def inherited(s); end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
class Spoom::LSP::Message
|
198
|
+
def initialize; end
|
199
|
+
|
200
|
+
def as_json; end
|
201
|
+
def jsonrpc; end
|
202
|
+
def to_json(*args); end
|
203
|
+
end
|
204
|
+
|
205
|
+
class Spoom::LSP::Notification < ::Spoom::LSP::Message
|
206
|
+
def initialize(method, params); end
|
207
|
+
|
208
|
+
def method; end
|
209
|
+
def params; end
|
210
|
+
end
|
211
|
+
|
212
|
+
class Spoom::LSP::Position < ::T::Struct
|
213
|
+
const :line, Integer
|
214
|
+
const :char, Integer
|
215
|
+
|
216
|
+
def accept_printer(printer); end
|
217
|
+
def to_s; end
|
218
|
+
|
219
|
+
class << self
|
220
|
+
def from_json(json); end
|
221
|
+
def inherited(s); end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
class Spoom::LSP::Range < ::T::Struct
|
226
|
+
const :start, Spoom::LSP::Position
|
227
|
+
const :end, Spoom::LSP::Position
|
228
|
+
|
229
|
+
def accept_printer(printer); end
|
230
|
+
def to_s; end
|
231
|
+
|
232
|
+
class << self
|
233
|
+
def from_json(json); end
|
234
|
+
def inherited(s); end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
class Spoom::LSP::Request < ::Spoom::LSP::Message
|
239
|
+
def initialize(id, method, params); end
|
240
|
+
|
241
|
+
def id; end
|
242
|
+
def method; end
|
243
|
+
def params; end
|
244
|
+
end
|
245
|
+
|
246
|
+
class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
|
247
|
+
def initialize(code, message, data); end
|
248
|
+
|
249
|
+
def code; end
|
250
|
+
def data; end
|
251
|
+
def message; end
|
252
|
+
|
253
|
+
class << self
|
254
|
+
def from_json(json); end
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
class Spoom::LSP::SignatureHelp < ::T::Struct
|
259
|
+
const :label, T.nilable(String)
|
260
|
+
const :doc, Object
|
261
|
+
const :params, T::Array[T.untyped]
|
262
|
+
|
263
|
+
def accept_printer(printer); end
|
264
|
+
def to_s; end
|
265
|
+
|
266
|
+
class << self
|
267
|
+
def from_json(json); end
|
268
|
+
def inherited(s); end
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
module Spoom::Sorbet
|
273
|
+
class << self
|
274
|
+
sig { params(arg: String, path: String, capture_err: T::Boolean).returns([String, T::Boolean]) }
|
275
|
+
def srb(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
|
276
|
+
sig { params(config: Spoom::Sorbet::Config, path: String).returns(T::Array[String]) }
|
277
|
+
def srb_files(config, path: T.unsafe(nil)); end
|
278
|
+
sig { params(arg: String, path: String, capture_err: T::Boolean).returns(T.nilable(Spoom::Sorbet::Metrics)) }
|
279
|
+
def srb_metrics(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
|
280
|
+
sig { params(arg: String, path: String, capture_err: T::Boolean).returns([String, T::Boolean]) }
|
281
|
+
def srb_tc(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
|
282
|
+
sig { params(arg: String, path: String, capture_err: T::Boolean).returns(T.nilable(String)) }
|
283
|
+
def srb_version(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
class Spoom::Sorbet::Config
|
288
|
+
sig { void }
|
289
|
+
def initialize; end
|
290
|
+
|
291
|
+
def allowed_extensions; end
|
292
|
+
def ignore; end
|
293
|
+
sig { returns(T::Array[String]) }
|
294
|
+
def paths; end
|
295
|
+
|
296
|
+
class << self
|
297
|
+
sig { params(sorbet_config_path: String).returns(Spoom::Sorbet::Config) }
|
298
|
+
def parse_file(sorbet_config_path); end
|
299
|
+
sig { params(sorbet_config: String).returns(Spoom::Sorbet::Config) }
|
300
|
+
def parse_string(sorbet_config); end
|
301
|
+
|
302
|
+
private
|
303
|
+
|
304
|
+
sig { params(line: String).returns(String) }
|
305
|
+
def parse_option(line); end
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
module Spoom::Sorbet::Errors
|
310
|
+
end
|
311
|
+
|
312
|
+
class Spoom::Sorbet::Errors::Error
|
313
|
+
include(::Comparable)
|
314
|
+
|
315
|
+
sig { params(file: T.nilable(String), line: T.nilable(Integer), message: T.nilable(String), code: T.nilable(Integer), more: T::Array[String]).void }
|
316
|
+
def initialize(file, line, message, code, more = T.unsafe(nil)); end
|
317
|
+
|
318
|
+
sig { params(other: T.untyped).returns(Integer) }
|
319
|
+
def <=>(other); end
|
320
|
+
def code; end
|
321
|
+
sig { returns(T.nilable(String)) }
|
322
|
+
def file; end
|
323
|
+
sig { returns(T.nilable(Integer)) }
|
324
|
+
def line; end
|
325
|
+
def message; end
|
326
|
+
sig { returns(T::Array[String]) }
|
327
|
+
def more; end
|
328
|
+
sig { returns(String) }
|
329
|
+
def to_s; end
|
330
|
+
|
331
|
+
class << self
|
332
|
+
sig { params(line: String).returns(Spoom::Sorbet::Errors::Error) }
|
333
|
+
def from_error_line(line); end
|
334
|
+
end
|
335
|
+
end
|
336
|
+
|
337
|
+
class Spoom::Sorbet::Errors::Parser
|
338
|
+
sig { void }
|
339
|
+
def initialize; end
|
340
|
+
|
341
|
+
sig { params(output: String).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
|
342
|
+
def parse(output); end
|
343
|
+
|
344
|
+
private
|
345
|
+
|
346
|
+
sig { params(line: String).void }
|
347
|
+
def append_error(line); end
|
348
|
+
sig { void }
|
349
|
+
def close_error; end
|
350
|
+
sig { params(line: String).returns(T.nilable(Integer)) }
|
351
|
+
def leading_spaces(line); end
|
352
|
+
sig { params(line: String).void }
|
353
|
+
def open_error(line); end
|
354
|
+
|
355
|
+
class << self
|
356
|
+
sig { params(output: String).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
|
357
|
+
def parse_string(output); end
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
|
362
|
+
|
363
|
+
class Spoom::Sorbet::Metrics < ::T::Struct
|
364
|
+
const :repo, String
|
365
|
+
const :sha, String
|
366
|
+
const :status, String
|
367
|
+
const :branch, String
|
368
|
+
const :timestamp, Integer
|
369
|
+
const :uuid, String
|
370
|
+
const :metrics, T::Hash[String, T.nilable(Integer)]
|
371
|
+
|
372
|
+
sig { params(key: String).returns(T.nilable(Integer)) }
|
373
|
+
def [](key); end
|
374
|
+
sig { returns(T::Hash[String, T.nilable(Integer)]) }
|
375
|
+
def files_by_strictness; end
|
376
|
+
sig { returns(Integer) }
|
377
|
+
def files_count; end
|
378
|
+
sig { params(out: T.any(IO, StringIO)).void }
|
379
|
+
def show(out = T.unsafe(nil)); end
|
380
|
+
sig { returns(String) }
|
381
|
+
def to_s; end
|
382
|
+
|
383
|
+
private
|
384
|
+
|
385
|
+
sig { params(value: T.nilable(Integer), total: T.nilable(Integer)).returns(String) }
|
386
|
+
def percent(value, total); end
|
387
|
+
|
388
|
+
class << self
|
389
|
+
def inherited(s); end
|
390
|
+
sig { params(path: String, prefix: String).returns(Spoom::Sorbet::Metrics) }
|
391
|
+
def parse_file(path, prefix = T.unsafe(nil)); end
|
392
|
+
sig { params(obj: T::Hash[String, T.untyped], prefix: String).returns(Spoom::Sorbet::Metrics) }
|
393
|
+
def parse_hash(obj, prefix = T.unsafe(nil)); end
|
394
|
+
sig { params(string: String, prefix: String).returns(Spoom::Sorbet::Metrics) }
|
395
|
+
def parse_string(string, prefix = T.unsafe(nil)); end
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
399
|
+
Spoom::Sorbet::Metrics::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
|
400
|
+
|
401
|
+
Spoom::Sorbet::Metrics::SIGILS = T.let(T.unsafe(nil), Array)
|
402
|
+
|
403
|
+
Spoom::VERSION = T.let(T.unsafe(nil), String)
|
404
|
+
|
405
|
+
class String
|
406
|
+
include(::Comparable)
|
407
|
+
include(::Colorize::InstanceMethods)
|
408
|
+
include(::JSON::Ext::Generator::GeneratorMethods::String)
|
409
|
+
extend(::Colorize::ClassMethods)
|
410
|
+
extend(::JSON::Ext::Generator::GeneratorMethods::String::Extend)
|
411
|
+
|
412
|
+
def from_uri; end
|
413
|
+
def to_uri; end
|
414
|
+
end
|
415
|
+
|
416
|
+
String::BLANK_RE = T.let(T.unsafe(nil), Regexp)
|
417
|
+
|
418
|
+
String::ENCODED_BLANKS = T.let(T.unsafe(nil), Concurrent::Map)
|