@textlint/kernel
Version:
textlint kernel is core logic by pure JavaScript.
70 lines • 2.95 kB
TypeScript
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