svelte-language-server
Version:
A language server for Svelte
47 lines (46 loc) • 1.8 kB
TypeScript
import { HTMLDocument, Node, Position } from 'vscode-html-languageservice';
import { Document } from './Document';
/**
* adopted from https://github.com/microsoft/vscode-html-languageservice/blob/10daf45dc16b4f4228987cf7cddf3a7dbbdc7570/src/parser/htmlParser.ts
* differences:
*
* 1. parse expression tag in Whitespace state
* 2. parse attribute with interpolation in AttributeValue state
* 3. detect svelte blocks/tags in Content state
*/
export declare function parseHtml(text: string): HTMLDocument;
export interface AttributeContext {
name: string;
inValue: boolean;
elementTag: Node;
valueRange?: [number, number];
}
export declare function getAttributeContextAtPosition(document: Document, position: Position): AttributeContext | null;
/**
* adopted from https://github.com/microsoft/vscode-html-languageservice/blob/10daf45dc16b4f4228987cf7cddf3a7dbbdc7570/src/parser/htmlParser.ts
*/
export declare class HTMLNode implements Node {
start: number;
end: number;
children: HTMLNode[];
parent?: HTMLNode | undefined;
tag: string | undefined;
closed: boolean;
startTagEnd: number | undefined;
endTagStart: number | undefined;
attributes?: {
[name: string]: string | null;
} | undefined;
get attributeNames(): string[];
constructor(start: number, end: number, children: HTMLNode[], parent?: HTMLNode | undefined);
isSameTag(tagInLowerCase: string | undefined): boolean;
get firstChild(): Node | undefined;
get lastChild(): Node | undefined;
findNodeBefore(offset: number): Node;
findNodeAt(offset: number): Node;
private static findFirst;
}
export declare function scanCommentWithinTextOrComment(text: string, startOffset: number, endOffset: number): {
start: number;
end: number;
}[];