UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

120 lines (118 loc) 4.08 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IStringDictionary } from '@sussudio/base/common/collections.mjs'; import { ProcessItem } from '@sussudio/base/common/processes.mjs'; import { UriComponents } from '@sussudio/base/common/uri.mjs'; import { IWorkspace } from '../../workspace/common/workspace.mjs'; export declare const ID = 'diagnosticsService'; export declare const IDiagnosticsService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IDiagnosticsService>; export interface IDiagnosticsService { readonly _serviceBrand: undefined; getPerformanceInfo( mainProcessInfo: IMainProcessDiagnostics, remoteInfo: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[], ): Promise<PerformanceInfo>; getSystemInfo( mainProcessInfo: IMainProcessDiagnostics, remoteInfo: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[], ): Promise<SystemInfo>; getDiagnostics( mainProcessInfo: IMainProcessDiagnostics, remoteInfo: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[], ): Promise<string>; getWorkspaceFileExtensions(workspace: IWorkspace): Promise<{ extensions: string[]; }>; reportWorkspaceStats(workspace: IWorkspaceInformation): Promise<void>; } export interface IMachineInfo { os: string; cpus?: string; memory: string; vmHint: string; linuxEnv?: ILinuxEnv; } export interface ILinuxEnv { desktopSession?: string; xdgSessionDesktop?: string; xdgCurrentDesktop?: string; xdgSessionType?: string; } export interface IDiagnosticInfo { machineInfo: IMachineInfo; workspaceMetadata?: IStringDictionary<WorkspaceStats>; processes?: ProcessItem; } export interface SystemInfo extends IMachineInfo { processArgs: string; gpuStatus: any; screenReader: string; remoteData: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[]; load?: string; } export interface IRemoteDiagnosticInfo extends IDiagnosticInfo { hostName: string; } export interface IRemoteDiagnosticError { hostName: string; errorMessage: string; } export interface IDiagnosticInfoOptions { includeProcesses?: boolean; folders?: UriComponents[]; includeExtensions?: boolean; } export interface WorkspaceStatItem { name: string; count: number; } export interface WorkspaceStats { fileTypes: WorkspaceStatItem[]; configFiles: WorkspaceStatItem[]; fileCount: number; maxFilesReached: boolean; launchConfigFiles: WorkspaceStatItem[]; } export interface PerformanceInfo { processInfo?: string; workspaceInfo?: string; } export interface IWorkspaceInformation extends IWorkspace { telemetryId: string | undefined; rendererSessionId: string; } export declare function isRemoteDiagnosticError(x: any): x is IRemoteDiagnosticError; export declare class NullDiagnosticsService implements IDiagnosticsService { _serviceBrand: undefined; getPerformanceInfo( mainProcessInfo: IMainProcessDiagnostics, remoteInfo: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[], ): Promise<PerformanceInfo>; getSystemInfo( mainProcessInfo: IMainProcessDiagnostics, remoteInfo: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[], ): Promise<SystemInfo>; getDiagnostics( mainProcessInfo: IMainProcessDiagnostics, remoteInfo: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[], ): Promise<string>; getWorkspaceFileExtensions(workspace: IWorkspace): Promise<{ extensions: string[]; }>; reportWorkspaceStats(workspace: IWorkspaceInformation): Promise<void>; } export interface IWindowDiagnostics { readonly pid: number; readonly title: string; readonly folderURIs: UriComponents[]; readonly remoteAuthority?: string; } export interface IMainProcessDiagnostics { readonly mainPID: number; readonly mainArguments: string[]; readonly windows: IWindowDiagnostics[]; readonly screenReader: boolean; readonly gpuFeatureStatus: any; }