UNPKG

@textlint/kernel

Version:
70 lines 2.95 kB
import { EventEmitter } from "./promise-event-emitter"; import MessageType from "../shared/type/MessageType"; import type { TextlintFilterRuleContext, TextlintFilterRuleOptions, TextlintFilterRuleReporter, TextlintFilterRuleShouldIgnoreFunction, TextlintMessageFixCommand, TextlintRuleContext, TextlintRuleContextReportFunction, TextlintRuleOptions, TextlintRuleReporter, TextlintSourceCode } from "@textlint/types"; export interface IgnoreReportedMessage { ruleId: string; type: typeof MessageType.ignore; range: readonly [startIndex: number, endIndex: number]; ignoringRuleId: string; } export interface LintReportedMessage { type: typeof MessageType.lint; ruleId: string; message: string; index: number; line: number; column: number; range: readonly [startIndex: number, endIndex: number]; loc: { start: { line: number; column: number; }; end: { line: number; column: number; }; }; severity: number; fix?: TextlintMessageFixCommand; } /** * CoreTask receive AST and prepare, traverse AST, emit nodeType event! * You can observe task and receive "message" event that is TextLintMessage. */ export default abstract class TextLintCoreTask extends EventEmitter { private ruleTypeEmitter; static get events(): { start: string; message: string; complete: string; error: string; }; constructor(); abstract start(): void; createShouldIgnore(): TextlintFilterRuleShouldIgnoreFunction; createReporter(sourceCode: TextlintSourceCode): TextlintRuleContextReportFunction; /** * start process and emitting events. * You can listen message by `task.on("message", message => {})` * @param {SourceCode} sourceCode */ startTraverser(sourceCode: TextlintSourceCode): void; /** * try to get rule object */ tryToGetRuleObject(ruleCreator: TextlintRuleReporter, ruleContext: Readonly<TextlintRuleContext>, ruleOptions?: TextlintRuleOptions): import("@textlint/types").TextlintRuleReportHandler; /** * try to get filter rule object */ tryToGetFilterRuleObject(ruleCreator: TextlintFilterRuleReporter, ruleContext: Readonly<TextlintFilterRuleContext>, ruleOptions?: TextlintFilterRuleOptions): import("@textlint/types").TextlintFilterRuleReportHandler; /** * add all the node types as listeners of the rule * @param {Function} ruleCreator * @param {Readonly<RuleContext>|Readonly<FilterRuleContext>} ruleContext * @param {Object|boolean|undefined} ruleOptions * @returns {Object} */ tryToAddListenRule(ruleCreator: TextlintRuleReporter | TextlintFilterRuleReporter, ruleContext: Readonly<TextlintRuleContext> | Readonly<TextlintFilterRuleContext>, ruleOptions?: TextlintRuleOptions | TextlintFilterRuleOptions): void; } //# sourceMappingURL=textlint-core-task.d.ts.map