els-addon-typed-templates
Version:
Ember Language Server Typed Templates
54 lines • 1.99 kB
TypeScript
import { TextDocuments, Location, TextDocumentIdentifier, Position, CompletionItem } from 'vscode-languageserver';
import { LSRegistry } from './lib/ts-service';
import { Project } from '@lifeart/ember-language-server';
interface Registry extends LSRegistry {
component: {
[componentName: string]: string[];
};
service: {
[serviceName: string]: string[];
};
routePath: {
[routePath: string]: string[];
};
}
interface Command {
command: string;
arguments: any[];
}
export interface Server {
getRegistry(projectRoot: string): Registry;
onExecute(command: Command): any;
getUsages(normalizedName: string): string[];
documents: TextDocuments<any>;
}
interface BaseAPIParams {
server: Server;
textDocument: TextDocumentIdentifier;
position: Position;
}
interface ExtendedAPIParams extends BaseAPIParams {
focusPath: any;
type: 'script' | 'template';
}
interface ReferenceFunctionParams extends BaseAPIParams {
results: Location[];
}
export interface CompletionFunctionParams extends ExtendedAPIParams {
results: CompletionItem[];
}
export interface DefinitionFunctionParams extends ExtendedAPIParams {
results: Location[];
}
declare type ReferenceResolveFunction = (root: string, params: ReferenceFunctionParams) => Promise<Location[]>;
declare type CompletionResolveFunction = (root: string, params: CompletionFunctionParams) => Promise<CompletionItem[] | null>;
declare type DefinitionResolveFunction = (root: string, params: DefinitionFunctionParams) => Promise<Location[]>;
declare type InitCallback = (server: Server, project: Project) => void;
export interface AddonAPI {
onReference?: undefined | ReferenceResolveFunction;
onComplete: undefined | CompletionResolveFunction;
onDefinition: undefined | DefinitionResolveFunction;
onInit: undefined | InitCallback;
}
export {};
//# sourceMappingURL=interfaces.d.ts.map