|
|
|
@ -146,7 +146,55 @@ declare module monaco.languages.typescript {
|
|
|
|
|
[path: string]: IExtraLib;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A linked list of formatted diagnostic messages to be used as part of a multiline message.
|
|
|
|
|
* It is built from the bottom up, leaving the head to be the "main" diagnostic.
|
|
|
|
|
*/
|
|
|
|
|
interface DiagnosticMessageChain {
|
|
|
|
|
messageText: string;
|
|
|
|
|
/** Diagnostic category: warning = 0, error = 1, suggestion = 2, message = 3 */
|
|
|
|
|
category: 0 | 1 | 2 | 3;
|
|
|
|
|
code: number;
|
|
|
|
|
next?: DiagnosticMessageChain[];
|
|
|
|
|
}
|
|
|
|
|
interface Diagnostic extends DiagnosticRelatedInformation {
|
|
|
|
|
/** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */
|
|
|
|
|
reportsUnnecessary?: {};
|
|
|
|
|
source?: string;
|
|
|
|
|
relatedInformation?: DiagnosticRelatedInformation[];
|
|
|
|
|
}
|
|
|
|
|
interface DiagnosticRelatedInformation {
|
|
|
|
|
/** Diagnostic category: warning = 0, error = 1, suggestion = 2, message = 3 */
|
|
|
|
|
category: 0 | 1 | 2 | 3;
|
|
|
|
|
code: number;
|
|
|
|
|
/** TypeScriptWorker removes this to avoid serializing circular JSON structures. */
|
|
|
|
|
file: undefined;
|
|
|
|
|
start: number | undefined;
|
|
|
|
|
length: number | undefined;
|
|
|
|
|
messageText: string | DiagnosticMessageChain;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface EmitOutput {
|
|
|
|
|
outputFiles: OutputFile[];
|
|
|
|
|
emitSkipped: boolean;
|
|
|
|
|
}
|
|
|
|
|
interface OutputFile {
|
|
|
|
|
name: string;
|
|
|
|
|
writeByteOrderMark: boolean;
|
|
|
|
|
text: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface LanguageServiceDefaults {
|
|
|
|
|
/**
|
|
|
|
|
* Event fired when compiler options or diagnostics options are changed.
|
|
|
|
|
*/
|
|
|
|
|
readonly onDidChange: IEvent<void>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Event fired when extra libraries registered with the language service change.
|
|
|
|
|
*/
|
|
|
|
|
readonly onDidExtraLibsChange: IEvent<void>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the current extra libs registered with the language service.
|
|
|
|
|
*/
|
|
|
|
@ -212,401 +260,161 @@ declare module monaco.languages.typescript {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface TypeScriptWorker {
|
|
|
|
|
/**
|
|
|
|
|
* Get the worker's current compiler settings.
|
|
|
|
|
*/
|
|
|
|
|
getCompilationSettings(): CompilerOptions;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the names of files and libraries currently registered with the worker.
|
|
|
|
|
*/
|
|
|
|
|
getScriptFileNames(): string[];
|
|
|
|
|
|
|
|
|
|
getScriptVersion(fileName: string): string;
|
|
|
|
|
getScriptKind(fileName: string): ts.ScriptKind;
|
|
|
|
|
getCurrentDirectory(): string;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get what kind of script the given filename is.
|
|
|
|
|
* @returns `typescript.ScriptKind`: any = 0, JS = 1, JSX = 2, TS = 3, TSX = 4, external = 5, JSON = 6, deferred = 7
|
|
|
|
|
*/
|
|
|
|
|
getScriptKind(fileName: string): 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Always returns an empty string.
|
|
|
|
|
*/
|
|
|
|
|
getCurrentDirectory(): '';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the name of the default lib file based on `options.target`.
|
|
|
|
|
*/
|
|
|
|
|
getDefaultLibFileName(options: CompilerOptions): string;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns true if `fileName` matches the default file name for the current compiler options.
|
|
|
|
|
*/
|
|
|
|
|
isDefaultLibFileName(fileName: string): boolean;
|
|
|
|
|
getSyntacticDiagnostics(fileName: string): Promise<ts.Diagnostic[]>;
|
|
|
|
|
getSemanticDiagnostics(fileName: string): Promise<ts.Diagnostic[]>;
|
|
|
|
|
getSuggestionDiagnostics(fileName: string): Promise<ts.DiagnosticWithLocation[]>;
|
|
|
|
|
getCompilerOptionsDiagnostics(fileName: string): Promise<ts.Diagnostic[]>;
|
|
|
|
|
getCompletionsAtPosition(fileName: string, position: number): Promise<ts.CompletionInfo | undefined>;
|
|
|
|
|
getCompletionEntryDetails(fileName: string, position: number, entry: string): Promise<ts.CompletionEntryDetails | undefined>;
|
|
|
|
|
getSignatureHelpItems(fileName: string, position: number): Promise<ts.SignatureHelpItems | undefined>;
|
|
|
|
|
getQuickInfoAtPosition(fileName: string, position: number): Promise<ts.QuickInfo | undefined>;
|
|
|
|
|
getOccurrencesAtPosition(fileName: string, position: number): Promise<ReadonlyArray<ts.ReferenceEntry> | undefined>;
|
|
|
|
|
getDefinitionAtPosition(fileName: string, position: number): Promise<ReadonlyArray<ts.DefinitionInfo> | undefined>;
|
|
|
|
|
getReferencesAtPosition(fileName: string, position: number): Promise<ts.ReferenceEntry[] | undefined>;
|
|
|
|
|
getNavigationBarItems(fileName: string): Promise<ts.NavigationBarItem[]>;
|
|
|
|
|
getFormattingEditsForDocument(fileName: string, options: ts.FormatCodeOptions): Promise<ts.TextChange[]>;
|
|
|
|
|
getFormattingEditsForRange(fileName: string, start: number, end: number, options: ts.FormatCodeOptions): Promise<ts.TextChange[]>;
|
|
|
|
|
getFormattingEditsAfterKeystroke(fileName: string, postion: number, ch: string, options: ts.FormatCodeOptions): Promise<ts.TextChange[]>;
|
|
|
|
|
findRenameLocations(fileName: string, positon: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename: boolean): Promise<readonly ts.RenameLocation[] | undefined>;
|
|
|
|
|
getRenameInfo(fileName: string, positon: number, options: ts.RenameInfoOptions): Promise<ts.RenameInfo>;
|
|
|
|
|
getEmitOutput(fileName: string): Promise<ts.EmitOutput>;
|
|
|
|
|
getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: number[], formatOptions: ts.FormatCodeOptions): Promise<ReadonlyArray<ts.CodeFixAction>>;
|
|
|
|
|
updateExtraLibs(extraLibs: IExtraLibs): void;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export var typescriptVersion: string;
|
|
|
|
|
/**
|
|
|
|
|
* Get diagnostic messages for any syntax issues in the given file.
|
|
|
|
|
*/
|
|
|
|
|
getSyntacticDiagnostics(fileName: string): Promise<Diagnostic[]>;
|
|
|
|
|
|
|
|
|
|
export var typescriptDefaults: LanguageServiceDefaults;
|
|
|
|
|
export var javascriptDefaults: LanguageServiceDefaults;
|
|
|
|
|
/**
|
|
|
|
|
* Get diagnostic messages for any semantic issues in the given file.
|
|
|
|
|
*/
|
|
|
|
|
getSemanticDiagnostics(fileName: string): Promise<Diagnostic[]>;
|
|
|
|
|
|
|
|
|
|
export var getTypeScriptWorker: () => Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>>;
|
|
|
|
|
export var getJavaScriptWorker: () => Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>>;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Get diagnostic messages for any suggestions related to the given file.
|
|
|
|
|
*/
|
|
|
|
|
getSuggestionDiagnostics(fileName: string): Promise<Diagnostic[]>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Additional types copied from `typescript`.
|
|
|
|
|
/**
|
|
|
|
|
* Get diagnostic messages related to the current compiler options.
|
|
|
|
|
* @param fileName Not used
|
|
|
|
|
*/
|
|
|
|
|
declare module monaco.languages.typescript.ts {
|
|
|
|
|
getCompilerOptionsDiagnostics(fileName: string): Promise<Diagnostic[]>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A linked list of formatted diagnostic messages to be used as part of a multiline message.
|
|
|
|
|
* It is built from the bottom up, leaving the head to be the "main" diagnostic.
|
|
|
|
|
* Get code completions for the given file and position.
|
|
|
|
|
* @returns `Promise<typescript.CompletionInfo | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
interface DiagnosticMessageChain {
|
|
|
|
|
messageText: string;
|
|
|
|
|
category: DiagnosticCategory;
|
|
|
|
|
code: number;
|
|
|
|
|
next?: DiagnosticMessageChain[];
|
|
|
|
|
}
|
|
|
|
|
interface Diagnostic extends DiagnosticRelatedInformation {
|
|
|
|
|
/** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */
|
|
|
|
|
reportsUnnecessary?: {};
|
|
|
|
|
source?: string;
|
|
|
|
|
relatedInformation?: DiagnosticRelatedInformation[];
|
|
|
|
|
}
|
|
|
|
|
interface DiagnosticRelatedInformation {
|
|
|
|
|
category: DiagnosticCategory;
|
|
|
|
|
code: number;
|
|
|
|
|
/** TypeScriptWorker removes this to avoid serializing circular JSON structures. */
|
|
|
|
|
file: undefined;
|
|
|
|
|
start: number | undefined;
|
|
|
|
|
length: number | undefined;
|
|
|
|
|
messageText: string | DiagnosticMessageChain;
|
|
|
|
|
}
|
|
|
|
|
interface DiagnosticWithLocation extends Diagnostic {
|
|
|
|
|
/** TypeScriptWorker removes this to avoid serializing circular JSON structures. */
|
|
|
|
|
file: undefined;
|
|
|
|
|
start: number;
|
|
|
|
|
length: number;
|
|
|
|
|
}
|
|
|
|
|
// Must be a const enum because this module doesn't exist at runtime
|
|
|
|
|
const enum DiagnosticCategory {
|
|
|
|
|
Warning = 0,
|
|
|
|
|
Error = 1,
|
|
|
|
|
Suggestion = 2,
|
|
|
|
|
Message = 3
|
|
|
|
|
}
|
|
|
|
|
// Must be a const enum because this module doesn't exist at runtime
|
|
|
|
|
const enum ScriptKind {
|
|
|
|
|
Unknown = 0,
|
|
|
|
|
JS = 1,
|
|
|
|
|
JSX = 2,
|
|
|
|
|
TS = 3,
|
|
|
|
|
TSX = 4,
|
|
|
|
|
External = 5,
|
|
|
|
|
JSON = 6,
|
|
|
|
|
/**
|
|
|
|
|
* Used on extensions that doesn't define the ScriptKind but the content defines it.
|
|
|
|
|
* Deferred extensions are going to be included in all project contexts.
|
|
|
|
|
*/
|
|
|
|
|
Deferred = 7
|
|
|
|
|
}
|
|
|
|
|
interface TextSpan {
|
|
|
|
|
start: number;
|
|
|
|
|
length: number;
|
|
|
|
|
}
|
|
|
|
|
getCompletionsAtPosition(fileName: string, position: number): Promise<any | undefined>;
|
|
|
|
|
|
|
|
|
|
interface EmitOutput {
|
|
|
|
|
outputFiles: OutputFile[];
|
|
|
|
|
emitSkipped: boolean;
|
|
|
|
|
}
|
|
|
|
|
interface OutputFile {
|
|
|
|
|
name: string;
|
|
|
|
|
writeByteOrderMark: boolean;
|
|
|
|
|
text: string;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Get code completion details for the given file, position, and entry.
|
|
|
|
|
* @returns `Promise<typescript.CompletionEntryDetails | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
getCompletionEntryDetails(fileName: string, position: number, entry: string): Promise<any | undefined>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Navigation bar interface designed for visual studio's dual-column layout.
|
|
|
|
|
* This does not form a proper tree.
|
|
|
|
|
* The navbar is returned as a list of top-level items, each of which has a list of child items.
|
|
|
|
|
* Child items always have an empty array for their `childItems`.
|
|
|
|
|
* Get signature help items for the item at the given file and position.
|
|
|
|
|
* @returns `Promise<typescript.SignatureHelpItems | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
interface NavigationBarItem {
|
|
|
|
|
text: string;
|
|
|
|
|
kind: ScriptElementKind;
|
|
|
|
|
kindModifiers: string;
|
|
|
|
|
spans: TextSpan[];
|
|
|
|
|
childItems: NavigationBarItem[];
|
|
|
|
|
indent: number;
|
|
|
|
|
bolded: boolean;
|
|
|
|
|
grayed: boolean;
|
|
|
|
|
}
|
|
|
|
|
interface TextChange {
|
|
|
|
|
span: TextSpan;
|
|
|
|
|
newText: string;
|
|
|
|
|
}
|
|
|
|
|
interface FileTextChanges {
|
|
|
|
|
fileName: string;
|
|
|
|
|
textChanges: readonly TextChange[];
|
|
|
|
|
isNewFile?: boolean;
|
|
|
|
|
}
|
|
|
|
|
interface CodeAction {
|
|
|
|
|
/** Description of the code action to display in the UI of the editor */
|
|
|
|
|
description: string;
|
|
|
|
|
/** Text changes to apply to each file as part of the code action */
|
|
|
|
|
changes: FileTextChanges[];
|
|
|
|
|
getSignatureHelpItems(fileName: string, position: number): Promise<any | undefined>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* If the user accepts the code fix, the editor should send the action back in a `applyAction` request.
|
|
|
|
|
* This allows the language service to have side effects (e.g. installing dependencies) upon a code fix.
|
|
|
|
|
* Get quick info for the item at the given position in the file.
|
|
|
|
|
* @returns `Promise<typescript.QuickInfo | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
commands?: CodeActionCommand[];
|
|
|
|
|
}
|
|
|
|
|
interface CodeFixAction extends CodeAction {
|
|
|
|
|
/** Short name to identify the fix, for use by telemetry. */
|
|
|
|
|
fixName: string;
|
|
|
|
|
getQuickInfoAtPosition(fileName: string, position: number): Promise<any | undefined>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* If present, one may call 'getCombinedCodeFix' with this fixId.
|
|
|
|
|
* This may be omitted to indicate that the code fix can't be applied in a group.
|
|
|
|
|
* Get other ranges which are related to the item at the given position in the file (often used for highlighting).
|
|
|
|
|
* @returns `Promise<ReadonlyArray<typescript.ReferenceEntry> | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
fixId?: {};
|
|
|
|
|
fixAllDescription?: string;
|
|
|
|
|
}
|
|
|
|
|
type CodeActionCommand = InstallPackageAction;
|
|
|
|
|
interface InstallPackageAction {
|
|
|
|
|
}
|
|
|
|
|
interface DocumentSpan {
|
|
|
|
|
textSpan: TextSpan;
|
|
|
|
|
fileName: string;
|
|
|
|
|
getOccurrencesAtPosition(fileName: string, position: number): Promise<ReadonlyArray<any> | undefined>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* If the span represents a location that was remapped (e.g. via a .d.ts.map file),
|
|
|
|
|
* then the original filename and span will be specified here
|
|
|
|
|
* Get the definition of the item at the given position in the file.
|
|
|
|
|
* @returns `Promise<ReadonlyArray<typescript.DefinitionInfo> | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
originalTextSpan?: TextSpan;
|
|
|
|
|
originalFileName?: string;
|
|
|
|
|
getDefinitionAtPosition(fileName: string, position: number): Promise<ReadonlyArray<any> | undefined>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* If DocumentSpan.textSpan is the span for name of the declaration,
|
|
|
|
|
* then this is the span for relevant declaration
|
|
|
|
|
* Get references to the item at the given position in the file.
|
|
|
|
|
* @returns `Promise<typescript.ReferenceEntry[] | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
contextSpan?: TextSpan;
|
|
|
|
|
originalContextSpan?: TextSpan;
|
|
|
|
|
}
|
|
|
|
|
interface RenameLocation extends DocumentSpan {
|
|
|
|
|
readonly prefixText?: string;
|
|
|
|
|
readonly suffixText?: string;
|
|
|
|
|
}
|
|
|
|
|
interface ReferenceEntry extends DocumentSpan {
|
|
|
|
|
isWriteAccess: boolean;
|
|
|
|
|
isDefinition: boolean;
|
|
|
|
|
isInString?: true;
|
|
|
|
|
}
|
|
|
|
|
// Must be a const enum because this module doesn't exist at runtime
|
|
|
|
|
const enum IndentStyle {
|
|
|
|
|
None = 0,
|
|
|
|
|
Block = 1,
|
|
|
|
|
Smart = 2
|
|
|
|
|
}
|
|
|
|
|
interface EditorOptions {
|
|
|
|
|
BaseIndentSize?: number;
|
|
|
|
|
IndentSize: number;
|
|
|
|
|
TabSize: number;
|
|
|
|
|
NewLineCharacter: string;
|
|
|
|
|
ConvertTabsToSpaces: boolean;
|
|
|
|
|
IndentStyle: IndentStyle;
|
|
|
|
|
}
|
|
|
|
|
interface FormatCodeOptions extends EditorOptions {
|
|
|
|
|
InsertSpaceAfterCommaDelimiter: boolean;
|
|
|
|
|
InsertSpaceAfterSemicolonInForStatements: boolean;
|
|
|
|
|
InsertSpaceBeforeAndAfterBinaryOperators: boolean;
|
|
|
|
|
InsertSpaceAfterConstructor?: boolean;
|
|
|
|
|
InsertSpaceAfterKeywordsInControlFlowStatements: boolean;
|
|
|
|
|
InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean;
|
|
|
|
|
InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean;
|
|
|
|
|
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean;
|
|
|
|
|
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean;
|
|
|
|
|
InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean;
|
|
|
|
|
InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;
|
|
|
|
|
InsertSpaceAfterTypeAssertion?: boolean;
|
|
|
|
|
InsertSpaceBeforeFunctionParenthesis?: boolean;
|
|
|
|
|
PlaceOpenBraceOnNewLineForFunctions: boolean;
|
|
|
|
|
PlaceOpenBraceOnNewLineForControlBlocks: boolean;
|
|
|
|
|
insertSpaceBeforeTypeAnnotation?: boolean;
|
|
|
|
|
}
|
|
|
|
|
interface DefinitionInfo extends DocumentSpan {
|
|
|
|
|
kind: ScriptElementKind;
|
|
|
|
|
name: string;
|
|
|
|
|
containerKind: ScriptElementKind;
|
|
|
|
|
containerName: string;
|
|
|
|
|
}
|
|
|
|
|
interface SymbolDisplayPart {
|
|
|
|
|
text: string;
|
|
|
|
|
kind: string;
|
|
|
|
|
}
|
|
|
|
|
interface JSDocTagInfo {
|
|
|
|
|
name: string;
|
|
|
|
|
text?: string;
|
|
|
|
|
}
|
|
|
|
|
interface QuickInfo {
|
|
|
|
|
kind: ScriptElementKind;
|
|
|
|
|
kindModifiers: string;
|
|
|
|
|
textSpan: TextSpan;
|
|
|
|
|
displayParts?: SymbolDisplayPart[];
|
|
|
|
|
documentation?: SymbolDisplayPart[];
|
|
|
|
|
tags?: JSDocTagInfo[];
|
|
|
|
|
}
|
|
|
|
|
type RenameInfo = RenameInfoSuccess | RenameInfoFailure;
|
|
|
|
|
interface RenameInfoSuccess {
|
|
|
|
|
canRename: true;
|
|
|
|
|
/**
|
|
|
|
|
* File or directory to rename.
|
|
|
|
|
* If set, `getEditsForFileRename` should be called instead of `findRenameLocations`.
|
|
|
|
|
*/
|
|
|
|
|
fileToRename?: string;
|
|
|
|
|
displayName: string;
|
|
|
|
|
fullDisplayName: string;
|
|
|
|
|
kind: ScriptElementKind;
|
|
|
|
|
kindModifiers: string;
|
|
|
|
|
triggerSpan: TextSpan;
|
|
|
|
|
}
|
|
|
|
|
interface RenameInfoFailure {
|
|
|
|
|
canRename: false;
|
|
|
|
|
localizedErrorMessage: string;
|
|
|
|
|
}
|
|
|
|
|
interface RenameInfoOptions {
|
|
|
|
|
readonly allowRenameOfImportPath?: boolean;
|
|
|
|
|
}
|
|
|
|
|
interface SignatureHelpParameter {
|
|
|
|
|
name: string;
|
|
|
|
|
documentation: SymbolDisplayPart[];
|
|
|
|
|
displayParts: SymbolDisplayPart[];
|
|
|
|
|
isOptional: boolean;
|
|
|
|
|
}
|
|
|
|
|
getReferencesAtPosition(fileName: string, position: number): Promise<any[] | undefined>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Represents a single signature to show in signature help.
|
|
|
|
|
* The id is used for subsequent calls into the language service to ask questions about the
|
|
|
|
|
* signature help item in the context of any documents that have been updated. i.e. after
|
|
|
|
|
* an edit has happened, while signature help is still active, the host can ask important
|
|
|
|
|
* questions like 'what parameter is the user currently contained within?'.
|
|
|
|
|
*/
|
|
|
|
|
interface SignatureHelpItem {
|
|
|
|
|
isVariadic: boolean;
|
|
|
|
|
prefixDisplayParts: SymbolDisplayPart[];
|
|
|
|
|
suffixDisplayParts: SymbolDisplayPart[];
|
|
|
|
|
separatorDisplayParts: SymbolDisplayPart[];
|
|
|
|
|
parameters: SignatureHelpParameter[];
|
|
|
|
|
documentation: SymbolDisplayPart[];
|
|
|
|
|
tags: JSDocTagInfo[];
|
|
|
|
|
}
|
|
|
|
|
* Get outline entries for the item at the given position in the file.
|
|
|
|
|
* @returns `Promise<typescript.NavigationBarItem[]>`
|
|
|
|
|
*/
|
|
|
|
|
getNavigationBarItems(fileName: string): Promise<any[]>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Represents a set of signature help items, and the preferred item that should be selected.
|
|
|
|
|
* Get changes which should be applied to format the given file.
|
|
|
|
|
* @param options `typescript.FormatCodeOptions`
|
|
|
|
|
* @returns `Promise<typescript.TextChange[]>`
|
|
|
|
|
*/
|
|
|
|
|
interface SignatureHelpItems {
|
|
|
|
|
items: SignatureHelpItem[];
|
|
|
|
|
applicableSpan: TextSpan;
|
|
|
|
|
selectedItemIndex: number;
|
|
|
|
|
argumentIndex: number;
|
|
|
|
|
argumentCount: number;
|
|
|
|
|
}
|
|
|
|
|
interface CompletionInfo {
|
|
|
|
|
/** Not true for all global completions. This will be true if the enclosing scope matches a few syntax kinds. See `isSnippetScope`. */
|
|
|
|
|
isGlobalCompletion: boolean;
|
|
|
|
|
isMemberCompletion: boolean;
|
|
|
|
|
getFormattingEditsForDocument(fileName: string, options: any): Promise<any[]>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* true when the current location also allows for a new identifier
|
|
|
|
|
* Get changes which should be applied to format the given range in the file.
|
|
|
|
|
* @param options `typescript.FormatCodeOptions`
|
|
|
|
|
* @returns `Promise<typescript.TextChange[]>`
|
|
|
|
|
*/
|
|
|
|
|
isNewIdentifierLocation: boolean;
|
|
|
|
|
entries: CompletionEntry[];
|
|
|
|
|
}
|
|
|
|
|
interface CompletionEntry {
|
|
|
|
|
name: string;
|
|
|
|
|
kind: ScriptElementKind;
|
|
|
|
|
kindModifiers?: string;
|
|
|
|
|
sortText: string;
|
|
|
|
|
insertText?: string;
|
|
|
|
|
getFormattingEditsForRange(fileName: string, start: number, end: number, options: any): Promise<any[]>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* An optional span that indicates the text to be replaced by this completion item.
|
|
|
|
|
* If present, this span should be used instead of the default one.
|
|
|
|
|
* It will be set if the required span differs from the one generated by the default replacement behavior.
|
|
|
|
|
* Get formatting changes which should be applied after the given keystroke.
|
|
|
|
|
* @param options `typescript.FormatCodeOptions`
|
|
|
|
|
* @returns `Promise<typescript.TextChange[]>`
|
|
|
|
|
*/
|
|
|
|
|
replacementSpan?: TextSpan;
|
|
|
|
|
hasAction?: true;
|
|
|
|
|
source?: string;
|
|
|
|
|
isRecommended?: true;
|
|
|
|
|
}
|
|
|
|
|
interface CompletionEntryDetails {
|
|
|
|
|
name: string;
|
|
|
|
|
kind: ScriptElementKind;
|
|
|
|
|
kindModifiers: string;
|
|
|
|
|
displayParts: SymbolDisplayPart[];
|
|
|
|
|
documentation?: SymbolDisplayPart[];
|
|
|
|
|
tags?: JSDocTagInfo[];
|
|
|
|
|
codeActions?: CodeAction[];
|
|
|
|
|
source?: SymbolDisplayPart[];
|
|
|
|
|
}
|
|
|
|
|
// Must be a const enum because this module doesn't exist at runtime
|
|
|
|
|
const enum ScriptElementKind {
|
|
|
|
|
unknown = "",
|
|
|
|
|
warning = "warning",
|
|
|
|
|
/** predefined type (void) or keyword (class) */
|
|
|
|
|
keyword = "keyword",
|
|
|
|
|
/** top level script node */
|
|
|
|
|
scriptElement = "script",
|
|
|
|
|
/** module foo {} */
|
|
|
|
|
moduleElement = "module",
|
|
|
|
|
/** class X {} */
|
|
|
|
|
classElement = "class",
|
|
|
|
|
/** var x = class X {} */
|
|
|
|
|
localClassElement = "local class",
|
|
|
|
|
/** interface Y {} */
|
|
|
|
|
interfaceElement = "interface",
|
|
|
|
|
/** type T = ... */
|
|
|
|
|
typeElement = "type",
|
|
|
|
|
/** enum E */
|
|
|
|
|
enumElement = "enum",
|
|
|
|
|
enumMemberElement = "enum member",
|
|
|
|
|
/**
|
|
|
|
|
* Inside module and script only
|
|
|
|
|
* const v = ..
|
|
|
|
|
*/
|
|
|
|
|
variableElement = "var",
|
|
|
|
|
/** Inside function */
|
|
|
|
|
localVariableElement = "local var",
|
|
|
|
|
/**
|
|
|
|
|
* Inside module and script only
|
|
|
|
|
* function f() { }
|
|
|
|
|
*/
|
|
|
|
|
functionElement = "function",
|
|
|
|
|
/** Inside function */
|
|
|
|
|
localFunctionElement = "local function",
|
|
|
|
|
/** class X { [public|private]* foo() {} } */
|
|
|
|
|
memberFunctionElement = "method",
|
|
|
|
|
/** class X { [public|private]* [get|set] foo:number; } */
|
|
|
|
|
memberGetAccessorElement = "getter",
|
|
|
|
|
memberSetAccessorElement = "setter",
|
|
|
|
|
/**
|
|
|
|
|
* class X { [public|private]* foo:number; }
|
|
|
|
|
* interface Y { foo:number; }
|
|
|
|
|
*/
|
|
|
|
|
memberVariableElement = "property",
|
|
|
|
|
/** class X { constructor() { } } */
|
|
|
|
|
constructorImplementationElement = "constructor",
|
|
|
|
|
/** interface Y { ():number; } */
|
|
|
|
|
callSignatureElement = "call",
|
|
|
|
|
/** interface Y { []:number; } */
|
|
|
|
|
indexSignatureElement = "index",
|
|
|
|
|
/** interface Y { new():Y; } */
|
|
|
|
|
constructSignatureElement = "construct",
|
|
|
|
|
/** function foo(*Y*: string) */
|
|
|
|
|
parameterElement = "parameter",
|
|
|
|
|
typeParameterElement = "type parameter",
|
|
|
|
|
primitiveType = "primitive type",
|
|
|
|
|
label = "label",
|
|
|
|
|
alias = "alias",
|
|
|
|
|
constElement = "const",
|
|
|
|
|
letElement = "let",
|
|
|
|
|
directory = "directory",
|
|
|
|
|
externalModuleName = "external module name",
|
|
|
|
|
/**
|
|
|
|
|
* <JsxTagName attribute1 attribute2={0} />
|
|
|
|
|
*/
|
|
|
|
|
jsxAttribute = "JSX attribute",
|
|
|
|
|
/** String literal */
|
|
|
|
|
string = "string"
|
|
|
|
|
getFormattingEditsAfterKeystroke(fileName: string, postion: number, ch: string, options: any): Promise<any[]>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get other occurrences which should be updated when renaming the item at the given file and position.
|
|
|
|
|
* @returns `Promise<readonly typescript.RenameLocation[] | undefined>`
|
|
|
|
|
*/
|
|
|
|
|
findRenameLocations(fileName: string, positon: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename: boolean): Promise<readonly any[] | undefined>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get edits which should be applied to rename the item at the given file and position (or a failure reason).
|
|
|
|
|
* @param options `typescript.RenameInfoOptions`
|
|
|
|
|
* @returns `Promise<typescript.RenameInfo>`
|
|
|
|
|
*/
|
|
|
|
|
getRenameInfo(fileName: string, positon: number, options: any): Promise<any>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get transpiled output for the given file.
|
|
|
|
|
* @returns `typescript.EmitOutput`
|
|
|
|
|
*/
|
|
|
|
|
getEmitOutput(fileName: string): Promise<any>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get possible code fixes at the given position in the file.
|
|
|
|
|
* @param formatOptions `typescript.FormatCodeOptions`
|
|
|
|
|
* @returns `Promise<ReadonlyArray<typescript.CodeFixAction>>`
|
|
|
|
|
*/
|
|
|
|
|
getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: number[], formatOptions: any): Promise<ReadonlyArray<any>>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export var typescriptVersion: string;
|
|
|
|
|
|
|
|
|
|
export var typescriptDefaults: LanguageServiceDefaults;
|
|
|
|
|
export var javascriptDefaults: LanguageServiceDefaults;
|
|
|
|
|
|
|
|
|
|
export var getTypeScriptWorker: () => Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>>;
|
|
|
|
|
export var getJavaScriptWorker: () => Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>>;
|
|
|
|
|
}
|