@isentinel/eslint-plugin-comment-length
Version:
40 lines (33 loc) • 1.14 kB
text/typescript
import { TSESTree, ESLintUtils } from "@typescript-eslint/utils";
import { MessageIds, reportMessages } from "../../const.message-ids";
import {
RuleOptions,
defaultOptions,
optionsSchema,
} from "../../typings.options";
import { resolveDocsRoute } from "../../utils/resolve-docs-route";
import { limitSingleLineComments } from "./root";
const createRule = ESLintUtils.RuleCreator(resolveDocsRoute);
export const limitSingleLineCommentsRule = createRule<RuleOptions, MessageIds>({
name: "limit-single-line-comments",
defaultOptions,
meta: {
type: "layout",
fixable: "whitespace",
messages: reportMessages,
docs: {
description:
"Reflows single-line comments to ensure that blocks never exceed the configured length",
recommended: "stylistic",
},
schema: optionsSchema,
},
create: (ruleContext, [options]) => {
const sourceCode = ruleContext.getSourceCode();
const comments = sourceCode
.getAllComments()
.filter((it): it is TSESTree.LineComment => it.type === "Line");
limitSingleLineComments(ruleContext, options, comments);
return {};
},
});