diff --git a/src/linter/regex_patterns.rs b/src/linter/regex_patterns.rs index aca7968..ef3e439 100644 --- a/src/linter/regex_patterns.rs +++ b/src/linter/regex_patterns.rs @@ -11,7 +11,7 @@ macro_rules! static_regex { } static_regex!(SNAKE_CASE, r"^[a-z][a-z0-9_]*$"); -static_regex!(PRIVATE_SNAKE_CASE, r"^_[a-z][a-z0-9_]*$"); +static_regex!(PRIVATE_SNAKE_CASE, r"^_+[a-z][a-z0-9_]*$"); static_regex!(PASCAL_CASE, r"^[A-Z][a-zA-Z0-9]*$"); static_regex!(CONSTANT_CASE, r"^[A-Z][A-Z0-9_]*$"); -static_regex!(PRIVATE_CONSTANT_CASE, r"^_[A-Z][A-Z0-9_]*$"); +static_regex!(PRIVATE_CONSTANT_CASE, r"^_+[A-Z][A-Z0-9_]*$"); diff --git a/src/linter/rules/signal_name.rs b/src/linter/rules/signal_name.rs index 58ccd91..2168aaa 100644 --- a/src/linter/rules/signal_name.rs +++ b/src/linter/rules/signal_name.rs @@ -1,5 +1,5 @@ use crate::linter::lib::{get_line_column, get_node_text}; -use crate::linter::regex_patterns::SNAKE_CASE; +use crate::linter::regex_patterns::{PRIVATE_SNAKE_CASE, SNAKE_CASE}; use crate::linter::rules::Rule; use crate::linter::{LintIssue, LintSeverity}; use crate::node_kind::GDScriptNodeKind; @@ -8,7 +8,7 @@ pub struct SignalNameRule; impl SignalNameRule { fn is_valid_signal_name(name: &str) -> bool { - SNAKE_CASE.is_match(name) + SNAKE_CASE.is_match(name) || PRIVATE_SNAKE_CASE.is_match(name) } } diff --git a/tests/lint/expected/signal_name.txt b/tests/lint/expected/signal_name.txt index 3ffb555..d06f321 100644 --- a/tests/lint/expected/signal_name.txt +++ b/tests/lint/expected/signal_name.txt @@ -1,3 +1,2 @@ -tests/lint/input/signal_name.gd:9:signal-name:error: Signal name 'BadSignal' should be in snake_case format -tests/lint/input/signal_name.gd:10:signal-name:error: Signal name '_bad_signal' should be in snake_case format -tests/lint/input/signal_name.gd:11:signal-name:error: Signal name 'badSignal' should be in snake_case format \ No newline at end of file +tests/lint/input/signal_name.gd:11:signal-name:error: Signal name 'BadSignal' should be in snake_case format +tests/lint/input/signal_name.gd:12:signal-name:error: Signal name 'badSignal' should be in snake_case format diff --git a/tests/lint/input/signal_name.gd b/tests/lint/input/signal_name.gd index f5073d5..179318e 100644 --- a/tests/lint/input/signal_name.gd +++ b/tests/lint/input/signal_name.gd @@ -1,13 +1,14 @@ #region Good -signal good_signal(var1: int, var2: String) +signal public_signal(var1: int, var2: String) +signal _pseudo_private(var1: int, var2: String) +signal __also_valid_pseudo_private(var1: int, var2: String) #endregion #region Bad signal BadSignal(var1: int, var2: String) -signal _bad_signal(var1: int, var2: String) signal badSignal(var1: int, var2: String) #endregion