-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Fix #8131]: Ignore escapes of delimiters in Style/RedundantRegexpEscape #8138
[Fix #8131]: Ignore escapes of delimiters in Style/RedundantRegexpEscape #8138
Conversation
Co-authored-by: Koichi ITO <[email protected]>
ALLOWED_WITHIN_CHAR_CLASS_METACHAR_ESCAPES.include?(char) | ||
else | ||
ALLOWED_OUTSIDE_CHAR_CLASS_METACHAR_ESCAPES.include?(char) | ||
end | ||
end | ||
|
||
def delimiter?(node, char) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like something for rubocop-ast
. :-)
Thanks! |
ALLOWED_WITHIN_CHAR_CLASS_METACHAR_ESCAPES.include?(char) | ||
else | ||
ALLOWED_OUTSIDE_CHAR_CLASS_METACHAR_ESCAPES.include?(char) | ||
end | ||
end | ||
|
||
def delimiter?(node, char) | ||
delimiters = [ | ||
node.loc.begin.source.chars.last, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like we're missing a performance cop against chars.first / last / slice / []
... I created rubocop/rubocop-performance#139
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also wondering if Range#[]
as an optimized shortcut for Range#source[]
is worth it (avoid intermediate string)
As suggested by @bbatsov here: rubocop/rubocop#8138 (comment)
We must allow
%r
delimiters to be escaped, e.g.%r~\~~
Before submitting the PR make sure the following are checked:
[Fix #issue-number]
(if the related issue exists).master
(if not - rebase it).bundle exec rake default
. It executes all tests and RuboCop for itself, and generates the documentation.