eslint-plugin-better-tailwindcss 3.3.1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/cjs/configs/config.d.ts +8 -4
- package/lib/cjs/configs/config.d.ts.map +1 -1
- package/lib/cjs/configs/config.js +12 -8
- package/lib/cjs/configs/config.js.map +1 -1
- package/lib/cjs/rules/deprecated/multiline.d.ts +3 -0
- package/lib/cjs/rules/deprecated/multiline.d.ts.map +1 -0
- package/lib/cjs/rules/deprecated/multiline.js +27 -0
- package/lib/cjs/rules/deprecated/multiline.js.map +1 -0
- package/lib/cjs/rules/deprecated/sort-classes.d.ts +3 -0
- package/lib/cjs/rules/deprecated/sort-classes.d.ts.map +1 -0
- package/lib/cjs/rules/deprecated/sort-classes.js +26 -0
- package/lib/cjs/rules/deprecated/sort-classes.js.map +1 -0
- package/lib/cjs/rules/enforce-consistent-class-order.d.ts +19 -0
- package/lib/cjs/rules/enforce-consistent-class-order.d.ts.map +1 -0
- package/lib/cjs/rules/enforce-consistent-class-order.js +157 -0
- package/lib/cjs/rules/enforce-consistent-class-order.js.map +1 -0
- package/lib/cjs/rules/enforce-consistent-line-wrapping.d.ts +15 -0
- package/lib/cjs/rules/enforce-consistent-line-wrapping.d.ts.map +1 -0
- package/lib/cjs/rules/enforce-consistent-line-wrapping.js +566 -0
- package/lib/cjs/rules/enforce-consistent-line-wrapping.js.map +1 -0
- package/lib/cjs/rules/multiline.d.ts +1 -1
- package/lib/cjs/rules/no-restricted-classes.d.ts +6 -4
- package/lib/cjs/rules/no-restricted-classes.d.ts.map +1 -1
- package/lib/cjs/rules/no-restricted-classes.js +28 -3
- package/lib/cjs/rules/no-restricted-classes.js.map +1 -1
- package/lib/cjs/rules/no-unnecessary-whitespace.js +1 -1
- package/lib/cjs/rules/no-unnecessary-whitespace.js.map +1 -1
- package/lib/esm/configs/config.d.ts +8 -4
- package/lib/esm/configs/config.d.ts.map +1 -1
- package/lib/esm/configs/config.js +12 -8
- package/lib/esm/configs/config.js.map +1 -1
- package/lib/esm/rules/deprecated/multiline.d.ts +3 -0
- package/lib/esm/rules/deprecated/multiline.d.ts.map +1 -0
- package/lib/esm/rules/deprecated/multiline.js +24 -0
- package/lib/esm/rules/deprecated/multiline.js.map +1 -0
- package/lib/esm/rules/deprecated/sort-classes.d.ts +3 -0
- package/lib/esm/rules/deprecated/sort-classes.d.ts.map +1 -0
- package/lib/esm/rules/deprecated/sort-classes.js +23 -0
- package/lib/esm/rules/deprecated/sort-classes.js.map +1 -0
- package/lib/esm/rules/enforce-consistent-class-order.d.ts +19 -0
- package/lib/esm/rules/enforce-consistent-class-order.d.ts.map +1 -0
- package/lib/esm/rules/enforce-consistent-class-order.js +153 -0
- package/lib/esm/rules/enforce-consistent-class-order.js.map +1 -0
- package/lib/esm/rules/enforce-consistent-line-wrapping.d.ts +15 -0
- package/lib/esm/rules/enforce-consistent-line-wrapping.d.ts.map +1 -0
- package/lib/esm/rules/enforce-consistent-line-wrapping.js +563 -0
- package/lib/esm/rules/enforce-consistent-line-wrapping.js.map +1 -0
- package/lib/esm/rules/multiline.d.ts +1 -1
- package/lib/esm/rules/no-restricted-classes.d.ts +6 -4
- package/lib/esm/rules/no-restricted-classes.d.ts.map +1 -1
- package/lib/esm/rules/no-restricted-classes.js +29 -4
- package/lib/esm/rules/no-restricted-classes.js.map +1 -1
- package/lib/esm/rules/no-unnecessary-whitespace.js +1 -1
- package/lib/esm/rules/no-unnecessary-whitespace.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enforceConsistentLineWrapping = void 0;
|
|
4
|
+
const default_options_js_1 = require("../options/default-options.js");
|
|
5
|
+
const descriptions_js_1 = require("../options/descriptions.js");
|
|
6
|
+
const prefix_js_1 = require("../tailwindcss/prefix.js");
|
|
7
|
+
const options_js_1 = require("../utils/options.js");
|
|
8
|
+
const quotes_js_1 = require("../utils/quotes.js");
|
|
9
|
+
const rule_js_1 = require("../utils/rule.js");
|
|
10
|
+
const utils_js_1 = require("../utils/utils.js");
|
|
11
|
+
const defaultOptions = {
|
|
12
|
+
attributes: default_options_js_1.DEFAULT_ATTRIBUTE_NAMES,
|
|
13
|
+
callees: default_options_js_1.DEFAULT_CALLEE_NAMES,
|
|
14
|
+
classesPerLine: 0,
|
|
15
|
+
group: "newLine",
|
|
16
|
+
indent: 2,
|
|
17
|
+
lineBreakStyle: "unix",
|
|
18
|
+
preferSingleLine: false,
|
|
19
|
+
printWidth: 80,
|
|
20
|
+
tags: default_options_js_1.DEFAULT_TAG_NAMES,
|
|
21
|
+
variables: default_options_js_1.DEFAULT_VARIABLE_NAMES
|
|
22
|
+
};
|
|
23
|
+
const DOCUMENTATION_URL = "https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/multiline.md";
|
|
24
|
+
exports.enforceConsistentLineWrapping = {
|
|
25
|
+
name: "enforce-consistent-line-wrapping",
|
|
26
|
+
rule: {
|
|
27
|
+
create: ctx => (0, rule_js_1.createRuleListener)(ctx, getOptions(ctx), lintLiterals),
|
|
28
|
+
meta: {
|
|
29
|
+
docs: {
|
|
30
|
+
category: "Stylistic Issues",
|
|
31
|
+
description: "Enforce consistent line wrapping for tailwind classes.",
|
|
32
|
+
recommended: true,
|
|
33
|
+
url: DOCUMENTATION_URL
|
|
34
|
+
},
|
|
35
|
+
fixable: "code",
|
|
36
|
+
schema: [
|
|
37
|
+
{
|
|
38
|
+
additionalProperties: false,
|
|
39
|
+
properties: {
|
|
40
|
+
...descriptions_js_1.CALLEE_SCHEMA,
|
|
41
|
+
...descriptions_js_1.ATTRIBUTE_SCHEMA,
|
|
42
|
+
...descriptions_js_1.VARIABLE_SCHEMA,
|
|
43
|
+
...descriptions_js_1.TAG_SCHEMA,
|
|
44
|
+
...descriptions_js_1.ENTRYPOINT_SCHEMA,
|
|
45
|
+
...descriptions_js_1.TAILWIND_CONFIG_SCHEMA,
|
|
46
|
+
classesPerLine: {
|
|
47
|
+
default: defaultOptions.classesPerLine,
|
|
48
|
+
description: "The maximum amount of classes per line. Lines are wrapped appropriately to stay within this limit . The value `0` disables line wrapping by `classesPerLine`.",
|
|
49
|
+
type: "integer"
|
|
50
|
+
},
|
|
51
|
+
group: {
|
|
52
|
+
default: defaultOptions.group,
|
|
53
|
+
description: "Defines how different groups of classes should be separated. A group is a set of classes that share the same variant.",
|
|
54
|
+
enum: ["emptyLine", "never", "newLine"],
|
|
55
|
+
type: "string"
|
|
56
|
+
},
|
|
57
|
+
indent: {
|
|
58
|
+
default: defaultOptions.indent,
|
|
59
|
+
description: "Determines how the code should be indented.",
|
|
60
|
+
oneOf: [
|
|
61
|
+
{
|
|
62
|
+
enum: ["tab"],
|
|
63
|
+
type: "string"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
minimum: 0,
|
|
67
|
+
type: "integer"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
lineBreakStyle: {
|
|
72
|
+
default: defaultOptions.lineBreakStyle,
|
|
73
|
+
description: "The line break style. The style `windows` will use `\\r\\n` as line breaks and `unix` will use `\\n`.",
|
|
74
|
+
enum: ["unix", "windows"],
|
|
75
|
+
type: "string"
|
|
76
|
+
},
|
|
77
|
+
preferSingleLine: {
|
|
78
|
+
default: defaultOptions.preferSingleLine,
|
|
79
|
+
description: "Prefer a single line for the classes. When set to `true`, the rule will keep all classes on a single line until the line exceeds the `printWidth` or `classesPerLine` limit.",
|
|
80
|
+
type: "boolean"
|
|
81
|
+
},
|
|
82
|
+
printWidth: {
|
|
83
|
+
default: defaultOptions.printWidth,
|
|
84
|
+
description: "The maximum line length. Lines are wrapped appropriately to stay within this limit. The value `0` disables line wrapping by `printWidth`.",
|
|
85
|
+
type: "integer"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
type: "object"
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
type: "layout"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
function lintLiterals(ctx, literals) {
|
|
96
|
+
const options = getOptions(ctx);
|
|
97
|
+
const { classesPerLine, group: groupSeparator, indent, lineBreakStyle, preferSingleLine, printWidth, tailwindConfig } = options;
|
|
98
|
+
const { prefix, suffix } = (0, prefix_js_1.getPrefix)({ configPath: tailwindConfig, cwd: ctx.cwd });
|
|
99
|
+
for (const literal of literals) {
|
|
100
|
+
if (!literal.supportsMultiline) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const lineStartPosition = literal.indentation + getIndentation(ctx, indent);
|
|
104
|
+
const literalStartPosition = literal.loc.start.column;
|
|
105
|
+
const classChunks = (0, utils_js_1.splitClasses)(literal.content);
|
|
106
|
+
const groupedClasses = groupClasses(ctx, classChunks, prefix, suffix);
|
|
107
|
+
const multilineClasses = new Lines(ctx, lineStartPosition);
|
|
108
|
+
const singlelineClasses = new Lines(ctx, lineStartPosition);
|
|
109
|
+
if (literal.openingQuote) {
|
|
110
|
+
if (literal.multilineQuotes?.includes("\\`")) {
|
|
111
|
+
multilineClasses.line.addMeta({ openingQuote: "\\`" });
|
|
112
|
+
}
|
|
113
|
+
else if (literal.multilineQuotes?.includes("`")) {
|
|
114
|
+
multilineClasses.line.addMeta({ openingQuote: "`" });
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
multilineClasses.line.addMeta({ openingQuote: literal.openingQuote });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (literal.openingQuote && literal.closingQuote) {
|
|
121
|
+
singlelineClasses.line.addMeta({ closingQuote: literal.closingQuote, openingQuote: literal.openingQuote });
|
|
122
|
+
}
|
|
123
|
+
leadingTemplateLiteralNewLine: if (literal.type === "TemplateLiteral" && literal.closingBraces) {
|
|
124
|
+
multilineClasses.line.addMeta({
|
|
125
|
+
closingBraces: literal.closingBraces
|
|
126
|
+
});
|
|
127
|
+
// skip newline for sticky classes
|
|
128
|
+
if (literal.leadingWhitespace === "" && groupedClasses) {
|
|
129
|
+
break leadingTemplateLiteralNewLine;
|
|
130
|
+
}
|
|
131
|
+
// skip if no classes are present
|
|
132
|
+
if (!groupedClasses) {
|
|
133
|
+
break leadingTemplateLiteralNewLine;
|
|
134
|
+
}
|
|
135
|
+
if (groupSeparator === "emptyLine") {
|
|
136
|
+
multilineClasses.addLine();
|
|
137
|
+
}
|
|
138
|
+
if (groupSeparator === "emptyLine" ||
|
|
139
|
+
groupSeparator === "newLine" ||
|
|
140
|
+
groupSeparator === "never") {
|
|
141
|
+
multilineClasses.addLine();
|
|
142
|
+
multilineClasses.line.indent();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (groupedClasses) {
|
|
146
|
+
for (let g = 0; g < groupedClasses.length; g++) {
|
|
147
|
+
const group = groupedClasses.at(g);
|
|
148
|
+
const isFirstGroup = g === 0;
|
|
149
|
+
if (group.classCount === 0) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (isFirstGroup && (literal.type === "TemplateLiteral" && !literal.closingBraces ||
|
|
153
|
+
literal.type !== "TemplateLiteral")) {
|
|
154
|
+
multilineClasses.addLine();
|
|
155
|
+
multilineClasses.line.indent();
|
|
156
|
+
}
|
|
157
|
+
if (!isFirstGroup) {
|
|
158
|
+
if (groupSeparator === "emptyLine") {
|
|
159
|
+
multilineClasses.addLine();
|
|
160
|
+
}
|
|
161
|
+
if (groupSeparator === "emptyLine" || groupSeparator === "newLine") {
|
|
162
|
+
multilineClasses.addLine();
|
|
163
|
+
multilineClasses.line.indent();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
for (let i = 0; i < group.classCount; i++) {
|
|
167
|
+
const isFirstClass = i === 0;
|
|
168
|
+
const isLastClass = i === group.classCount - 1;
|
|
169
|
+
const className = group.at(i);
|
|
170
|
+
const simulatedLine = multilineClasses.line
|
|
171
|
+
.clone()
|
|
172
|
+
.addClass(className)
|
|
173
|
+
.toString();
|
|
174
|
+
// wrap after the first sticky class
|
|
175
|
+
if (isFirstClass && literal.leadingWhitespace === "" &&
|
|
176
|
+
literal.type === "TemplateLiteral" && literal.closingBraces) {
|
|
177
|
+
multilineClasses.line.addClass(className);
|
|
178
|
+
// don't add a new line if the first class is also the last
|
|
179
|
+
if (isLastClass) {
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
if (groupSeparator === "emptyLine") {
|
|
183
|
+
multilineClasses.addLine();
|
|
184
|
+
}
|
|
185
|
+
if (groupSeparator === "emptyLine" || groupSeparator === "newLine") {
|
|
186
|
+
multilineClasses.addLine();
|
|
187
|
+
multilineClasses.line.indent();
|
|
188
|
+
}
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
// wrap before the last sticky class
|
|
192
|
+
if (isLastClass && literal.trailingWhitespace === "" &&
|
|
193
|
+
literal.type === "TemplateLiteral" && literal.openingBraces) {
|
|
194
|
+
// skip wrapping for the first class of a group
|
|
195
|
+
if (isFirstClass) {
|
|
196
|
+
multilineClasses.line.addClass(className);
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (groupSeparator === "emptyLine") {
|
|
200
|
+
multilineClasses.addLine();
|
|
201
|
+
}
|
|
202
|
+
if (groupSeparator === "emptyLine" || groupSeparator === "newLine") {
|
|
203
|
+
multilineClasses.addLine();
|
|
204
|
+
multilineClasses.line.indent();
|
|
205
|
+
}
|
|
206
|
+
multilineClasses.line.addClass(className);
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
// wrap if the length exceeds the limits
|
|
210
|
+
if (simulatedLine.length > printWidth && printWidth !== 0 ||
|
|
211
|
+
multilineClasses.line.classCount >= classesPerLine && classesPerLine !== 0) {
|
|
212
|
+
// but only if it is not the first class of a group or classes are not grouped
|
|
213
|
+
if (!isFirstClass || groupSeparator === "never") {
|
|
214
|
+
multilineClasses.addLine();
|
|
215
|
+
multilineClasses.line.indent();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
multilineClasses.line.addClass(className);
|
|
219
|
+
singlelineClasses.line.addClass(className);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
trailingTemplateLiteralNewLine: if (literal.type === "TemplateLiteral" && literal.openingBraces) {
|
|
224
|
+
// skip newline for sticky classes
|
|
225
|
+
if (literal.trailingWhitespace === "" && groupedClasses) {
|
|
226
|
+
multilineClasses.line.addMeta({
|
|
227
|
+
openingBraces: literal.openingBraces
|
|
228
|
+
});
|
|
229
|
+
break trailingTemplateLiteralNewLine;
|
|
230
|
+
}
|
|
231
|
+
if (groupSeparator === "emptyLine" && groupedClasses) {
|
|
232
|
+
multilineClasses.addLine();
|
|
233
|
+
}
|
|
234
|
+
if (groupSeparator === "emptyLine" ||
|
|
235
|
+
groupSeparator === "newLine" ||
|
|
236
|
+
groupSeparator === "never") {
|
|
237
|
+
multilineClasses.addLine();
|
|
238
|
+
multilineClasses.line.indent();
|
|
239
|
+
}
|
|
240
|
+
multilineClasses.line.addMeta({
|
|
241
|
+
openingBraces: literal.openingBraces
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
if (literal.closingQuote) {
|
|
245
|
+
multilineClasses.addLine();
|
|
246
|
+
multilineClasses.line.indent(lineStartPosition - getIndentation(ctx, indent));
|
|
247
|
+
if (literal.multilineQuotes?.includes("\\`")) {
|
|
248
|
+
multilineClasses.line.addMeta({ closingQuote: "\\`" });
|
|
249
|
+
}
|
|
250
|
+
else if (literal.multilineQuotes?.includes("`")) {
|
|
251
|
+
multilineClasses.line.addMeta({ closingQuote: "`" });
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
multilineClasses.line.addMeta({ closingQuote: literal.closingQuote });
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// collapse lines if there is no reason for line wrapping or if preferSingleLine is enabled
|
|
258
|
+
collapse: {
|
|
259
|
+
// disallow collapsing if the literal contains variants, except preferSingleLine is enabled
|
|
260
|
+
if (groupedClasses?.length !== 1 && !preferSingleLine) {
|
|
261
|
+
break collapse;
|
|
262
|
+
}
|
|
263
|
+
// disallow collapsing for template literals with braces (expressions)
|
|
264
|
+
if (literal.type === "TemplateLiteral" && (literal.openingBraces || literal.closingBraces)) {
|
|
265
|
+
break collapse;
|
|
266
|
+
}
|
|
267
|
+
// disallow collapsing if the original literal was a single line (keeps original whitespace)
|
|
268
|
+
if (!literal.content.includes(getLineBreaks(lineBreakStyle))) {
|
|
269
|
+
break collapse;
|
|
270
|
+
}
|
|
271
|
+
// disallow collapsing if the single line contains more classes than the classesPerLine
|
|
272
|
+
if (singlelineClasses.line.classCount > classesPerLine && classesPerLine !== 0) {
|
|
273
|
+
break collapse;
|
|
274
|
+
}
|
|
275
|
+
// disallow collapsing if the single line including the element and all previous characters is longer than the printWidth
|
|
276
|
+
if (literalStartPosition + singlelineClasses.line.length > printWidth && printWidth !== 0) {
|
|
277
|
+
break collapse;
|
|
278
|
+
}
|
|
279
|
+
// disallow collapsing if the literal contains expressions
|
|
280
|
+
if (literal.type === "TemplateLiteral" && (literal.openingBraces || literal.closingBraces)) {
|
|
281
|
+
break collapse;
|
|
282
|
+
}
|
|
283
|
+
const fixedClasses = singlelineClasses.line.toString(false);
|
|
284
|
+
if (literal.raw === fixedClasses) {
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
ctx.report({
|
|
288
|
+
data: {
|
|
289
|
+
notReadable: (0, utils_js_1.display)(literal.raw),
|
|
290
|
+
readable: (0, utils_js_1.display)(fixedClasses)
|
|
291
|
+
},
|
|
292
|
+
fix(fixer) {
|
|
293
|
+
return fixer.replaceTextRange(literal.range, fixedClasses);
|
|
294
|
+
},
|
|
295
|
+
loc: literal.loc,
|
|
296
|
+
message: augmentMessage(literal.raw, options, "Unnecessary line wrapping. Expected\n\n{{ notReadable }}\n\nto be\n\n{{ readable }}")
|
|
297
|
+
});
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
// skip if class string was empty
|
|
301
|
+
if (multilineClasses.length === 2) {
|
|
302
|
+
if (!literal.openingBraces && !literal.closingBraces && literal.content.trim() === "") {
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
// skip line wrapping if preferSingleLine is enabled and the single line does not exceed the printWidth or classesPerLine
|
|
307
|
+
if (preferSingleLine &&
|
|
308
|
+
(literalStartPosition + singlelineClasses.line.length <= printWidth && printWidth !== 0 ||
|
|
309
|
+
singlelineClasses.line.classCount <= classesPerLine && classesPerLine !== 0) ||
|
|
310
|
+
printWidth === 0 && classesPerLine === 0) {
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
// skip line wrapping if it is not necessary
|
|
314
|
+
skip: {
|
|
315
|
+
// disallow skipping if class string contains multiple groups
|
|
316
|
+
if (groupedClasses && groupedClasses.length > 1) {
|
|
317
|
+
break skip;
|
|
318
|
+
}
|
|
319
|
+
// disallow skipping if the original literal was longer than the printWidth
|
|
320
|
+
if (literalStartPosition + singlelineClasses.line.length > printWidth && printWidth !== 0 ||
|
|
321
|
+
singlelineClasses.line.classCount > classesPerLine && classesPerLine !== 0) {
|
|
322
|
+
break skip;
|
|
323
|
+
}
|
|
324
|
+
// disallow skipping for template literals with braces (expressions)
|
|
325
|
+
if (literal.type === "TemplateLiteral" && (literal.openingBraces || literal.closingBraces)) {
|
|
326
|
+
break skip;
|
|
327
|
+
}
|
|
328
|
+
const openingQuoteLength = literal.openingQuote?.length ?? 0;
|
|
329
|
+
const closingBracesLength = literal.closingBraces?.length ?? 0;
|
|
330
|
+
const firstLineLength = multilineClasses
|
|
331
|
+
.at(1)
|
|
332
|
+
.toString()
|
|
333
|
+
.trim()
|
|
334
|
+
.length +
|
|
335
|
+
openingQuoteLength +
|
|
336
|
+
closingBracesLength;
|
|
337
|
+
// disallow skipping if the first line including the element and all previous characters is longer than the printWidth
|
|
338
|
+
if (literalStartPosition + firstLineLength > printWidth && printWidth !== 0) {
|
|
339
|
+
break skip;
|
|
340
|
+
}
|
|
341
|
+
// disallow skipping if the first line contains more classes than the classesPerLine
|
|
342
|
+
if (multilineClasses.at(1).classCount > classesPerLine && classesPerLine !== 0) {
|
|
343
|
+
break skip;
|
|
344
|
+
}
|
|
345
|
+
continue;
|
|
346
|
+
}
|
|
347
|
+
const fixedClasses = multilineClasses.toString(lineBreakStyle);
|
|
348
|
+
if (literal.raw === fixedClasses) {
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
ctx.report({
|
|
352
|
+
data: {
|
|
353
|
+
notReadable: (0, utils_js_1.display)(literal.raw),
|
|
354
|
+
readable: (0, utils_js_1.display)(fixedClasses)
|
|
355
|
+
},
|
|
356
|
+
fix(fixer) {
|
|
357
|
+
return literal.surroundingBraces
|
|
358
|
+
? fixer.replaceTextRange(literal.range, `{${fixedClasses}}`)
|
|
359
|
+
: fixer.replaceTextRange(literal.range, fixedClasses);
|
|
360
|
+
},
|
|
361
|
+
loc: literal.loc,
|
|
362
|
+
message: augmentMessage(literal.raw, options, "Incorrect line wrapping. Expected\n\n{{ notReadable }}\n\nto be\n\n{{ readable }}")
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function getIndentation(ctx, indentation) {
|
|
367
|
+
return indentation === "tab" ? 1 : indentation ?? 0;
|
|
368
|
+
}
|
|
369
|
+
function getOptions(ctx) {
|
|
370
|
+
const options = ctx.options[0] ?? {};
|
|
371
|
+
const common = (0, options_js_1.getCommonOptions)(ctx);
|
|
372
|
+
const printWidth = options.printWidth ?? defaultOptions.printWidth;
|
|
373
|
+
const classesPerLine = options.classesPerLine ?? defaultOptions.classesPerLine;
|
|
374
|
+
const indent = options.indent ?? defaultOptions.indent;
|
|
375
|
+
const group = options.group ?? defaultOptions.group;
|
|
376
|
+
const preferSingleLine = options.preferSingleLine ?? defaultOptions.preferSingleLine;
|
|
377
|
+
const lineBreakStyle = options.lineBreakStyle ?? defaultOptions.lineBreakStyle;
|
|
378
|
+
return {
|
|
379
|
+
...common,
|
|
380
|
+
classesPerLine,
|
|
381
|
+
group,
|
|
382
|
+
indent,
|
|
383
|
+
lineBreakStyle,
|
|
384
|
+
preferSingleLine,
|
|
385
|
+
printWidth
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
class Lines {
|
|
389
|
+
constructor(ctx, indentation) {
|
|
390
|
+
this.lines = [];
|
|
391
|
+
this.indentation = 0;
|
|
392
|
+
this.ctx = ctx;
|
|
393
|
+
this.indentation = indentation;
|
|
394
|
+
this.addLine();
|
|
395
|
+
}
|
|
396
|
+
at(index) {
|
|
397
|
+
return index >= 0
|
|
398
|
+
? this.lines[index]
|
|
399
|
+
: this.lines[this.lines.length + index];
|
|
400
|
+
}
|
|
401
|
+
get line() {
|
|
402
|
+
return this.currentLine;
|
|
403
|
+
}
|
|
404
|
+
get length() {
|
|
405
|
+
return this.lines.length;
|
|
406
|
+
}
|
|
407
|
+
addLine() {
|
|
408
|
+
const line = new Line(this.ctx, this.indentation);
|
|
409
|
+
this.lines.push(line);
|
|
410
|
+
this.currentLine = line;
|
|
411
|
+
return this;
|
|
412
|
+
}
|
|
413
|
+
toString(lineBreakStyle = "unix") {
|
|
414
|
+
const lineBreaks = getLineBreaks(lineBreakStyle);
|
|
415
|
+
return this.lines.map(line => line.toString()).join(lineBreaks);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
class Line {
|
|
419
|
+
constructor(ctx, indentation) {
|
|
420
|
+
this.classes = [];
|
|
421
|
+
this.meta = {};
|
|
422
|
+
this.indentation = 0;
|
|
423
|
+
this.ctx = ctx;
|
|
424
|
+
this.indentation = indentation;
|
|
425
|
+
}
|
|
426
|
+
indent(start = this.indentation) {
|
|
427
|
+
const indent = getOptions(this.ctx).indent;
|
|
428
|
+
if (indent === "tab") {
|
|
429
|
+
this.meta.indentation = "\t".repeat(start);
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
this.meta.indentation = " ".repeat(start);
|
|
433
|
+
}
|
|
434
|
+
return this;
|
|
435
|
+
}
|
|
436
|
+
get length() {
|
|
437
|
+
return this.toString().length;
|
|
438
|
+
}
|
|
439
|
+
get classCount() {
|
|
440
|
+
return this.classes.length;
|
|
441
|
+
}
|
|
442
|
+
get printWidth() {
|
|
443
|
+
return this.toString().length;
|
|
444
|
+
}
|
|
445
|
+
addMeta(meta) {
|
|
446
|
+
this.meta = { ...this.meta, ...meta };
|
|
447
|
+
return this;
|
|
448
|
+
}
|
|
449
|
+
addClass(className) {
|
|
450
|
+
this.classes.push(className);
|
|
451
|
+
return this;
|
|
452
|
+
}
|
|
453
|
+
clone() {
|
|
454
|
+
const line = new Line(this.ctx, this.indentation);
|
|
455
|
+
line.classes = [...this.classes];
|
|
456
|
+
line.meta = { ...this.meta };
|
|
457
|
+
return line;
|
|
458
|
+
}
|
|
459
|
+
toString(indent = true) {
|
|
460
|
+
return this.join([
|
|
461
|
+
indent ? this.meta.indentation : "",
|
|
462
|
+
this.meta.openingQuote,
|
|
463
|
+
this.meta.closingBraces,
|
|
464
|
+
this.meta.leadingWhitespace ?? "",
|
|
465
|
+
(0, quotes_js_1.escapeNestedQuotes)(this.join(this.classes), this.meta.openingQuote ?? this.meta.closingQuote ?? "`"),
|
|
466
|
+
this.meta.trailingWhitespace ?? "",
|
|
467
|
+
this.meta.openingBraces,
|
|
468
|
+
this.meta.closingQuote
|
|
469
|
+
], "");
|
|
470
|
+
}
|
|
471
|
+
join(content, separator = " ") {
|
|
472
|
+
return content
|
|
473
|
+
.filter(content => content !== undefined)
|
|
474
|
+
.join(separator);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
function groupClasses(ctx, classes, prefix, suffix) {
|
|
478
|
+
if (classes.length === 0) {
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
const prefixRegex = new RegExp(`^${(0, utils_js_1.escapeForRegex)(`${prefix}${suffix}`)}`);
|
|
482
|
+
const groups = new Groups();
|
|
483
|
+
for (const className of classes) {
|
|
484
|
+
const isFirstClass = classes.indexOf(className) === 0;
|
|
485
|
+
const isFirstGroup = groups.length === 1;
|
|
486
|
+
const lastGroup = groups.at(-1);
|
|
487
|
+
const lastClassName = lastGroup?.at(-1);
|
|
488
|
+
const unprefixedLastClassName = lastClassName?.replace(prefixRegex, "");
|
|
489
|
+
const unprefixedClassName = className.replace(prefixRegex, "");
|
|
490
|
+
const lastVariant = unprefixedLastClassName?.match(/^.*?:/)?.[0];
|
|
491
|
+
const variant = unprefixedClassName.match(/^.*?:/)?.[0];
|
|
492
|
+
if (lastVariant !== variant && !(isFirstClass && isFirstGroup)) {
|
|
493
|
+
groups.addGroup();
|
|
494
|
+
}
|
|
495
|
+
groups.group.addClass(className);
|
|
496
|
+
}
|
|
497
|
+
return groups;
|
|
498
|
+
}
|
|
499
|
+
class Groups {
|
|
500
|
+
constructor() {
|
|
501
|
+
this.groups = [];
|
|
502
|
+
this.addGroup();
|
|
503
|
+
}
|
|
504
|
+
get group() {
|
|
505
|
+
return this.currentGroup;
|
|
506
|
+
}
|
|
507
|
+
at(index) {
|
|
508
|
+
return this.groups.at(index);
|
|
509
|
+
}
|
|
510
|
+
get length() {
|
|
511
|
+
return this.groups.length;
|
|
512
|
+
}
|
|
513
|
+
addGroup() {
|
|
514
|
+
const group = new Group();
|
|
515
|
+
this.currentGroup = group;
|
|
516
|
+
this.groups.push(this.currentGroup);
|
|
517
|
+
return this;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
class Group {
|
|
521
|
+
constructor() {
|
|
522
|
+
this.classes = [];
|
|
523
|
+
}
|
|
524
|
+
get classCount() {
|
|
525
|
+
return this.classes.length;
|
|
526
|
+
}
|
|
527
|
+
at(index) {
|
|
528
|
+
return this.classes.at(index);
|
|
529
|
+
}
|
|
530
|
+
addClass(className) {
|
|
531
|
+
this.classes.push(className);
|
|
532
|
+
return this;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
function getLineBreaks(lineBreakStyle) {
|
|
536
|
+
return lineBreakStyle === "unix" ? "\n" : "\r\n";
|
|
537
|
+
}
|
|
538
|
+
function augmentMessage(original, options, message) {
|
|
539
|
+
const invalidLineBreaks = isLineBreakStyleLikelyMisconfigured(original, options);
|
|
540
|
+
const invalidIndentations = isIndentationLikelyMisconfigured(original, options);
|
|
541
|
+
const warnings = [];
|
|
542
|
+
if (invalidLineBreaks) {
|
|
543
|
+
warnings.push({
|
|
544
|
+
option: "lineBreakStyle",
|
|
545
|
+
title: "Inconsistent line endings detected",
|
|
546
|
+
url: `${DOCUMENTATION_URL}#linebreakstyle`
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
if (invalidIndentations) {
|
|
550
|
+
warnings.push({
|
|
551
|
+
option: "indent",
|
|
552
|
+
title: "Inconsistent indentation detected",
|
|
553
|
+
url: `${DOCUMENTATION_URL}#indent`
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
return (0, utils_js_1.augmentMessageWithWarnings)(message, DOCUMENTATION_URL, warnings);
|
|
557
|
+
}
|
|
558
|
+
function isLineBreakStyleLikelyMisconfigured(original, options) {
|
|
559
|
+
return (original.includes("\r") && options.lineBreakStyle === "unix" ||
|
|
560
|
+
!original.includes("\r") && options.lineBreakStyle === "windows");
|
|
561
|
+
}
|
|
562
|
+
function isIndentationLikelyMisconfigured(original, options) {
|
|
563
|
+
return (original.includes(" ") && options.indent === "tab" ||
|
|
564
|
+
original.includes("\t") && typeof options.indent === "number");
|
|
565
|
+
}
|
|
566
|
+
//# sourceMappingURL=enforce-consistent-line-wrapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enforce-consistent-line-wrapping.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-line-wrapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AttributeOption, CalleeOption, ESLintRule, TagOption, VariableOption } from "
|
|
1
|
+
import type { AttributeOption, CalleeOption, ESLintRule, TagOption, VariableOption } from "../../types/rule.js";
|
|
2
2
|
export type Options = [
|
|
3
3
|
Partial<AttributeOption & CalleeOption & TagOption & VariableOption & {
|
|
4
4
|
classesPerLine?: number;
|
|
@@ -2,18 +2,20 @@ import type { Rule } from "eslint";
|
|
|
2
2
|
import type { AttributeOption, CalleeOption, ESLintRule, TagOption, VariableOption } from "../types/rule.js";
|
|
3
3
|
export type Options = [
|
|
4
4
|
Partial<AttributeOption & CalleeOption & TagOption & VariableOption & {
|
|
5
|
-
restrict?: {
|
|
5
|
+
restrict?: (string | {
|
|
6
6
|
pattern: string;
|
|
7
|
+
fix?: string;
|
|
7
8
|
message?: string;
|
|
8
|
-
}[]
|
|
9
|
+
})[];
|
|
9
10
|
}>
|
|
10
11
|
];
|
|
11
12
|
export declare const noRestrictedClasses: ESLintRule<Options>;
|
|
12
13
|
export declare function getOptions(ctx: Rule.RuleContext): {
|
|
13
|
-
restrict: string
|
|
14
|
+
restrict: (string | {
|
|
14
15
|
pattern: string;
|
|
16
|
+
fix?: string;
|
|
15
17
|
message?: string;
|
|
16
|
-
}[];
|
|
18
|
+
})[];
|
|
17
19
|
attributes: any;
|
|
18
20
|
callees: any;
|
|
19
21
|
tags: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-restricted-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-restricted-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG;YACnB,OAAO,EAAE,MAAM,CAAC;YAChB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC,EAAE,CAAC;KACN,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CAwDnD,CAAC;AAwEF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;iBAlJ/B,MAAM;cACT,MAAM;kBACF,MAAM;;;;;;;EA6JvB"}
|