Browse Source

Adopt native promises

Alex Dima 6 năm trước cách đây
mục cha
commit
505232c7c8
5 tập tin đã thay đổi với 23 bổ sung27 xóa
  1. 1 2
      src/languageFeatures.ts
  2. 4 4
      src/monaco.contribution.ts
  3. 2 3
      src/tsMode.ts
  4. 15 16
      src/tsWorker.ts
  5. 1 2
      src/workerManager.ts

+ 1 - 2
src/languageFeatures.ts

@@ -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

+ 4 - 4
src/monaco.contribution.ts

@@ -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', () => {

+ 2 - 3
src/tsMode.ts

@@ -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!");
 		}

+ 15 - 16
src/tsWorker.ts

@@ -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));
 	}
 }
 

+ 1 - 2
src/workerManager.ts

@@ -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 => {