90 lines
2.1 KiB
TypeScript
90 lines
2.1 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
declare module 'EmmetFlatNode' {
|
|
export interface Node {
|
|
start: number;
|
|
end: number;
|
|
type: string;
|
|
parent: Node | undefined;
|
|
firstChild: Node | undefined;
|
|
nextSibling: Node | undefined;
|
|
previousSibling: Node | undefined;
|
|
children: Node[];
|
|
}
|
|
|
|
export interface Token {
|
|
start: number;
|
|
end: number;
|
|
stream: BufferStream;
|
|
toString(): string;
|
|
}
|
|
|
|
export interface CssToken extends Token {
|
|
size: number;
|
|
item(number: number): any;
|
|
type: string;
|
|
}
|
|
|
|
export interface HtmlToken extends Token {
|
|
value: string;
|
|
}
|
|
|
|
export interface Attribute extends Token {
|
|
name: Token;
|
|
value: Token;
|
|
}
|
|
|
|
export interface HtmlNode extends Node {
|
|
name: string;
|
|
open: Token | undefined;
|
|
close: Token | undefined;
|
|
parent: HtmlNode | undefined;
|
|
firstChild: HtmlNode | undefined;
|
|
nextSibling: HtmlNode | undefined;
|
|
previousSibling: HtmlNode | undefined;
|
|
children: HtmlNode[];
|
|
attributes: Attribute[];
|
|
}
|
|
|
|
export interface CssNode extends Node {
|
|
name: string;
|
|
parent: CssNode | undefined;
|
|
firstChild: CssNode | undefined;
|
|
nextSibling: CssNode | undefined;
|
|
previousSibling: CssNode | undefined;
|
|
children: CssNode[];
|
|
}
|
|
|
|
export interface Rule extends CssNode {
|
|
selectorToken: Token;
|
|
contentStartToken: Token;
|
|
contentEndToken: Token;
|
|
}
|
|
|
|
export interface Property extends CssNode {
|
|
valueToken: Token;
|
|
separator: string;
|
|
parent: Rule;
|
|
terminatorToken: Token;
|
|
separatorToken: Token;
|
|
value: string;
|
|
}
|
|
|
|
export interface Stylesheet extends Node {
|
|
comments: Token[];
|
|
}
|
|
|
|
export interface BufferStream {
|
|
peek(): number;
|
|
next(): number;
|
|
backUp(n: number): number;
|
|
current(): string;
|
|
substring(from: number, to: number): string;
|
|
eat(match: any): boolean;
|
|
eatWhile(match: any): boolean;
|
|
}
|
|
}
|