Add AsciiIdentifiers#ignore_symbols property

This commit is contained in:
Sijawusz Pur Rahnama 2023-11-14 05:22:29 +01:00
parent be76b3682a
commit 018adb54be
2 changed files with 27 additions and 3 deletions

View file

@ -126,5 +126,26 @@ module Ameba::Rule::Naming
space = :invader # 👾 space = :invader # 👾
CRYSTAL CRYSTAL
end end
context "properties" do
context "#ignore_symbols" do
it "returns `false` by default" do
rule = AsciiIdentifiers.new
rule.ignore_symbols?.should be_false
end
it "stops reporting symbol literals if set to `true`" do
rule = AsciiIdentifiers.new
rule.ignore_symbols = true
expect_no_issues rule, <<-CRYSTAL
def forest_adventure(animal_type = :🐺); end
%i[🐺 🐿].index!(:🐺)
foo, bar = :, true
foo = :
CRYSTAL
end
end
end
end end
end end

View file

@ -20,10 +20,12 @@ module Ameba::Rule::Naming
# ``` # ```
# Naming/AsciiIdentifiers: # Naming/AsciiIdentifiers:
# Enabled: true # Enabled: true
# IgnoreSymbols: false
# ``` # ```
class AsciiIdentifiers < Base class AsciiIdentifiers < Base
properties do properties do
description "Disallows non-ascii characters in identifiers" description "Disallows non-ascii characters in identifiers"
ignore_symbols false
end end
MSG = "Identifier contains non-ascii characters" MSG = "Identifier contains non-ascii characters"
@ -68,9 +70,10 @@ module Ameba::Rule::Naming
end end
private def check_symbol_literal(source, node) private def check_symbol_literal(source, node)
if node.is_a?(Crystal::SymbolLiteral) return if ignore_symbols?
check_issue(source, node, node.value) return unless node.is_a?(Crystal::SymbolLiteral)
end
check_issue(source, node, node.value)
end end
private def check_issue(source, location, end_location, name) private def check_issue(source, location, end_location, name)