Files
SnowLuma/.pnpm-store/v11/files/02/f3cf37bcde5078a19103c2c85020c4f9a065460145dcc4daf1e8955c4800500c712d7e39a90113c36c5e93add83a3b86572d66744201958212cc41e24a4270
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

84 lines
2.7 KiB
Plaintext

import { f as createRule, g as import_ast_utils, h as AST_TOKEN_TYPES } from "../utils.js";
var block_spacing_default = createRule({
name: "block-spacing",
meta: {
type: "layout",
docs: { description: "Disallow or enforce spaces inside of blocks after opening block and before closing block" },
fixable: "whitespace",
schema: [{
type: "string",
enum: ["always", "never"]
}],
defaultOptions: ["always"],
messages: {
missing: "Requires a space {{location}} '{{token}}'.",
extra: "Unexpected space(s) {{location}} '{{token}}'."
}
},
create(context, [whenToApplyOption]) {
const sourceCode = context.sourceCode;
const always = whenToApplyOption !== "never";
const messageId = always ? "missing" : "extra";
function getOpenBrace(node) {
return sourceCode.getFirstToken(node, { filter: (token) => (0, import_ast_utils.isOpeningBraceToken)(token) });
}
function isValid(left, right) {
return !(0, import_ast_utils.isTokenOnSameLine)(left, right) || sourceCode.isSpaceBetween(left, right) === always;
}
function checkSpacingInsideBraces(node) {
const openBrace = getOpenBrace(node);
const closeBrace = sourceCode.getLastToken(node);
const firstToken = sourceCode.getTokenAfter(openBrace, { includeComments: true });
const lastToken = sourceCode.getTokenBefore(closeBrace, { includeComments: true });
if (!(0, import_ast_utils.isOpeningBraceToken)(openBrace) || !(0, import_ast_utils.isClosingBraceToken)(closeBrace) || firstToken === closeBrace) return;
if (!always && firstToken.type === AST_TOKEN_TYPES.Line) return;
if (!isValid(openBrace, firstToken)) {
let loc = openBrace.loc;
if (messageId === "extra") loc = {
start: openBrace.loc.end,
end: firstToken.loc.start
};
context.report({
node,
loc,
messageId,
data: {
location: "after",
token: openBrace.value
},
fix(fixer) {
if (always) return fixer.insertTextBefore(firstToken, " ");
return fixer.removeRange([openBrace.range[1], firstToken.range[0]]);
}
});
}
if (!isValid(lastToken, closeBrace)) {
let loc = closeBrace.loc;
if (messageId === "extra") loc = {
start: lastToken.loc.end,
end: closeBrace.loc.start
};
context.report({
node,
loc,
messageId,
data: {
location: "before",
token: closeBrace.value
},
fix(fixer) {
if (always) return fixer.insertTextAfter(lastToken, " ");
return fixer.removeRange([lastToken.range[1], closeBrace.range[0]]);
}
});
}
}
return {
BlockStatement: checkSpacingInsideBraces,
StaticBlock: checkSpacingInsideBraces,
SwitchStatement: checkSpacingInsideBraces
};
}
});
export { block_spacing_default as t };