add fly-out UI for language status items, tweak API proposal

This commit is contained in:
Johannes Rieken
2021-08-17 16:58:36 +02:00
parent 5055ed7c0d
commit 4222c512c2
9 changed files with 342 additions and 19 deletions

View File

@@ -11,6 +11,7 @@ import { StandardTokenType, Range, Position, LanguageStatusSeverity } from 'vs/w
import Severity from 'vs/base/common/severity';
import { disposableTimeout } from 'vs/base/common/async';
import { IDisposable } from 'vs/base/common/lifecycle';
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
export class ExtHostLanguages {
@@ -67,12 +68,12 @@ export class ExtHostLanguages {
private _handlePool: number = 0;
createLanguageStatusItem(selector: vscode.DocumentSelector): vscode.LanguageStatusItem {
createLanguageStatusItem(extension: IExtensionDescription, selector: vscode.DocumentSelector): vscode.LanguageStatusItem {
const handle = this._handlePool++;
const proxy = this._proxy;
const data: { selector: any, text: string, detail: string | vscode.MarkdownString, severity: vscode.LanguageStatusSeverity } = {
const data: { selector: any, text: string, detail: string, severity: vscode.LanguageStatusSeverity } = {
selector,
text: '',
detail: '',
@@ -84,9 +85,9 @@ export class ExtHostLanguages {
soonHandle?.dispose();
soonHandle = disposableTimeout(() => {
this._proxy.$setLanguageStatus(handle, {
source: extension.displayName ?? extension.name,
selector: data.selector,
text: data.text,
message: typeof data.detail === 'string' ? data.detail : typeConvert.MarkdownString.from(data.detail),
message: data.detail,
severity: data.severity === LanguageStatusSeverity.Error ? Severity.Error : data.severity === LanguageStatusSeverity.Warning ? Severity.Warning : Severity.Info
});
}, 0);
@@ -100,13 +101,6 @@ export class ExtHostLanguages {
data.selector = value;
updateAsync();
},
get text() {
return data.text;
},
set text(value) {
data.text = value;
updateAsync();
},
get detail() {
return data.detail;
},