code-server/lib/vscode/extensions/emmet/src/typings/EmmetNode.d.ts

96 lines
2.3 KiB
TypeScript
Raw Normal View History

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
declare module 'EmmetNode' {
import { Position } from 'vscode';
export interface Node {
start: Position
end: Position
type: string
parent: Node
firstChild: Node
nextSibling: Node
previousSibling: Node
children: Node[]
}
export interface Token {
start: Position
end: Position
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
close: Token
parent: HtmlNode
firstChild: HtmlNode
nextSibling: HtmlNode
previousSibling: HtmlNode
children: HtmlNode[]
attributes: Attribute[]
}
export interface CssNode extends Node {
name: string
parent: CssNode
firstChild: CssNode
nextSibling: CssNode
previousSibling: CssNode
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: Position, to: Position): string
eat(match: any): boolean
eatWhile(match: any): boolean
}
}