Skip to content

Commit 5e49c13

Browse files
committed
Chores: update eslint config
1 parent c8d53c2 commit 5e49c13

File tree

7 files changed

+32
-8
lines changed

7 files changed

+32
-8
lines changed

.eslintrc.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,30 @@ module.exports = {
2626

2727
"no-shadow": "off", // ts bug?
2828
"@typescript-eslint/no-shadow": "error",
29+
30+
// https://github.com/ota-meshi/eslint-plugin-regexp/pull/49
31+
"no-empty-character-class": "error",
32+
"regexp/negation": "error",
33+
"regexp/no-dupe-disjunctions": "error",
34+
"regexp/no-useless-character-class": "error",
35+
"regexp/no-useless-escape": "error",
36+
"regexp/no-useless-non-capturing-group": "error",
37+
"regexp/no-useless-non-greedy": "error",
38+
"regexp/no-useless-range": "error",
39+
"regexp/prefer-character-class": "error",
40+
"regexp/prefer-range": "error",
41+
"regexp/prefer-unicode-codepoint-escapes": "error",
42+
43+
"regexp/letter-case": [
44+
"error",
45+
{ hexadecimalEscape: "lowercase", controlEscape: "uppercase" },
46+
],
47+
48+
// others
49+
"regexp/order-in-character-class": "error",
50+
"regexp/prefer-quantifier": "error",
51+
"regexp/prefer-regexp-exec": "error",
52+
"regexp/prefer-regexp-test": "error",
2953
},
3054
overrides: [
3155
{

lib/rules/letter-case.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ export default createRule("letter-case", {
248248
if (/^\\x.+$/u.test(cNode.raw)) {
249249
verifyCharacterInHexadecimalEscape(node, cNode)
250250
}
251-
if (/^\\c[a-zA-Z]$/u.test(cNode.raw)) {
251+
if (/^\\c[A-Za-z]$/u.test(cNode.raw)) {
252252
verifyCharacterInControl(node, cNode)
253253
}
254254
},

lib/rules/no-useless-character-class.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ export default createRule("no-useless-character-class", {
131131
element.type === "CharacterClassRange"
132132
) {
133133
if (
134-
/^[.*+?${()|[/]$/u.test(text) ||
134+
/^[$(-+./?[{|]$/u.test(text) ||
135135
(flags.includes("u") && text === "}")
136136
) {
137137
text = fixerApplyEscape("\\", node) + text

lib/rules/prefer-unicode-codepoint-escapes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export default createRule("prefer-unicode-codepoint-escapes", {
4040
return {
4141
onCharacterEnter(cNode) {
4242
if (cNode.value >= 0x10000) {
43-
if (/^(?:\\u[\da-fA-F]{4}){2}$/.test(cNode.raw)) {
43+
if (/^(?:\\u[\dA-Fa-f]{4}){2}$/.test(cNode.raw)) {
4444
context.report({
4545
node,
4646
loc: getRegexpLocation(sourceCode, node, cNode),

lib/utils/regexp-ast.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,7 @@ export function isEqualNodes<N extends Node>(
151151
return kind
152152
}
153153
}
154-
if (
155-
/(?:\(|\\|\[|\{|\||\+|\?|\*)/.test(a.raw) ||
156-
/(?:\(|\\|\[|\{|\||\+|\?|\*)/.test(b.raw)
157-
) {
154+
if (/[(*+?[\\{|]/.test(a.raw) || /[(*+?[\\{|]/.test(b.raw)) {
158155
return EQUALS_CHECKER[a.type](a as never, b as never, shortCircuit)
159156
}
160157
return a.raw === b.raw

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"eslint-plugin-jsonc": "^1.0.0",
6565
"eslint-plugin-node": "^11.1.0",
6666
"eslint-plugin-prettier": "^3.3.1",
67-
"eslint-plugin-regexp": "^0.3.0",
67+
"eslint-plugin-regexp": "^0.4.0",
6868
"eslint-plugin-vue": "^7.5.0",
6969
"eslint-plugin-yml": "^0.7.0",
7070
"eslint4b": "^7.3.1",

tests/lib/utils/regexp-ast.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ eslint-disable
44
regexp/no-dupe-characters-character-class,
55
regexp/prefer-question-quantifier,
66
regexp/prefer-star-quantifier,
7+
regexp/prefer-character-class,
8+
regexp/prefer-range,
9+
regexp/order-in-character-class,
710
--------------------------------------------- ignore */
811
import assert from "assert"
912
import { parseRegExpLiteral } from "regexpp"

0 commit comments

Comments
 (0)