From 70cba0fe0fe3583deb19709a61768695b83d3ea9 Mon Sep 17 00:00:00 2001 From: Emil Lauridsen Date: Wed, 15 Jan 2020 11:47:56 +0100 Subject: Use types from vscode-langaugeclient --- editors/code/rollup.config.js | 2 +- editors/code/src/inlay_hints.ts | 2 +- editors/code/src/status_display.ts | 36 +++++++----------------------------- 3 files changed, 9 insertions(+), 31 deletions(-) (limited to 'editors') diff --git a/editors/code/rollup.config.js b/editors/code/rollup.config.js index 14fb9e085..de6a3b2b7 100644 --- a/editors/code/rollup.config.js +++ b/editors/code/rollup.config.js @@ -13,7 +13,7 @@ export default { commonjs({ namedExports: { // squelch missing import warnings - 'vscode-languageclient': ['CreateFile', 'RenameFile', 'ErrorCodes'] + 'vscode-languageclient': ['CreateFile', 'RenameFile', 'ErrorCodes', 'WorkDoneProgress', 'WorkDoneProgressBegin', 'WorkDoneProgressReport', 'WorkDoneProgressEnd'] } }) ], diff --git a/editors/code/src/inlay_hints.ts b/editors/code/src/inlay_hints.ts index c4206cf5b..6357e44f1 100644 --- a/editors/code/src/inlay_hints.ts +++ b/editors/code/src/inlay_hints.ts @@ -42,7 +42,7 @@ const parameterHintDecorationType = vscode.window.createTextEditorDecorationType before: { color: new vscode.ThemeColor('rust_analyzer.inlayHint'), } -}) +}); class HintsUpdater { private pending: Map = new Map(); diff --git a/editors/code/src/status_display.ts b/editors/code/src/status_display.ts index 371a2f3bb..c75fddf9d 100644 --- a/editors/code/src/status_display.ts +++ b/editors/code/src/status_display.ts @@ -1,5 +1,7 @@ import * as vscode from 'vscode'; +import { WorkDoneProgress, WorkDoneProgressBegin, WorkDoneProgressReport, WorkDoneProgressEnd } from 'vscode-languageclient'; + import { Ctx } from './ctx'; const spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']; @@ -8,7 +10,7 @@ export function activateStatusDisplay(ctx: Ctx) { const statusDisplay = new StatusDisplay(ctx.config.cargoWatchOptions.command); ctx.pushCleanup(statusDisplay); ctx.onDidRestart(client => { - client.onNotification('$/progress', params => statusDisplay.handleProgressNotification(params)); + client.onProgress(WorkDoneProgress.type, 'rustAnalyzer/cargoWatcher', params => statusDisplay.handleProgressNotification(params)); }); } @@ -63,20 +65,15 @@ class StatusDisplay implements vscode.Disposable { this.statusBarItem.dispose(); } - handleProgressNotification(params: ProgressParams) { - const { token, value } = params; - if (token !== 'rustAnalyzer/cargoWatcher') { - return; - } - - switch (value.kind) { + handleProgressNotification(params: WorkDoneProgressBegin | WorkDoneProgressReport | WorkDoneProgressEnd) { + switch (params.kind) { case 'begin': this.show(); break; case 'report': - if (value.message) { - this.packageName = value.message; + if (params.message) { + this.packageName = params.message; } break; @@ -90,22 +87,3 @@ class StatusDisplay implements vscode.Disposable { return spinnerFrames[(this.i = ++this.i % spinnerFrames.length)]; } } - -// FIXME: Replace this once vscode-languageclient is updated to LSP 3.15 -interface ProgressParams { - token: string; - value: WorkDoneProgress; -} - -enum WorkDoneProgressKind { - Begin = 'begin', - Report = 'report', - End = 'end', -} - -interface WorkDoneProgress { - kind: WorkDoneProgressKind; - message?: string; - cancelable?: boolean; - percentage?: string; -} -- cgit v1.2.3