Files
SnowLuma/.pnpm-store/v11/files/ff/734013941890ded81da9b6bccd049b17fa05c27edbe78970f5d4e015f5e462b1a044183e22373c7faa2bd0eba684967e665275edcea7c2f1d773f794435256
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

37 lines
1.2 KiB
Plaintext

import { f as createRule, w as canTokensBeAdjacent } from "../utils.js";
var no_floating_decimal_default = createRule({
name: "no-floating-decimal",
meta: {
type: "layout",
docs: { description: "Disallow leading or trailing decimal points in numeric literals" },
fixable: "code",
schema: [],
messages: {
leading: "A leading decimal point can be confused with a dot.",
trailing: "A trailing decimal point can be confused with a dot."
}
},
create(context) {
const sourceCode = context.sourceCode;
return { Literal(node) {
if (typeof node.value === "number") {
if (node.raw.startsWith(".")) context.report({
node,
messageId: "leading",
fix(fixer) {
const tokenBefore = sourceCode.getTokenBefore(node);
const needsSpaceBefore = tokenBefore && tokenBefore.range[1] === node.range[0] && !canTokensBeAdjacent(tokenBefore, `0${node.raw}`);
return fixer.insertTextBefore(node, needsSpaceBefore ? " 0" : "0");
}
});
if (node.raw.indexOf(".") === node.raw.length - 1) context.report({
node,
messageId: "trailing",
fix: (fixer) => fixer.insertTextAfter(node, "0")
});
}
} };
}
});
export { no_floating_decimal_default as t };