Add rule namespaces: style, lint, layout (#63)
This commit is contained in:
parent
d9f04af057
commit
4cb5328513
|
@ -35,10 +35,10 @@ Inspecting 107 files.
|
|||
...............F.....................F....................................................................
|
||||
|
||||
src/ameba/rule/unneeded_disable_directive.cr:29:7
|
||||
UselessAssign: Useless assignment to variable `s`
|
||||
Lint/UselessAssign: Useless assignment to variable `s`
|
||||
|
||||
src/ameba/formatter/flycheck_formatter.cr:5:21
|
||||
UnusedArgument: Unused argument `location`
|
||||
Lint/UnusedArgument: Unused argument `location`
|
||||
|
||||
Finished in 248.9 milliseconds
|
||||
|
||||
|
@ -102,10 +102,10 @@ Generate new file by running `ameba --gen-config`.
|
|||
One or more rules can be disabled using inline directives:
|
||||
|
||||
```crystal
|
||||
# ameba:disable LargeNumbers
|
||||
# ameba:disable Style/LargeNumbers
|
||||
time = Time.epoch(1483859302)
|
||||
|
||||
time = Time.epoch(1483859302) # ameba:disable LargeNumbers
|
||||
time = Time.epoch(1483859302) # ameba:disable Style/LargeNumbers
|
||||
```
|
||||
|
||||
## Editor integration
|
||||
|
|
|
@ -21,8 +21,8 @@ module Ameba::Formatter
|
|||
end
|
||||
subject.finished [s]
|
||||
log = output.to_s
|
||||
log.should contain "#{path}:1 #{ErrorRule.name}"
|
||||
log.should contain "#{path}:2 #{NamedRule.name}"
|
||||
log.should contain "#{path}:1 #{ErrorRule.rule_name}"
|
||||
log.should contain "#{path}:2 #{NamedRule.rule_name}"
|
||||
ensure
|
||||
output.clear
|
||||
Colorize.enabled = true
|
||||
|
@ -35,7 +35,7 @@ module Ameba::Formatter
|
|||
message: "NamedRule", status: :disabled)
|
||||
end
|
||||
subject.finished [s]
|
||||
output.to_s.should_not contain ErrorRule.name
|
||||
output.to_s.should_not contain ErrorRule.rule_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,7 +22,7 @@ module Ameba::Formatter
|
|||
subject = flycheck
|
||||
subject.source_finished s
|
||||
subject.output.to_s.should eq(
|
||||
"source.cr:1:2: E: [#{DummyRule.name}] message\n"
|
||||
"source.cr:1:2: E: [#{DummyRule.rule_name}] message\n"
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -32,7 +32,7 @@ module Ameba::Formatter
|
|||
subject = flycheck
|
||||
subject.source_finished s
|
||||
subject.output.to_s.should eq(
|
||||
"source.cr:1:2: E: [#{DummyRule.name}] multi line\n"
|
||||
"source.cr:1:2: E: [#{DummyRule.rule_name}] multi line\n"
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ module Ameba
|
|||
s.add_issue DummyRule.new, {1, 2}, "message1"
|
||||
|
||||
result = get_result [s]
|
||||
result["sources"][0]["issues"][0]["rule_name"].should eq DummyRule.name
|
||||
result["sources"][0]["issues"][0]["rule_name"].should eq DummyRule.rule_name
|
||||
end
|
||||
|
||||
it "shows a message" do
|
||||
|
|
|
@ -57,7 +57,7 @@ module Ameba
|
|||
formatter = Formatter::TODOFormatter.new IO::Memory.new, file
|
||||
|
||||
s = Source.new "def invalid_syntax"
|
||||
s.add_issue Rule::Syntax.new, {1, 2}, "message"
|
||||
s.add_issue Rule::Lint::Syntax.new, {1, 2}, "message"
|
||||
|
||||
formatter.finished [s]
|
||||
content = file.to_s
|
||||
|
|
|
@ -11,7 +11,7 @@ module Ameba
|
|||
|
||||
describe "#name" do
|
||||
it "returns name of the rule" do
|
||||
DummyRule.new.name.should eq "Ameba::DummyRule"
|
||||
DummyRule.new.name.should eq "Ameba/DummyRule"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Layout
|
||||
subject = LineLength.new
|
||||
long_line = "*" * 81
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Layout
|
||||
subject = TrailingBlankLines.new
|
||||
|
||||
describe TrailingBlankLines do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Layout
|
||||
subject = TrailingWhitespace.new
|
||||
|
||||
describe TrailingWhitespace do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
subject = ComparisonToBoolean.new
|
||||
|
||||
describe ComparisonToBoolean do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
subject = DebuggerStatement.new
|
||||
|
||||
describe DebuggerStatement do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe EmptyEnsure do
|
||||
subject = EmptyEnsure.new
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba
|
||||
subject = Rule::EmptyExpression.new
|
||||
subject = Rule::Lint::EmptyExpression.new
|
||||
|
||||
def it_detects_empty_expression(code)
|
||||
it "detects empty expression" do
|
||||
s = Source.new code
|
||||
rule = Rule::EmptyExpression.new
|
||||
rule = Rule::Lint::EmptyExpression.new
|
||||
rule.catch(s).should_not be_valid
|
||||
end
|
||||
end
|
||||
|
||||
describe Rule::EmptyExpression do
|
||||
describe Rule::Lint::EmptyExpression do
|
||||
it "passes if there is no empty expression" do
|
||||
s = Source.new %(
|
||||
def method()
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe HashDuplicatedKey do
|
||||
subject = HashDuplicatedKey.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
subject = LiteralInCondition.new
|
||||
|
||||
describe LiteralInCondition do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
subject = LiteralInInterpolation.new
|
||||
|
||||
describe LiteralInInterpolation do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe PercentArrays do
|
||||
subject = PercentArrays.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe RandZero do
|
||||
subject = RandZero.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe ShadowedArgument do
|
||||
subject = ShadowedArgument.new
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
private def check_shadowed(source, exceptions)
|
||||
s = Ameba::Source.new source
|
||||
Ameba::Rule::ShadowedException.new.catch(s).should_not be_valid
|
||||
Ameba::Rule::Lint::ShadowedException.new.catch(s).should_not be_valid
|
||||
s.issues.first.message.should contain exceptions.join(", ")
|
||||
end
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe ShadowedException do
|
||||
subject = ShadowedException.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe ShadowingOuterLocalVar do
|
||||
subject = ShadowingOuterLocalVar.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe Syntax do
|
||||
subject = Syntax.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe UnneededDisableDirective do
|
||||
subject = UnneededDisableDirective.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
subject = UnusedArgument.new
|
||||
subject.ignore_defs = false
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
describe UselessAssign do
|
||||
subject = UselessAssign.new
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
subject = UselessConditionInWhen.new
|
||||
|
||||
describe UselessConditionInWhen do
|
|
@ -1,17 +1,17 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba
|
||||
subject = Rule::ConstantNames.new
|
||||
subject = Rule::Style::ConstantNames.new
|
||||
|
||||
private def it_reports_constant(code, expected)
|
||||
it "reports constant name #{expected}" do
|
||||
s = Source.new code
|
||||
Rule::ConstantNames.new.catch(s).should_not be_valid
|
||||
Rule::Style::ConstantNames.new.catch(s).should_not be_valid
|
||||
s.issues.first.message.should contain expected
|
||||
end
|
||||
end
|
||||
|
||||
describe Rule::ConstantNames do
|
||||
describe Rule::Style::ConstantNames do
|
||||
it "passes if type names are screaming-cased" do
|
||||
s = Source.new %(
|
||||
LUCKY_NUMBERS = [3, 7, 11]
|
|
@ -1,17 +1,17 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba
|
||||
subject = Rule::LargeNumbers.new
|
||||
subject = Rule::Style::LargeNumbers.new
|
||||
|
||||
private def it_transforms(number, expected)
|
||||
it "transforms large number #{number}" do
|
||||
s = Source.new number
|
||||
Rule::LargeNumbers.new.catch(s).should_not be_valid
|
||||
Rule::Style::LargeNumbers.new.catch(s).should_not be_valid
|
||||
s.issues.first.message.should contain expected
|
||||
end
|
||||
end
|
||||
|
||||
describe Rule::LargeNumbers do
|
||||
describe Rule::Style::LargeNumbers do
|
||||
it "passes if large number does not require underscore" do
|
||||
s = Source.new %q(
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
|
@ -124,7 +124,7 @@ module Ameba
|
|||
context "properties" do
|
||||
it "allows to configure integer min digits" do
|
||||
s = Source.new %q(1200000)
|
||||
rule = Rule::LargeNumbers.new
|
||||
rule = Rule::Style::LargeNumbers.new
|
||||
rule.int_min_digits = 10
|
||||
rule.catch(s).should be_valid
|
||||
end
|
|
@ -1,17 +1,17 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba
|
||||
subject = Rule::MethodNames.new
|
||||
subject = Rule::Style::MethodNames.new
|
||||
|
||||
private def it_reports_method_name(code, expected)
|
||||
it "reports method name #{expected}" do
|
||||
s = Source.new code
|
||||
Rule::MethodNames.new.catch(s).should_not be_valid
|
||||
Rule::Style::MethodNames.new.catch(s).should_not be_valid
|
||||
s.issues.first.message.should contain expected
|
||||
end
|
||||
end
|
||||
|
||||
describe Rule::MethodNames do
|
||||
describe Rule::Style::MethodNames do
|
||||
it "passes if method names are underscore-cased" do
|
||||
s = Source.new %(
|
||||
class Person
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
subject = NegatedConditionsInUnless.new
|
||||
|
||||
describe NegatedConditionsInUnless do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
subject = PredicateName.new
|
||||
|
||||
describe PredicateName do
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
describe RedundantBegin do
|
||||
subject = RedundantBegin.new
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba
|
||||
subject = Rule::TypeNames.new
|
||||
subject = Rule::Style::TypeNames.new
|
||||
|
||||
private def it_reports_name(code, expected)
|
||||
it "reports type name #{expected}" do
|
||||
s = Source.new code
|
||||
Rule::TypeNames.new.catch(s).should_not be_valid
|
||||
Rule::Style::TypeNames.new.catch(s).should_not be_valid
|
||||
s.issues.first.message.should contain expected
|
||||
end
|
||||
end
|
||||
|
||||
describe Rule::TypeNames do
|
||||
describe Rule::Style::TypeNames do
|
||||
it "passes if type names are camelcased" do
|
||||
s = Source.new %(
|
||||
class ParseError < Exception
|
|
@ -1,6 +1,6 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
subject = UnlessElse.new
|
||||
|
||||
describe UnlessElse do
|
|
@ -1,17 +1,17 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
module Ameba
|
||||
subject = Rule::VariableNames.new
|
||||
subject = Rule::Style::VariableNames.new
|
||||
|
||||
private def it_reports_var_name(code, expected)
|
||||
it "reports method name #{expected}" do
|
||||
s = Source.new code
|
||||
Rule::VariableNames.new.catch(s).should_not be_valid
|
||||
Rule::Style::VariableNames.new.catch(s).should_not be_valid
|
||||
s.issues.first.message.should contain expected
|
||||
end
|
||||
end
|
||||
|
||||
describe Rule::VariableNames do
|
||||
describe Rule::Style::VariableNames do
|
||||
it "passes if var names are underscore-cased" do
|
||||
s = Source.new %(
|
||||
class Greeting
|
|
@ -1,4 +1,4 @@
|
|||
require "../../spec_helper"
|
||||
require "../../../spec_helper"
|
||||
|
||||
valid_source = <<-EOF
|
||||
a = 1
|
||||
|
@ -16,7 +16,7 @@ while true
|
|||
end
|
||||
EOF
|
||||
|
||||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
subject = WhileTrue.new
|
||||
|
||||
describe WhileTrue do
|
|
@ -54,16 +54,16 @@ module Ameba
|
|||
|
||||
context "invalid syntax" do
|
||||
it "reports a syntax error" do
|
||||
rules = [Rule::Syntax.new] of Rule::Base
|
||||
rules = [Rule::Lint::Syntax.new] of Rule::Base
|
||||
source = Source.new "def bad_syntax"
|
||||
|
||||
Runner.new(rules, [source], formatter).run
|
||||
source.should_not be_valid
|
||||
source.issues.first.rule.name.should eq Rule::Syntax.rule_name
|
||||
source.issues.first.rule.name.should eq Rule::Lint::Syntax.rule_name
|
||||
end
|
||||
|
||||
it "does not run other rules" do
|
||||
rules = [Rule::Syntax.new, Rule::ConstantNames.new] of Rule::Base
|
||||
rules = [Rule::Lint::Syntax.new, Rule::Style::ConstantNames.new] of Rule::Base
|
||||
source = Source.new %q(
|
||||
MyBadConstant = 1
|
||||
|
||||
|
@ -78,14 +78,14 @@ module Ameba
|
|||
|
||||
context "unneeded disables" do
|
||||
it "reports an issue if such disable exists" do
|
||||
rules = [Rule::UnneededDisableDirective.new] of Rule::Base
|
||||
rules = [Rule::Lint::UnneededDisableDirective.new] of Rule::Base
|
||||
source = Source.new %(
|
||||
a = 1 # ameba:disable LineLength
|
||||
)
|
||||
|
||||
Runner.new(rules, [source], formatter).run
|
||||
source.should_not be_valid
|
||||
source.issues.first.rule.name.should eq Rule::UnneededDisableDirective.rule_name
|
||||
source.issues.first.rule.name.should eq Rule::Lint::UnneededDisableDirective.rule_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require "./ameba/*"
|
||||
require "./ameba/ast/**"
|
||||
require "./ameba/rule/*"
|
||||
require "./ameba/rule/**"
|
||||
require "./ameba/formatter/*"
|
||||
require "./ameba/support/*"
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ module Ameba::Formatter
|
|||
private def rule_issues_map(issues)
|
||||
Hash(Rule::Base, Array(Issue)).new.tap do |h|
|
||||
issues.each do |issue|
|
||||
next if issue.disabled? || issue.rule.is_a? Rule::Syntax
|
||||
next if issue.disabled? || issue.rule.is_a? Rule::Lint::Syntax
|
||||
h[issue.rule] ||= Array(Issue).new
|
||||
h[issue.rule] << issue
|
||||
end
|
||||
|
|
|
@ -2,8 +2,8 @@ module Ameba::Rule
|
|||
# List of names of the special rules, which
|
||||
# behave differently than usual rules.
|
||||
SPECIAL = [
|
||||
Syntax.rule_name,
|
||||
UnneededDisableDirective.rule_name,
|
||||
Lint::Syntax.rule_name,
|
||||
Lint::UnneededDisableDirective.rule_name,
|
||||
]
|
||||
|
||||
# Represents a base of all rules. In other words, all rules
|
||||
|
@ -96,7 +96,7 @@ module Ameba::Rule
|
|||
end
|
||||
|
||||
protected def self.rule_name
|
||||
name.gsub("Ameba::Rule::", "")
|
||||
name.gsub("Ameba::Rule::", "").gsub("::", "/")
|
||||
end
|
||||
|
||||
protected def self.subclasses
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Layout
|
||||
# A rule that disallows lines longer than `max_length` number of symbols.
|
||||
#
|
||||
# YAML configuration example:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Layout
|
||||
# A rule that disallows trailing blank lines at the end of the source file.
|
||||
#
|
||||
# YAML configuration example:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Layout
|
||||
# A rule that disallows trailing whitespaces.
|
||||
#
|
||||
# YAML configuration example:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows comparison to booleans.
|
||||
#
|
||||
# For example, these are considered invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows calls to debugger.
|
||||
#
|
||||
# This is because we don't want debugger breakpoints accidentally being
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows empty ensure statement.
|
||||
#
|
||||
# For example, this is considered invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows empty expressions.
|
||||
#
|
||||
# This is considered invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows duplicated keys in hash literals.
|
||||
#
|
||||
# This is considered invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows useless conditional statements that contain a literal
|
||||
# in place of a variable or predicate function.
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows useless string interpolations
|
||||
# that contain a literal value instead of a variable or function.
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows some unwanted symbols in percent array literals.
|
||||
#
|
||||
# For example, this is usually written by mistake:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows `rand(0)` and `rand(1)` calls.
|
||||
# Such calls always return `0`.
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows shadowed arguments.
|
||||
#
|
||||
# For example, this is considered invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows a rescued exception that get shadowed by a
|
||||
# less specific exception being rescued before a more specific
|
||||
# exception is rescued.
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows the usage of the same name as outer local variables
|
||||
# for block or proc arguments.
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that reports invalid Crystal syntax.
|
||||
#
|
||||
# For example, this syntax is invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that reports unneeded disable directives.
|
||||
# For example, this is considered invalid:
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that reports unused arguments.
|
||||
# For example, this is considered invalid:
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows useless assignments.
|
||||
#
|
||||
# For example, this is considered invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Lint
|
||||
# A rule that disallows useless conditions in when clause
|
||||
# where it is guaranteed to always return the same result.
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that enforces constant names to be in screaming case.
|
||||
#
|
||||
# For example, these constant names are considered valid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that disallows usage of large numbers without underscore.
|
||||
# These do not affect the value of the number, but can help read
|
||||
# large numbers more easily.
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that enforces method names to be in underscored case.
|
||||
#
|
||||
# For example, these are considered valid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that disallows negated conditions in unless.
|
||||
#
|
||||
# For example, this is considered invalid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that disallows tautological predicate names, meaning those that
|
||||
# start with the prefix `has_` or the prefix `is_`. Ignores if the alternative isn't valid Crystal code (e.g. `is_404?`).
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that disallows redundant begin blocks.
|
||||
#
|
||||
# Currently it is able to detect:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that enforces type names in camelcase manner.
|
||||
#
|
||||
# For example, these are considered valid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that disallows the use of an `else` block with the `unless`.
|
||||
#
|
||||
# For example, the rule considers these valid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that enforces variable names to be in underscored case.
|
||||
#
|
||||
# For example, these variable names are considered valid:
|
|
@ -1,4 +1,4 @@
|
|||
module Ameba::Rule
|
||||
module Ameba::Rule::Style
|
||||
# A rule that disallows the use of `while true` instead of using the idiomatic `loop`
|
||||
#
|
||||
# For example, this is considered invalid:
|
|
@ -21,7 +21,7 @@ module Ameba
|
|||
@formatter : Formatter::BaseFormatter
|
||||
|
||||
# A syntax rule which always inspects a source first
|
||||
@syntax_rule = Rule::Syntax.new
|
||||
@syntax_rule = Rule::Lint::Syntax.new
|
||||
|
||||
# Checks for unneeded disable directives. Always inspects a source last
|
||||
@unneeded_disable_directive_rule : Rule::Base?
|
||||
|
@ -43,7 +43,7 @@ module Ameba
|
|||
|
||||
@unneeded_disable_directive_rule =
|
||||
config.rules
|
||||
.find &.name.==(Rule::UnneededDisableDirective.rule_name)
|
||||
.find &.name.==(Rule::Lint::UnneededDisableDirective.rule_name)
|
||||
end
|
||||
|
||||
# :nodoc:
|
||||
|
|
Loading…
Reference in New Issue