49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
![]() |
import { RuleId } from "./rule";
|
||
|
export interface ILocation {
|
||
|
readonly filename: string;
|
||
|
readonly line: number;
|
||
|
readonly char: number;
|
||
|
}
|
||
|
export interface ILocatable {
|
||
|
readonly $vscodeTextmateLocation?: ILocation;
|
||
|
}
|
||
|
export interface IRawGrammar extends ILocatable {
|
||
|
repository: IRawRepository;
|
||
|
readonly scopeName: string;
|
||
|
readonly patterns: IRawRule[];
|
||
|
readonly injections?: {
|
||
|
[expression: string]: IRawRule;
|
||
|
};
|
||
|
readonly injectionSelector?: string;
|
||
|
readonly fileTypes?: string[];
|
||
|
readonly name?: string;
|
||
|
readonly firstLineMatch?: string;
|
||
|
}
|
||
|
export interface IRawRepositoryMap {
|
||
|
[name: string]: IRawRule;
|
||
|
$self: IRawRule;
|
||
|
$base: IRawRule;
|
||
|
}
|
||
|
export declare type IRawRepository = IRawRepositoryMap & ILocatable;
|
||
|
export interface IRawRule extends ILocatable {
|
||
|
id?: RuleId;
|
||
|
readonly include?: string;
|
||
|
readonly name?: string;
|
||
|
readonly contentName?: string;
|
||
|
readonly match?: string;
|
||
|
readonly captures?: IRawCaptures;
|
||
|
readonly begin?: string;
|
||
|
readonly beginCaptures?: IRawCaptures;
|
||
|
readonly end?: string;
|
||
|
readonly endCaptures?: IRawCaptures;
|
||
|
readonly while?: string;
|
||
|
readonly whileCaptures?: IRawCaptures;
|
||
|
readonly patterns?: IRawRule[];
|
||
|
readonly repository?: IRawRepository;
|
||
|
readonly applyEndPatternLast?: boolean;
|
||
|
}
|
||
|
export interface IRawCapturesMap {
|
||
|
[captureId: string]: IRawRule;
|
||
|
}
|
||
|
export declare type IRawCaptures = IRawCapturesMap & ILocatable;
|