mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 18:32:56 +01:00
Adopt native promises
This commit is contained in:
parent
b923f46ad6
commit
505232c7c8
5 changed files with 23 additions and 27 deletions
|
|
@ -12,7 +12,6 @@ import Uri = monaco.Uri;
|
|||
import Position = monaco.Position;
|
||||
import Range = monaco.Range;
|
||||
import Thenable = monaco.Thenable;
|
||||
import Promise = monaco.Promise;
|
||||
import CancellationToken = monaco.CancellationToken;
|
||||
import IDisposable = monaco.IDisposable;
|
||||
|
||||
|
|
@ -166,7 +165,7 @@ export class DiagnostcsAdapter extends Adapter {
|
|||
if (!noSemanticValidation) {
|
||||
promises.push(worker.getSemanticDiagnostics(resource.toString()));
|
||||
}
|
||||
return Promise.join(promises);
|
||||
return Promise.all(promises);
|
||||
}).then(diagnostics => {
|
||||
if (!diagnostics || !monaco.editor.getModel(resource)) {
|
||||
// model was disposed in the meantime
|
||||
|
|
|
|||
|
|
@ -146,11 +146,11 @@ const javascriptDefaults = new LanguageServiceDefaultsImpl(
|
|||
{ allowNonTsExtensions: true, allowJs: true, target: ScriptTarget.Latest },
|
||||
{ noSemanticValidation: true, noSyntaxValidation: false });
|
||||
|
||||
function getTypeScriptWorker(): monaco.Promise<any> {
|
||||
function getTypeScriptWorker(): Promise<any> {
|
||||
return getMode().then(mode => mode.getTypeScriptWorker());
|
||||
}
|
||||
|
||||
function getJavaScriptWorker(): monaco.Promise<any> {
|
||||
function getJavaScriptWorker(): Promise<any> {
|
||||
return getMode().then(mode => mode.getJavaScriptWorker());
|
||||
}
|
||||
|
||||
|
|
@ -172,8 +172,8 @@ monaco.languages.typescript = createAPI();
|
|||
|
||||
// --- Registration to monaco editor ---
|
||||
|
||||
function getMode(): monaco.Promise<typeof mode> {
|
||||
return monaco.Promise.wrap(import('./tsMode'))
|
||||
function getMode(): Promise<typeof mode> {
|
||||
return import('./tsMode');
|
||||
}
|
||||
|
||||
monaco.languages.onLanguage('typescript', () => {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import { TypeScriptWorker } from './tsWorker';
|
|||
import { LanguageServiceDefaultsImpl } from './monaco.contribution';
|
||||
import * as languageFeatures from './languageFeatures';
|
||||
|
||||
import Promise = monaco.Promise;
|
||||
import Uri = monaco.Uri;
|
||||
|
||||
let javaScriptWorker: (first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>;
|
||||
|
|
@ -30,7 +29,7 @@ export function setupJavaScript(defaults: LanguageServiceDefaultsImpl): void {
|
|||
}
|
||||
|
||||
export function getJavaScriptWorker(): Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>> {
|
||||
return new monaco.Promise((resolve, reject) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!javaScriptWorker) {
|
||||
return reject("JavaScript not registered!");
|
||||
}
|
||||
|
|
@ -40,7 +39,7 @@ export function getJavaScriptWorker(): Promise<(first: Uri, ...more: Uri[]) => P
|
|||
}
|
||||
|
||||
export function getTypeScriptWorker(): Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>> {
|
||||
return new monaco.Promise((resolve, reject) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!typeScriptWorker) {
|
||||
return reject("TypeScript not registered!");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
import * as ts from './lib/typescriptServices';
|
||||
import { lib_dts, lib_es6_dts } from './lib/lib';
|
||||
|
||||
import Promise = monaco.Promise;
|
||||
import IWorkerContext = monaco.worker.IWorkerContext;
|
||||
|
||||
const DEFAULT_LIB = {
|
||||
|
|
@ -135,67 +134,67 @@ export class TypeScriptWorker implements ts.LanguageServiceHost {
|
|||
getSyntacticDiagnostics(fileName: string): Promise<ts.Diagnostic[]> {
|
||||
const diagnostics = this._languageService.getSyntacticDiagnostics(fileName);
|
||||
TypeScriptWorker.clearFiles(diagnostics);
|
||||
return Promise.as(diagnostics);
|
||||
return Promise.resolve(diagnostics);
|
||||
}
|
||||
|
||||
getSemanticDiagnostics(fileName: string): Promise<ts.Diagnostic[]> {
|
||||
const diagnostics = this._languageService.getSemanticDiagnostics(fileName);
|
||||
TypeScriptWorker.clearFiles(diagnostics);
|
||||
return Promise.as(diagnostics);
|
||||
return Promise.resolve(diagnostics);
|
||||
}
|
||||
|
||||
getCompilerOptionsDiagnostics(fileName: string): Promise<ts.Diagnostic[]> {
|
||||
const diagnostics = this._languageService.getCompilerOptionsDiagnostics();
|
||||
TypeScriptWorker.clearFiles(diagnostics);
|
||||
return Promise.as(diagnostics);
|
||||
return Promise.resolve(diagnostics);
|
||||
}
|
||||
|
||||
getCompletionsAtPosition(fileName: string, position: number): Promise<ts.CompletionInfo> {
|
||||
return Promise.as(this._languageService.getCompletionsAtPosition(fileName, position, undefined));
|
||||
return Promise.resolve(this._languageService.getCompletionsAtPosition(fileName, position, undefined));
|
||||
}
|
||||
|
||||
getCompletionEntryDetails(fileName: string, position: number, entry: string): Promise<ts.CompletionEntryDetails> {
|
||||
return Promise.as(this._languageService.getCompletionEntryDetails(fileName, position, entry, undefined, undefined, undefined));
|
||||
return Promise.resolve(this._languageService.getCompletionEntryDetails(fileName, position, entry, undefined, undefined, undefined));
|
||||
}
|
||||
|
||||
getSignatureHelpItems(fileName: string, position: number): Promise<ts.SignatureHelpItems> {
|
||||
return Promise.as(this._languageService.getSignatureHelpItems(fileName, position, undefined));
|
||||
return Promise.resolve(this._languageService.getSignatureHelpItems(fileName, position, undefined));
|
||||
}
|
||||
|
||||
getQuickInfoAtPosition(fileName: string, position: number): Promise<ts.QuickInfo> {
|
||||
return Promise.as(this._languageService.getQuickInfoAtPosition(fileName, position));
|
||||
return Promise.resolve(this._languageService.getQuickInfoAtPosition(fileName, position));
|
||||
}
|
||||
|
||||
getOccurrencesAtPosition(fileName: string, position: number): Promise<ReadonlyArray<ts.ReferenceEntry>> {
|
||||
return Promise.as(this._languageService.getOccurrencesAtPosition(fileName, position));
|
||||
return Promise.resolve(this._languageService.getOccurrencesAtPosition(fileName, position));
|
||||
}
|
||||
|
||||
getDefinitionAtPosition(fileName: string, position: number): Promise<ReadonlyArray<ts.DefinitionInfo>> {
|
||||
return Promise.as(this._languageService.getDefinitionAtPosition(fileName, position));
|
||||
return Promise.resolve(this._languageService.getDefinitionAtPosition(fileName, position));
|
||||
}
|
||||
|
||||
getReferencesAtPosition(fileName: string, position: number): Promise<ts.ReferenceEntry[]> {
|
||||
return Promise.as(this._languageService.getReferencesAtPosition(fileName, position));
|
||||
return Promise.resolve(this._languageService.getReferencesAtPosition(fileName, position));
|
||||
}
|
||||
|
||||
getNavigationBarItems(fileName: string): Promise<ts.NavigationBarItem[]> {
|
||||
return Promise.as(this._languageService.getNavigationBarItems(fileName));
|
||||
return Promise.resolve(this._languageService.getNavigationBarItems(fileName));
|
||||
}
|
||||
|
||||
getFormattingEditsForDocument(fileName: string, options: ts.FormatCodeOptions): Promise<ts.TextChange[]> {
|
||||
return Promise.as(this._languageService.getFormattingEditsForDocument(fileName, options));
|
||||
return Promise.resolve(this._languageService.getFormattingEditsForDocument(fileName, options));
|
||||
}
|
||||
|
||||
getFormattingEditsForRange(fileName: string, start: number, end: number, options: ts.FormatCodeOptions): Promise<ts.TextChange[]> {
|
||||
return Promise.as(this._languageService.getFormattingEditsForRange(fileName, start, end, options));
|
||||
return Promise.resolve(this._languageService.getFormattingEditsForRange(fileName, start, end, options));
|
||||
}
|
||||
|
||||
getFormattingEditsAfterKeystroke(fileName: string, postion: number, ch: string, options: ts.FormatCodeOptions): Promise<ts.TextChange[]> {
|
||||
return Promise.as(this._languageService.getFormattingEditsAfterKeystroke(fileName, postion, ch, options));
|
||||
return Promise.resolve(this._languageService.getFormattingEditsAfterKeystroke(fileName, postion, ch, options));
|
||||
}
|
||||
|
||||
getEmitOutput(fileName: string): Promise<ts.EmitOutput> {
|
||||
return Promise.as(this._languageService.getEmitOutput(fileName));
|
||||
return Promise.resolve(this._languageService.getEmitOutput(fileName));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
import { LanguageServiceDefaultsImpl } from './monaco.contribution';
|
||||
import { TypeScriptWorker } from './tsWorker';
|
||||
|
||||
import Promise = monaco.Promise;
|
||||
import IDisposable = monaco.IDisposable;
|
||||
import Uri = monaco.Uri;
|
||||
|
||||
|
|
@ -74,7 +73,7 @@ export class WorkerManager {
|
|||
}
|
||||
});
|
||||
|
||||
let p = this._worker.getProxy();
|
||||
let p = <Promise<TypeScriptWorker>>this._worker.getProxy();
|
||||
|
||||
if (this._defaults.getEagerModelSync()) {
|
||||
p = p.then(worker => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue