From ca8d9863403beb1de98c5da12b8ffdce1560cd78 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 7 May 2025 12:44:06 +0200 Subject: [PATCH] process explorer - adopt custom hover (#248295) --- .../processExplorerControl.ts | 50 ++++++++++++++++--- .../processExplorerEditorInput.ts | 2 + 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/contrib/processExplorer/electron-sandbox/processExplorerControl.ts b/src/vs/workbench/contrib/processExplorer/electron-sandbox/processExplorerControl.ts index a027b854676..a3fd6268701 100644 --- a/src/vs/workbench/contrib/processExplorer/electron-sandbox/processExplorerControl.ts +++ b/src/vs/workbench/contrib/processExplorer/electron-sandbox/processExplorerControl.ts @@ -27,6 +27,9 @@ import { RenderIndentGuides } from '../../../../base/browser/ui/tree/abstractTre import { isWindows } from '../../../../base/common/platform.js'; import { IProcessMainService } from '../../../../platform/process/common/process.js'; import { Delayer } from '../../../../base/common/async.js'; +import { IHoverService } from '../../../../platform/hover/browser/hover.js'; +import { IManagedHover } from '../../../../base/browser/ui/hover/hover.js'; +import { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js'; const DEBUG_FLAGS_PATTERN = /\s--inspect(?:-brk|port)?=(?\d+)?/; const DEBUG_PORT_PATTERN = /\s--inspect-port=(?\d+)/; @@ -153,6 +156,7 @@ interface IProcessItemTemplateData extends IProcessRowTemplateData { readonly cpu: HTMLElement; readonly memory: HTMLElement; readonly pid: HTMLElement; + readonly hover?: ProcessItemHover; } class ProcessHeaderTreeRenderer implements ITreeRenderer { @@ -213,14 +217,48 @@ class ErrorRenderer implements ITreeRenderer { readonly templateId: string = 'process'; - constructor(private totalMem: number, private model: ProcessExplorerModel) { } + constructor( + private totalMem: number, + private model: ProcessExplorerModel, + @IHoverService private readonly hoverService: IHoverService + ) { } renderTemplate(container: HTMLElement): IProcessItemTemplateData { - return createRow(container); + const row = createRow(container); + + return { + name: row.name, + cpu: row.cpu, + memory: row.memory, + pid: row.pid, + hover: new ProcessItemHover(row.name, this.hoverService) + }; } renderElement(node: ITreeNode, index: number, templateData: IProcessItemTemplateData, height: number | undefined): void { @@ -229,18 +267,18 @@ class ProcessRenderer implements ITreeRenderer