Adopt native promises

pull/2748/head
Alex Dima 6 years ago
parent b923f46ad6
commit 505232c7c8

@ -12,7 +12,6 @@ import Uri = monaco.Uri;
import Position = monaco.Position; import Position = monaco.Position;
import Range = monaco.Range; import Range = monaco.Range;
import Thenable = monaco.Thenable; import Thenable = monaco.Thenable;
import Promise = monaco.Promise;
import CancellationToken = monaco.CancellationToken; import CancellationToken = monaco.CancellationToken;
import IDisposable = monaco.IDisposable; import IDisposable = monaco.IDisposable;
@ -166,7 +165,7 @@ export class DiagnostcsAdapter extends Adapter {
if (!noSemanticValidation) { if (!noSemanticValidation) {
promises.push(worker.getSemanticDiagnostics(resource.toString())); promises.push(worker.getSemanticDiagnostics(resource.toString()));
} }
return Promise.join(promises); return Promise.all(promises);
}).then(diagnostics => { }).then(diagnostics => {
if (!diagnostics || !monaco.editor.getModel(resource)) { if (!diagnostics || !monaco.editor.getModel(resource)) {
// model was disposed in the meantime // model was disposed in the meantime

@ -146,11 +146,11 @@ const javascriptDefaults = new LanguageServiceDefaultsImpl(
{ allowNonTsExtensions: true, allowJs: true, target: ScriptTarget.Latest }, { allowNonTsExtensions: true, allowJs: true, target: ScriptTarget.Latest },
{ noSemanticValidation: true, noSyntaxValidation: false }); { noSemanticValidation: true, noSyntaxValidation: false });
function getTypeScriptWorker(): monaco.Promise<any> { function getTypeScriptWorker(): Promise<any> {
return getMode().then(mode => mode.getTypeScriptWorker()); return getMode().then(mode => mode.getTypeScriptWorker());
} }
function getJavaScriptWorker(): monaco.Promise<any> { function getJavaScriptWorker(): Promise<any> {
return getMode().then(mode => mode.getJavaScriptWorker()); return getMode().then(mode => mode.getJavaScriptWorker());
} }
@ -172,8 +172,8 @@ monaco.languages.typescript = createAPI();
// --- Registration to monaco editor --- // --- Registration to monaco editor ---
function getMode(): monaco.Promise<typeof mode> { function getMode(): Promise<typeof mode> {
return monaco.Promise.wrap(import('./tsMode')) return import('./tsMode');
} }
monaco.languages.onLanguage('typescript', () => { monaco.languages.onLanguage('typescript', () => {

@ -9,7 +9,6 @@ import { TypeScriptWorker } from './tsWorker';
import { LanguageServiceDefaultsImpl } from './monaco.contribution'; import { LanguageServiceDefaultsImpl } from './monaco.contribution';
import * as languageFeatures from './languageFeatures'; import * as languageFeatures from './languageFeatures';
import Promise = monaco.Promise;
import Uri = monaco.Uri; import Uri = monaco.Uri;
let javaScriptWorker: (first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>; 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>> { export function getJavaScriptWorker(): Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>> {
return new monaco.Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!javaScriptWorker) { if (!javaScriptWorker) {
return reject("JavaScript not registered!"); 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>> { export function getTypeScriptWorker(): Promise<(first: Uri, ...more: Uri[]) => Promise<TypeScriptWorker>> {
return new monaco.Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!typeScriptWorker) { if (!typeScriptWorker) {
return reject("TypeScript not registered!"); return reject("TypeScript not registered!");
} }

@ -7,7 +7,6 @@
import * as ts from './lib/typescriptServices'; import * as ts from './lib/typescriptServices';
import { lib_dts, lib_es6_dts } from './lib/lib'; import { lib_dts, lib_es6_dts } from './lib/lib';
import Promise = monaco.Promise;
import IWorkerContext = monaco.worker.IWorkerContext; import IWorkerContext = monaco.worker.IWorkerContext;
const DEFAULT_LIB = { const DEFAULT_LIB = {
@ -135,67 +134,67 @@ export class TypeScriptWorker implements ts.LanguageServiceHost {
getSyntacticDiagnostics(fileName: string): Promise<ts.Diagnostic[]> { getSyntacticDiagnostics(fileName: string): Promise<ts.Diagnostic[]> {
const diagnostics = this._languageService.getSyntacticDiagnostics(fileName); const diagnostics = this._languageService.getSyntacticDiagnostics(fileName);
TypeScriptWorker.clearFiles(diagnostics); TypeScriptWorker.clearFiles(diagnostics);
return Promise.as(diagnostics); return Promise.resolve(diagnostics);
} }
getSemanticDiagnostics(fileName: string): Promise<ts.Diagnostic[]> { getSemanticDiagnostics(fileName: string): Promise<ts.Diagnostic[]> {
const diagnostics = this._languageService.getSemanticDiagnostics(fileName); const diagnostics = this._languageService.getSemanticDiagnostics(fileName);
TypeScriptWorker.clearFiles(diagnostics); TypeScriptWorker.clearFiles(diagnostics);
return Promise.as(diagnostics); return Promise.resolve(diagnostics);
} }
getCompilerOptionsDiagnostics(fileName: string): Promise<ts.Diagnostic[]> { getCompilerOptionsDiagnostics(fileName: string): Promise<ts.Diagnostic[]> {
const diagnostics = this._languageService.getCompilerOptionsDiagnostics(); const diagnostics = this._languageService.getCompilerOptionsDiagnostics();
TypeScriptWorker.clearFiles(diagnostics); TypeScriptWorker.clearFiles(diagnostics);
return Promise.as(diagnostics); return Promise.resolve(diagnostics);
} }
getCompletionsAtPosition(fileName: string, position: number): Promise<ts.CompletionInfo> { 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> { 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> { 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> { 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>> { 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>> { 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[]> { 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[]> { 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[]> { 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[]> { 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[]> { 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> { 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 { LanguageServiceDefaultsImpl } from './monaco.contribution';
import { TypeScriptWorker } from './tsWorker'; import { TypeScriptWorker } from './tsWorker';
import Promise = monaco.Promise;
import IDisposable = monaco.IDisposable; import IDisposable = monaco.IDisposable;
import Uri = monaco.Uri; 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()) { if (this._defaults.getEagerModelSync()) {
p = p.then(worker => { p = p.then(worker => {

Loading…
Cancel
Save