Browse Source

Only include a few interfaces

Elizabeth Craig 5 years ago
parent
commit
1ff72394c1
1 changed files with 182 additions and 374 deletions
  1. 182 374
      src/monaco.d.ts

+ 182 - 374
src/monaco.d.ts

@@ -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`.
- */
-declare module monaco.languages.typescript.ts {
-    /**
-     * 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;
-        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;
-    }
+        /**
+         * Get diagnostic messages related to the current compiler options.
+         * @param fileName Not used
+         */
+        getCompilerOptionsDiagnostics(fileName: string): Promise<Diagnostic[]>;
 
-    interface EmitOutput {
-        outputFiles: OutputFile[];
-        emitSkipped: boolean;
-    }
-    interface OutputFile {
-        name: string;
-        writeByteOrderMark: boolean;
-        text: string;
-    }
+        /**
+         * Get code completions for the given file and position.
+         * @returns `Promise<typescript.CompletionInfo | undefined>`
+         */
+        getCompletionsAtPosition(fileName: string, position: number): 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`.
-     */
-    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[];
         /**
-         * 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 code completion details for the given file, position, and entry.
+         * @returns `Promise<typescript.CompletionEntryDetails | undefined>`
          */
-        commands?: CodeActionCommand[];
-    }
-    interface CodeFixAction extends CodeAction {
-        /** Short name to identify the fix, for use by telemetry. */
-        fixName: string;
+        getCompletionEntryDetails(fileName: string, position: number, entry: string): 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 signature help items for the item at the given file and position.
+         * @returns `Promise<typescript.SignatureHelpItems | undefined>`
          */
-        fixId?: {};
-        fixAllDescription?: string;
-    }
-    type CodeActionCommand = InstallPackageAction;
-    interface InstallPackageAction {
-    }
-    interface DocumentSpan {
-        textSpan: TextSpan;
-        fileName: string;
+        getSignatureHelpItems(fileName: string, position: number): Promise<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 quick info for the item at the given position in the file.
+         * @returns `Promise<typescript.QuickInfo | undefined>`
          */
-        originalTextSpan?: TextSpan;
-        originalFileName?: string;
+        getQuickInfoAtPosition(fileName: string, position: number): Promise<any | undefined>;
+
         /**
-         * If DocumentSpan.textSpan is the span for name of the declaration,
-         * then this is the span for relevant declaration
+         * 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>`
          */
-        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;
-    }
-    /**
-     * 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[];
-    }
-    /**
-     * Represents a set of signature help items, and the preferred item that should be selected.
-     */
-    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;
+        getOccurrencesAtPosition(fileName: string, position: number): Promise<ReadonlyArray<any> | undefined>;
+
         /**
-         * true when the current location also allows for a new identifier
+         * Get the definition of the item at the given position in the file.
+         * @returns `Promise<ReadonlyArray<typescript.DefinitionInfo> | undefined>`
          */
-        isNewIdentifierLocation: boolean;
-        entries: CompletionEntry[];
-    }
-    interface CompletionEntry {
-        name: string;
-        kind: ScriptElementKind;
-        kindModifiers?: string;
-        sortText: string;
-        insertText?: string;
+        getDefinitionAtPosition(fileName: string, position: number): Promise<ReadonlyArray<any> | undefined>;
+
         /**
-         * 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 references to the item at the given position in the file.
+         * @returns `Promise<typescript.ReferenceEntry[] | undefined>`
          */
-        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"
+        getReferencesAtPosition(fileName: string, position: number): Promise<any[] | undefined>;
+
+        /**
+         * Get outline entries for the item at the given position in the file.
+         * @returns `Promise<typescript.NavigationBarItem[]>`
+         */
+        getNavigationBarItems(fileName: string): Promise<any[]>;
+
+        /**
+         * Get changes which should be applied to format the given file.
+         * @param options `typescript.FormatCodeOptions`
+         * @returns `Promise<typescript.TextChange[]>`
+         */
+        getFormattingEditsForDocument(fileName: string, options: any): Promise<any[]>;
+
+        /**
+         * Get changes which should be applied to format the given range in the file.
+         * @param options `typescript.FormatCodeOptions`
+         * @returns `Promise<typescript.TextChange[]>`
+         */
+        getFormattingEditsForRange(fileName: string, start: number, end: number, options: any): Promise<any[]>;
+
+        /**
+         * Get formatting changes which should be applied after the given keystroke.
+         * @param options `typescript.FormatCodeOptions`
+         * @returns `Promise<typescript.TextChange[]>`
+         */
+        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>>;
+}