@maniascript/mslint
Version:
ManiaScript linter
30 lines (29 loc) • 924 B
TypeScript
import { Node, Scope } from '@maniascript/parser';
import { CommonTokenStream } from 'antlr4ng';
type RuleReporter = (node: Node, message: string) => void;
type RuleSettings = Record<string, unknown>;
interface RuleContext {
id: string;
settings: RuleSettings;
tokens: CommonTokenStream;
report: RuleReporter;
getScope: (node?: Node) => Scope | null;
}
type RuleActions = Record<string, (node: Node) => void>;
interface Rule {
meta: {
id: string;
description: string;
recommended?: boolean;
settings?: RuleSettings;
};
create: (context: RuleContext) => RuleActions;
}
declare enum Severity {
Off = 0,
Warn = 1,
Error = 2
}
declare function getSeverity(source: unknown): Severity | undefined;
declare function getSettings(source: unknown): RuleSettings;
export { type Rule, type RuleContext, type RuleSettings, Severity, getSeverity, getSettings };