Stop using Thenable

This commit is contained in:
Alex Dima 2020-09-07 16:25:50 +02:00
parent adfd5a1d3c
commit 98cc547869
No known key found for this signature in database
GPG key ID: 6E58D7B045760DA0
2 changed files with 21 additions and 24 deletions

View file

@ -6,8 +6,6 @@
import IWorkerContext = monaco.worker.IWorkerContext; import IWorkerContext = monaco.worker.IWorkerContext;
import Thenable = monaco.Thenable;
import * as htmlService from 'vscode-html-languageservice'; import * as htmlService from 'vscode-html-languageservice';
import * as poli from './fillers/polyfills'; import * as poli from './fillers/polyfills';
@ -28,54 +26,54 @@ export class HTMLWorker {
this._languageService = htmlService.getLanguageService(); this._languageService = htmlService.getLanguageService();
} }
doValidation(uri: string): Thenable<htmlService.Diagnostic[]> { async doValidation(uri: string): Promise<htmlService.Diagnostic[]> {
// not yet suported // not yet suported
return Promise.resolve([]); return Promise.resolve([]);
} }
doComplete(uri: string, position: htmlService.Position): Thenable<htmlService.CompletionList> { async doComplete(uri: string, position: htmlService.Position): Promise<htmlService.CompletionList> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
return Promise.resolve(this._languageService.doComplete(document, position, htmlDocument, this._languageSettings && this._languageSettings.suggest)); return Promise.resolve(this._languageService.doComplete(document, position, htmlDocument, this._languageSettings && this._languageSettings.suggest));
} }
format(uri: string, range: htmlService.Range, options: htmlService.FormattingOptions): Thenable<htmlService.TextEdit[]> { async format(uri: string, range: htmlService.Range, options: htmlService.FormattingOptions): Promise<htmlService.TextEdit[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let textEdits = this._languageService.format(document, range, this._languageSettings && this._languageSettings.format); let textEdits = this._languageService.format(document, range, this._languageSettings && this._languageSettings.format);
return Promise.resolve(textEdits); return Promise.resolve(textEdits);
} }
doHover(uri: string, position: htmlService.Position): Thenable<htmlService.Hover> { async doHover(uri: string, position: htmlService.Position): Promise<htmlService.Hover> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let hover = this._languageService.doHover(document, position, htmlDocument); let hover = this._languageService.doHover(document, position, htmlDocument);
return Promise.resolve(hover); return Promise.resolve(hover);
} }
findDocumentHighlights(uri: string, position: htmlService.Position): Thenable<htmlService.DocumentHighlight[]> { async findDocumentHighlights(uri: string, position: htmlService.Position): Promise<htmlService.DocumentHighlight[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let highlights = this._languageService.findDocumentHighlights(document, position, htmlDocument); let highlights = this._languageService.findDocumentHighlights(document, position, htmlDocument);
return Promise.resolve(highlights); return Promise.resolve(highlights);
} }
findDocumentLinks(uri: string): Thenable<htmlService.DocumentLink[]> { async findDocumentLinks(uri: string): Promise<htmlService.DocumentLink[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let links = this._languageService.findDocumentLinks(document, null); let links = this._languageService.findDocumentLinks(document, null);
return Promise.resolve(links); return Promise.resolve(links);
} }
findDocumentSymbols(uri: string): Thenable<htmlService.SymbolInformation[]> { async findDocumentSymbols(uri: string): Promise<htmlService.SymbolInformation[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let symbols = this._languageService.findDocumentSymbols(document, htmlDocument); let symbols = this._languageService.findDocumentSymbols(document, htmlDocument);
return Promise.resolve(symbols); return Promise.resolve(symbols);
} }
getFoldingRanges(uri: string, context?: { rangeLimit?: number; }): Thenable<htmlService.FoldingRange[]> { async getFoldingRanges(uri: string, context?: { rangeLimit?: number; }): Promise<htmlService.FoldingRange[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let ranges = this._languageService.getFoldingRanges(document, context); let ranges = this._languageService.getFoldingRanges(document, context);
return Promise.resolve(ranges); return Promise.resolve(ranges);
} }
getSelectionRanges(uri: string, positions: htmlService.Position[]): Thenable<htmlService.SelectionRange[]> { async getSelectionRanges(uri: string, positions: htmlService.Position[]): Promise<htmlService.SelectionRange[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let ranges = this._languageService.getSelectionRanges(document, positions); let ranges = this._languageService.getSelectionRanges(document, positions);
return Promise.resolve(ranges); return Promise.resolve(ranges);
} }
doRename(uri: string, position: htmlService.Position, newName: string): Thenable<htmlService.WorkspaceEdit> { async doRename(uri: string, position: htmlService.Position, newName: string): Promise<htmlService.WorkspaceEdit> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let renames = this._languageService.doRename(document, position, newName, htmlDocument); let renames = this._languageService.doRename(document, position, newName, htmlDocument);

View file

@ -12,13 +12,12 @@ import * as htmlService from 'vscode-html-languageservice';
import Uri = monaco.Uri; 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 CancellationToken = monaco.CancellationToken; import CancellationToken = monaco.CancellationToken;
import IDisposable = monaco.IDisposable; import IDisposable = monaco.IDisposable;
export interface WorkerAccessor { export interface WorkerAccessor {
(...more: Uri[]): Thenable<HTMLWorker> (...more: Uri[]): Promise<HTMLWorker>
} }
// --- diagnostics --- --- // --- diagnostics --- ---
@ -221,7 +220,7 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide
return ['.', ':', '<', '"', '=', '/']; return ['.', ':', '<', '"', '=', '/'];
} }
provideCompletionItems(model: monaco.editor.IReadOnlyModel, position: Position, context: monaco.languages.CompletionContext, token: CancellationToken): Thenable<monaco.languages.CompletionList> { provideCompletionItems(model: monaco.editor.IReadOnlyModel, position: Position, context: monaco.languages.CompletionContext, token: CancellationToken): Promise<monaco.languages.CompletionList> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => { return this._worker(resource).then(worker => {
@ -306,7 +305,7 @@ export class HoverAdapter implements monaco.languages.HoverProvider {
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
provideHover(model: monaco.editor.IReadOnlyModel, position: Position, token: CancellationToken): Thenable<monaco.languages.Hover> { provideHover(model: monaco.editor.IReadOnlyModel, position: Position, token: CancellationToken): Promise<monaco.languages.Hover> {
let resource = model.uri; let resource = model.uri;
return this._worker(resource).then(worker => { return this._worker(resource).then(worker => {
@ -342,7 +341,7 @@ export class DocumentHighlightAdapter implements monaco.languages.DocumentHighli
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
public provideDocumentHighlights(model: monaco.editor.IReadOnlyModel, position: Position, token: CancellationToken): Thenable<monaco.languages.DocumentHighlight[]> { public provideDocumentHighlights(model: monaco.editor.IReadOnlyModel, position: Position, token: CancellationToken): Promise<monaco.languages.DocumentHighlight[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => worker.findDocumentHighlights(resource.toString(), fromPosition(position))).then(items => { return this._worker(resource).then(worker => worker.findDocumentHighlights(resource.toString(), fromPosition(position))).then(items => {
@ -390,7 +389,7 @@ export class DocumentSymbolAdapter implements monaco.languages.DocumentSymbolPro
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
public provideDocumentSymbols(model: monaco.editor.IReadOnlyModel, token: CancellationToken): Thenable<monaco.languages.DocumentSymbol[]> { public provideDocumentSymbols(model: monaco.editor.IReadOnlyModel, token: CancellationToken): Promise<monaco.languages.DocumentSymbol[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => worker.findDocumentSymbols(resource.toString())).then(items => { return this._worker(resource).then(worker => worker.findDocumentSymbols(resource.toString())).then(items => {
@ -415,7 +414,7 @@ export class DocumentLinkAdapter implements monaco.languages.LinkProvider {
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
public provideLinks(model: monaco.editor.IReadOnlyModel, token: CancellationToken): Thenable<monaco.languages.ILinksList> { public provideLinks(model: monaco.editor.IReadOnlyModel, token: CancellationToken): Promise<monaco.languages.ILinksList> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => worker.findDocumentLinks(resource.toString())).then(items => { return this._worker(resource).then(worker => worker.findDocumentLinks(resource.toString())).then(items => {
@ -445,7 +444,7 @@ export class DocumentFormattingEditProvider implements monaco.languages.Document
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
public provideDocumentFormattingEdits(model: monaco.editor.IReadOnlyModel, options: monaco.languages.FormattingOptions, token: CancellationToken): Thenable<monaco.editor.ISingleEditOperation[]> { public provideDocumentFormattingEdits(model: monaco.editor.IReadOnlyModel, options: monaco.languages.FormattingOptions, token: CancellationToken): Promise<monaco.editor.ISingleEditOperation[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => { return this._worker(resource).then(worker => {
@ -464,7 +463,7 @@ export class DocumentRangeFormattingEditProvider implements monaco.languages.Doc
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
public provideDocumentRangeFormattingEdits(model: monaco.editor.IReadOnlyModel, range: Range, options: monaco.languages.FormattingOptions, token: CancellationToken): Thenable<monaco.editor.ISingleEditOperation[]> { public provideDocumentRangeFormattingEdits(model: monaco.editor.IReadOnlyModel, range: Range, options: monaco.languages.FormattingOptions, token: CancellationToken): Promise<monaco.editor.ISingleEditOperation[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => { return this._worker(resource).then(worker => {
@ -483,7 +482,7 @@ export class RenameAdapter implements monaco.languages.RenameProvider {
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
provideRenameEdits(model: monaco.editor.IReadOnlyModel, position: Position, newName: string, token: CancellationToken): Thenable<monaco.languages.WorkspaceEdit> { provideRenameEdits(model: monaco.editor.IReadOnlyModel, position: Position, newName: string, token: CancellationToken): Promise<monaco.languages.WorkspaceEdit> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => { return this._worker(resource).then(worker => {
@ -521,7 +520,7 @@ export class FoldingRangeAdapter implements monaco.languages.FoldingRangeProvide
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
public provideFoldingRanges(model: monaco.editor.IReadOnlyModel, context: monaco.languages.FoldingContext, token: CancellationToken): Thenable<monaco.languages.FoldingRange[]> { public provideFoldingRanges(model: monaco.editor.IReadOnlyModel, context: monaco.languages.FoldingContext, token: CancellationToken): Promise<monaco.languages.FoldingRange[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => worker.getFoldingRanges(resource.toString(), context)).then(ranges => { return this._worker(resource).then(worker => worker.getFoldingRanges(resource.toString(), context)).then(ranges => {
@ -556,7 +555,7 @@ export class SelectionRangeAdapter implements monaco.languages.SelectionRangePro
constructor(private _worker: WorkerAccessor) { constructor(private _worker: WorkerAccessor) {
} }
public provideSelectionRanges(model: monaco.editor.IReadOnlyModel, positions: Position[], token: CancellationToken): Thenable<monaco.languages.SelectionRange[][]> { public provideSelectionRanges(model: monaco.editor.IReadOnlyModel, positions: Position[], token: CancellationToken): Promise<monaco.languages.SelectionRange[][]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then(worker => worker.getSelectionRanges(resource.toString(), positions.map(fromPosition))).then(selectionRanges => { return this._worker(resource).then(worker => worker.getSelectionRanges(resource.toString(), positions.map(fromPosition))).then(selectionRanges => {