@styled/typescript-styled-plugin
Version:
TypeScript language service plugin that adds IntelliSense for styled components
31 lines (30 loc) • 1.6 kB
TypeScript
import { TemplateContext } from 'typescript-template-language-service-decorator';
import { TextDocument } from 'vscode-languageserver-textdocument';
import * as ts from 'typescript/lib/tsserverlibrary';
/**
* Handles mapping between template contents to virtual documents.
*/
export interface VirtualDocumentProvider {
createVirtualDocument(context: TemplateContext): TextDocument;
toVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
fromVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
toVirtualDocOffset(offset: number, context: TemplateContext): number;
fromVirtualDocOffset(offset: number, context: TemplateContext): number;
getVirtualDocumentWrapper(context: TemplateContext): string;
}
/**
* Standard virtual document provider for styled content.
*
* Wraps content in a top level `:root { }` rule to make css language service happy
* since styled allows properties to be top level elements.
*/
export declare class StyledVirtualDocumentFactory implements VirtualDocumentProvider {
private static readonly wrapperPreRoot;
private static readonly wrapperPreKeyframes;
createVirtualDocument(context: TemplateContext): TextDocument;
toVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
fromVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
toVirtualDocOffset(offset: number, context: TemplateContext): number;
fromVirtualDocOffset(offset: number, context: TemplateContext): number;
getVirtualDocumentWrapper(context: TemplateContext): string;
}