UNPKG

svelte-language-server

Version:
47 lines (46 loc) 1.8 kB
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; }[];