123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- declare namespace monaco.languages.typescript {
- export enum ModuleKind {
- None = 0,
- CommonJS = 1,
- AMD = 2,
- UMD = 3,
- System = 4,
- ES2015 = 5,
- ESNext = 99
- }
- export enum JsxEmit {
- None = 0,
- Preserve = 1,
- React = 2,
- ReactNative = 3,
- ReactJSX = 4,
- ReactJSXDev = 5
- }
- export enum NewLineKind {
- CarriageReturnLineFeed = 0,
- LineFeed = 1
- }
- export enum ScriptTarget {
- ES3 = 0,
- ES5 = 1,
- ES2015 = 2,
- ES2016 = 3,
- ES2017 = 4,
- ES2018 = 5,
- ES2019 = 6,
- ES2020 = 7,
- ESNext = 99,
- JSON = 100,
- Latest = 99
- }
- export enum ModuleResolutionKind {
- Classic = 1,
- NodeJs = 2
- }
- interface MapLike<T> {
- [index: string]: T;
- }
- type CompilerOptionsValue =
- | string
- | number
- | boolean
- | (string | number)[]
- | string[]
- | MapLike<string[]>
- | null
- | undefined;
- interface CompilerOptions {
- allowJs?: boolean;
- allowSyntheticDefaultImports?: boolean;
- allowUmdGlobalAccess?: boolean;
- allowUnreachableCode?: boolean;
- allowUnusedLabels?: boolean;
- alwaysStrict?: boolean;
- baseUrl?: string;
- charset?: string;
- checkJs?: boolean;
- declaration?: boolean;
- declarationMap?: boolean;
- emitDeclarationOnly?: boolean;
- declarationDir?: string;
- disableSizeLimit?: boolean;
- disableSourceOfProjectReferenceRedirect?: boolean;
- downlevelIteration?: boolean;
- emitBOM?: boolean;
- emitDecoratorMetadata?: boolean;
- experimentalDecorators?: boolean;
- forceConsistentCasingInFileNames?: boolean;
- importHelpers?: boolean;
- inlineSourceMap?: boolean;
- inlineSources?: boolean;
- isolatedModules?: boolean;
- jsx?: JsxEmit;
- keyofStringsOnly?: boolean;
- lib?: string[];
- locale?: string;
- mapRoot?: string;
- maxNodeModuleJsDepth?: number;
- module?: ModuleKind;
- moduleResolution?: ModuleResolutionKind;
- newLine?: NewLineKind;
- noEmit?: boolean;
- noEmitHelpers?: boolean;
- noEmitOnError?: boolean;
- noErrorTruncation?: boolean;
- noFallthroughCasesInSwitch?: boolean;
- noImplicitAny?: boolean;
- noImplicitReturns?: boolean;
- noImplicitThis?: boolean;
- noStrictGenericChecks?: boolean;
- noUnusedLocals?: boolean;
- noUnusedParameters?: boolean;
- noImplicitUseStrict?: boolean;
- noLib?: boolean;
- noResolve?: boolean;
- out?: string;
- outDir?: string;
- outFile?: string;
- paths?: MapLike<string[]>;
- preserveConstEnums?: boolean;
- preserveSymlinks?: boolean;
- project?: string;
- reactNamespace?: string;
- jsxFactory?: string;
- composite?: boolean;
- removeComments?: boolean;
- rootDir?: string;
- rootDirs?: string[];
- skipLibCheck?: boolean;
- skipDefaultLibCheck?: boolean;
- sourceMap?: boolean;
- sourceRoot?: string;
- strict?: boolean;
- strictFunctionTypes?: boolean;
- strictBindCallApply?: boolean;
- strictNullChecks?: boolean;
- strictPropertyInitialization?: boolean;
- stripInternal?: boolean;
- suppressExcessPropertyErrors?: boolean;
- suppressImplicitAnyIndexErrors?: boolean;
- target?: ScriptTarget;
- traceResolution?: boolean;
- resolveJsonModule?: boolean;
- types?: string[];
- /** Paths used to compute primary types search locations */
- typeRoots?: string[];
- esModuleInterop?: boolean;
- useDefineForClassFields?: boolean;
- [option: string]: CompilerOptionsValue | undefined;
- }
- export interface DiagnosticsOptions {
- noSemanticValidation?: boolean;
- noSyntaxValidation?: boolean;
- noSuggestionDiagnostics?: boolean;
- /**
- * Limit diagnostic computation to only visible files.
- * Defaults to false.
- */
- onlyVisible?: boolean;
- diagnosticCodesToIgnore?: number[];
- }
- export interface WorkerOptions {
- /** A full HTTP path to a JavaScript file which adds a function `customTSWorkerFactory` to the self inside a web-worker */
- customWorkerPath?: string;
- }
- interface InlayHintsOptions {
- readonly includeInlayParameterNameHints?: 'none' | 'literals' | 'all';
- readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean;
- readonly includeInlayFunctionParameterTypeHints?: boolean;
- readonly includeInlayVariableTypeHints?: boolean;
- readonly includeInlayPropertyDeclarationTypeHints?: boolean;
- readonly includeInlayFunctionLikeReturnTypeHints?: boolean;
- readonly includeInlayEnumMemberValueHints?: boolean;
- }
- interface IExtraLib {
- content: string;
- version: number;
- }
- export interface IExtraLibs {
- [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[];
- }
- export 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?: {};
- reportsDeprecated?: {};
- source?: string;
- relatedInformation?: DiagnosticRelatedInformation[];
- }
- export interface DiagnosticRelatedInformation {
- /** Diagnostic category: warning = 0, error = 1, suggestion = 2, message = 3 */
- category: 0 | 1 | 2 | 3;
- code: number;
- /** TypeScriptWorker removes all but the `fileName` property to avoid serializing circular JSON structures. */
- file:
- | {
- fileName: string;
- }
- | 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>;
- readonly workerOptions: WorkerOptions;
- readonly inlayHintsOptions: InlayHintsOptions;
- /**
- * Get the current extra libs registered with the language service.
- */
- getExtraLibs(): IExtraLibs;
- /**
- * Add an additional source file to the language service. Use this
- * for typescript (definition) files that won't be loaded as editor
- * documents, like `jquery.d.ts`.
- *
- * @param content The file content
- * @param filePath An optional file path
- * @returns A disposable which will remove the file from the
- * language service upon disposal.
- */
- addExtraLib(content: string, filePath?: string): IDisposable;
- /**
- * Remove all existing extra libs and set the additional source
- * files to the language service. Use this for typescript definition
- * files that won't be loaded as editor documents, like `jquery.d.ts`.
- * @param libs An array of entries to register.
- */
- setExtraLibs(
- libs: {
- content: string;
- filePath?: string;
- }[]
- ): void;
- /**
- * Get current TypeScript compiler options for the language service.
- */
- getCompilerOptions(): CompilerOptions;
- /**
- * Set TypeScript compiler options.
- */
- setCompilerOptions(options: CompilerOptions): void;
- /**
- * Get the current diagnostics options for the language service.
- */
- getDiagnosticsOptions(): DiagnosticsOptions;
- /**
- * Configure whether syntactic and/or semantic validation should
- * be performed
- */
- setDiagnosticsOptions(options: DiagnosticsOptions): void;
- /**
- * Configure webworker options
- */
- setWorkerOptions(options: WorkerOptions): void;
- /**
- * No-op.
- */
- setMaximumWorkerIdleTime(value: number): void;
- /**
- * Configure if all existing models should be eagerly sync'd
- * to the worker on start or restart.
- */
- setEagerModelSync(value: boolean): void;
- /**
- * Get the current setting for whether all existing models should be eagerly sync'd
- * to the worker on start or restart.
- */
- getEagerModelSync(): boolean;
- /**
- * Configure inlay hints options.
- */
- setInlayHintsOptions(options: InlayHintsOptions): void;
- }
- export interface TypeScriptWorker {
- /**
- * Get diagnostic messages for any syntax issues in the given file.
- */
- getSyntacticDiagnostics(fileName: string): Promise<Diagnostic[]>;
- /**
- * Get diagnostic messages for any semantic issues in the given file.
- */
- getSemanticDiagnostics(fileName: string): Promise<Diagnostic[]>;
- /**
- * Get diagnostic messages for any suggestions related to the given file.
- */
- getSuggestionDiagnostics(fileName: string): Promise<Diagnostic[]>;
- /**
- * Get the content of a given file.
- */
- getScriptText(fileName: string): Promise<string | undefined>;
- /**
- * Get diagnostic messages related to the current compiler options.
- * @param fileName Not used
- */
- getCompilerOptionsDiagnostics(fileName: string): Promise<Diagnostic[]>;
- /**
- * Get code completions for the given file and position.
- * @returns `Promise<typescript.CompletionInfo | undefined>`
- */
- getCompletionsAtPosition(fileName: string, position: number): Promise<any | undefined>;
- /**
- * 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>;
- /**
- * Get signature help items for the item at the given file and position.
- * @returns `Promise<typescript.SignatureHelpItems | undefined>`
- */
- getSignatureHelpItems(
- fileName: string,
- position: number,
- options: any
- ): Promise<any | undefined>;
- /**
- * Get quick info for the item at the given position in the file.
- * @returns `Promise<typescript.QuickInfo | undefined>`
- */
- getQuickInfoAtPosition(fileName: string, position: number): Promise<any | undefined>;
- /**
- * 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>`
- */
- getOccurrencesAtPosition(
- fileName: string,
- position: number
- ): Promise<ReadonlyArray<any> | undefined>;
- /**
- * Get the definition of the item at the given position in the file.
- * @returns `Promise<ReadonlyArray<typescript.DefinitionInfo> | undefined>`
- */
- getDefinitionAtPosition(
- fileName: string,
- position: number
- ): Promise<ReadonlyArray<any> | undefined>;
- /**
- * Get references to the item at the given position in the file.
- * @returns `Promise<typescript.ReferenceEntry[] | undefined>`
- */
- 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<EmitOutput>;
- /**
- * 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>>;
- /**
- * Get inlay hints in the range of the file.
- * @param fileName
- * @returns `Promise<typescript.InlayHint[]>`
- */
- provideInlayHints(fileName: string, start: number, end: number): Promise<ReadonlyArray<any>>;
- }
- export const typescriptVersion: string;
- export const typescriptDefaults: LanguageServiceDefaults;
- export const javascriptDefaults: LanguageServiceDefaults;
- export const getTypeScriptWorker: () => Promise<(...uris: Uri[]) => Promise<TypeScriptWorker>>;
- export const getJavaScriptWorker: () => Promise<(...uris: Uri[]) => Promise<TypeScriptWorker>>;
- }
|