Skip to content

Commit 60d13b8

Browse files
Refactor utils (#710)
1 parent 31026e1 commit 60d13b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+1679
-1699
lines changed

docs/.vitepress/config.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { defineConfig } from "vitepress"
33
import { BUNDLED_LANGUAGES } from "shiki"
44
import path from "path"
55
import { fileURLToPath } from "url"
6-
import { rules } from "../../lib/utils/rules.js"
6+
import { rules } from "../../lib/all-rules.js"
77
import type { RuleModule } from "../../lib/types.js"
88

99
// Pre-build cjs packages that cannot be bundled well.

docs/.vitepress/theme/components/components/EslintPluginEditor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<script>
1919
import EslintEditor from "@ota-meshi/site-kit-eslint-editor-vue"
2020
import { Linter } from "eslint"
21-
import { rules } from "../../../../../lib/utils/rules"
21+
import { rules } from "../../../../../lib/all-rules"
2222
2323
export default {
2424
name: "EslintPluginEditor",

docs/.vitepress/theme/components/rules/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Linter } from "eslint"
2-
import { rules } from "../../../../../lib/utils/rules.ts"
2+
import { rules } from "../../../../../lib/all-rules.ts"
33
import { rules as recommendedRules } from "../../../../../lib/configs/recommended.ts"
44

55
const coreRules = Object.fromEntries(new Linter().getRules())

lib/all-rules.ts

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
import type { RuleModule } from "./types"
2+
import confusingQuantifier from "./rules/confusing-quantifier"
3+
import controlCharacterEscape from "./rules/control-character-escape"
4+
import graphemeStringLiteral from "./rules/grapheme-string-literal"
5+
import hexadecimalEscape from "./rules/hexadecimal-escape"
6+
import letterCase from "./rules/letter-case"
7+
import matchAny from "./rules/match-any"
8+
import negation from "./rules/negation"
9+
import noContradictionWithAssertion from "./rules/no-contradiction-with-assertion"
10+
import noControlCharacter from "./rules/no-control-character"
11+
import noDupeCharactersCharacterClass from "./rules/no-dupe-characters-character-class"
12+
import noDupeDisjunctions from "./rules/no-dupe-disjunctions"
13+
import noEmptyAlternative from "./rules/no-empty-alternative"
14+
import noEmptyCapturingGroup from "./rules/no-empty-capturing-group"
15+
import noEmptyCharacterClass from "./rules/no-empty-character-class"
16+
import noEmptyGroup from "./rules/no-empty-group"
17+
import noEmptyLookaroundsAssertion from "./rules/no-empty-lookarounds-assertion"
18+
import noEmptyStringLiteral from "./rules/no-empty-string-literal"
19+
import noEscapeBackspace from "./rules/no-escape-backspace"
20+
import noExtraLookaroundAssertions from "./rules/no-extra-lookaround-assertions"
21+
import noInvalidRegexp from "./rules/no-invalid-regexp"
22+
import noInvisibleCharacter from "./rules/no-invisible-character"
23+
import noLazyEnds from "./rules/no-lazy-ends"
24+
import noLegacyFeatures from "./rules/no-legacy-features"
25+
import noMisleadingCapturingGroup from "./rules/no-misleading-capturing-group"
26+
import noMisleadingUnicodeCharacter from "./rules/no-misleading-unicode-character"
27+
import noMissingGFlag from "./rules/no-missing-g-flag"
28+
import noNonStandardFlag from "./rules/no-non-standard-flag"
29+
import noObscureRange from "./rules/no-obscure-range"
30+
import noOctal from "./rules/no-octal"
31+
import noOptionalAssertion from "./rules/no-optional-assertion"
32+
import noPotentiallyUselessBackreference from "./rules/no-potentially-useless-backreference"
33+
import noStandaloneBackslash from "./rules/no-standalone-backslash"
34+
import noSuperLinearBacktracking from "./rules/no-super-linear-backtracking"
35+
import noSuperLinearMove from "./rules/no-super-linear-move"
36+
import noTriviallyNestedAssertion from "./rules/no-trivially-nested-assertion"
37+
import noTriviallyNestedQuantifier from "./rules/no-trivially-nested-quantifier"
38+
import noUnusedCapturingGroup from "./rules/no-unused-capturing-group"
39+
import noUselessAssertions from "./rules/no-useless-assertions"
40+
import noUselessBackreference from "./rules/no-useless-backreference"
41+
import noUselessCharacterClass from "./rules/no-useless-character-class"
42+
import noUselessDollarReplacements from "./rules/no-useless-dollar-replacements"
43+
import noUselessEscape from "./rules/no-useless-escape"
44+
import noUselessFlag from "./rules/no-useless-flag"
45+
import noUselessLazy from "./rules/no-useless-lazy"
46+
import noUselessNonCapturingGroup from "./rules/no-useless-non-capturing-group"
47+
import noUselessQuantifier from "./rules/no-useless-quantifier"
48+
import noUselessRange from "./rules/no-useless-range"
49+
import noUselessSetOperand from "./rules/no-useless-set-operand"
50+
import noUselessStringLiteral from "./rules/no-useless-string-literal"
51+
import noUselessTwoNumsQuantifier from "./rules/no-useless-two-nums-quantifier"
52+
import noZeroQuantifier from "./rules/no-zero-quantifier"
53+
import optimalLookaroundQuantifier from "./rules/optimal-lookaround-quantifier"
54+
import optimalQuantifierConcatenation from "./rules/optimal-quantifier-concatenation"
55+
import preferCharacterClass from "./rules/prefer-character-class"
56+
import preferD from "./rules/prefer-d"
57+
import preferEscapeReplacementDollarChar from "./rules/prefer-escape-replacement-dollar-char"
58+
import preferLookaround from "./rules/prefer-lookaround"
59+
import preferNamedBackreference from "./rules/prefer-named-backreference"
60+
import preferNamedCaptureGroup from "./rules/prefer-named-capture-group"
61+
import preferNamedReplacement from "./rules/prefer-named-replacement"
62+
import preferPlusQuantifier from "./rules/prefer-plus-quantifier"
63+
import preferPredefinedAssertion from "./rules/prefer-predefined-assertion"
64+
import preferQuantifier from "./rules/prefer-quantifier"
65+
import preferQuestionQuantifier from "./rules/prefer-question-quantifier"
66+
import preferRange from "./rules/prefer-range"
67+
import preferRegexpExec from "./rules/prefer-regexp-exec"
68+
import preferRegexpTest from "./rules/prefer-regexp-test"
69+
import preferResultArrayGroups from "./rules/prefer-result-array-groups"
70+
import preferSetOperation from "./rules/prefer-set-operation"
71+
import preferStarQuantifier from "./rules/prefer-star-quantifier"
72+
import preferUnicodeCodepointEscapes from "./rules/prefer-unicode-codepoint-escapes"
73+
import preferW from "./rules/prefer-w"
74+
import requireUnicodeRegexp from "./rules/require-unicode-regexp"
75+
import requireUnicodeSetsRegexp from "./rules/require-unicode-sets-regexp"
76+
import simplifySetOperations from "./rules/simplify-set-operations"
77+
import sortAlternatives from "./rules/sort-alternatives"
78+
import sortCharacterClassElements from "./rules/sort-character-class-elements"
79+
import sortFlags from "./rules/sort-flags"
80+
import strict from "./rules/strict"
81+
import unicodeEscape from "./rules/unicode-escape"
82+
import useIgnoreCase from "./rules/use-ignore-case"
83+
84+
export const rules: RuleModule[] = [
85+
confusingQuantifier,
86+
controlCharacterEscape,
87+
graphemeStringLiteral,
88+
hexadecimalEscape,
89+
letterCase,
90+
matchAny,
91+
negation,
92+
noContradictionWithAssertion,
93+
noControlCharacter,
94+
noDupeCharactersCharacterClass,
95+
noDupeDisjunctions,
96+
noEmptyAlternative,
97+
noEmptyCapturingGroup,
98+
noEmptyCharacterClass,
99+
noEmptyGroup,
100+
noEmptyLookaroundsAssertion,
101+
noEmptyStringLiteral,
102+
noEscapeBackspace,
103+
noExtraLookaroundAssertions,
104+
noInvalidRegexp,
105+
noInvisibleCharacter,
106+
noLazyEnds,
107+
noLegacyFeatures,
108+
noMisleadingCapturingGroup,
109+
noMisleadingUnicodeCharacter,
110+
noMissingGFlag,
111+
noNonStandardFlag,
112+
noObscureRange,
113+
noOctal,
114+
noOptionalAssertion,
115+
noPotentiallyUselessBackreference,
116+
noStandaloneBackslash,
117+
noSuperLinearBacktracking,
118+
noSuperLinearMove,
119+
noTriviallyNestedAssertion,
120+
noTriviallyNestedQuantifier,
121+
noUnusedCapturingGroup,
122+
noUselessAssertions,
123+
noUselessBackreference,
124+
noUselessCharacterClass,
125+
noUselessDollarReplacements,
126+
noUselessEscape,
127+
noUselessFlag,
128+
noUselessLazy,
129+
noUselessNonCapturingGroup,
130+
noUselessQuantifier,
131+
noUselessRange,
132+
noUselessSetOperand,
133+
noUselessStringLiteral,
134+
noUselessTwoNumsQuantifier,
135+
noZeroQuantifier,
136+
optimalLookaroundQuantifier,
137+
optimalQuantifierConcatenation,
138+
preferCharacterClass,
139+
preferD,
140+
preferEscapeReplacementDollarChar,
141+
preferLookaround,
142+
preferNamedBackreference,
143+
preferNamedCaptureGroup,
144+
preferNamedReplacement,
145+
preferPlusQuantifier,
146+
preferPredefinedAssertion,
147+
preferQuantifier,
148+
preferQuestionQuantifier,
149+
preferRange,
150+
preferRegexpExec,
151+
preferRegexpTest,
152+
preferResultArrayGroups,
153+
preferSetOperation,
154+
preferStarQuantifier,
155+
preferUnicodeCodepointEscapes,
156+
preferW,
157+
requireUnicodeRegexp,
158+
requireUnicodeSetsRegexp,
159+
simplifySetOperations,
160+
sortAlternatives,
161+
sortCharacterClassElements,
162+
sortFlags,
163+
strict,
164+
unicodeEscape,
165+
useIgnoreCase,
166+
]

lib/configs/rules/all.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { rules as recommendedRules } from "./recommended"
2-
import { rules as ruleLint } from "../../utils/rules"
2+
import { rules as ruleLint } from "../../all-rules"
33

44
const all: Record<string, string> = {}
55
for (const rule of ruleLint) {

lib/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { RuleModule } from "./types"
2-
import { rules as ruleList } from "./utils/rules"
2+
import { rules as ruleList } from "./all-rules"
33
import * as recommended from "./configs/recommended"
44
import * as all from "./configs/all"
55
import * as flatRecommended from "./configs/flat/recommended"

lib/rules/confusing-quantifier.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
import type { RegExpVisitor } from "@eslint-community/regexpp/visitor"
22
import type { RegExpContext } from "../utils"
3-
import {
4-
createRule,
5-
defineRegexpVisitor,
6-
getQuantifierOffsets,
7-
quantToString,
8-
} from "../utils"
3+
import { createRule, defineRegexpVisitor } from "../utils"
94
import { isPotentiallyEmpty } from "regexp-ast-analysis"
5+
import { quantToString, getQuantifierOffsets } from "../utils/regexp-ast"
106

117
export default createRule("confusing-quantifier", {
128
meta: {

lib/rules/hexadecimal-escape.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import type { RegExpVisitor } from "@eslint-community/regexpp/visitor"
22
import type { Character } from "@eslint-community/regexpp/ast"
33
import type { RegExpContext } from "../utils"
4+
import { defineRegexpVisitor, createRule } from "../utils"
45
import {
5-
defineRegexpVisitor,
6-
createRule,
76
getEscapeSequenceKind,
87
EscapeSequenceKind,
9-
} from "../utils"
8+
} from "../utils/regex-syntax"
109

1110
export default createRule("hexadecimal-escape", {
1211
meta: {

lib/rules/letter-case.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ import {
1010
isLetter,
1111
isLowercaseLetter,
1212
isUppercaseLetter,
13+
} from "../utils"
14+
import {
1315
EscapeSequenceKind,
1416
getEscapeSequenceKind,
15-
} from "../utils"
17+
} from "../utils/regex-syntax"
1618

1719
const CASE_SCHEMA = ["lowercase", "uppercase", "ignore"] as const
1820
type Case = (typeof CASE_SCHEMA)[number]

lib/rules/no-contradiction-with-assertion.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type {
66
Quantifier,
77
} from "@eslint-community/regexpp/ast"
88
import type { RegExpContext } from "../utils"
9-
import { quantToString, createRule, defineRegexpVisitor } from "../utils"
9+
import { createRule, defineRegexpVisitor } from "../utils"
1010
import type {
1111
FirstLookChar,
1212
MatchingDirection,
@@ -21,6 +21,7 @@ import {
2121
isZeroLength,
2222
FirstConsumedChars,
2323
} from "regexp-ast-analysis"
24+
import { quantToString } from "../utils/regexp-ast"
2425
import { mention } from "../utils/mention"
2526

2627
/**

0 commit comments

Comments
 (0)