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 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…
Add table
Add a link
Reference in a new issue