@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
62 lines (60 loc) • 3.08 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Event as CommonEvent } from '@sussudio/base/common/event.mjs';
import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { URI } from '@sussudio/base/common/uri.mjs';
import { ILifecycleMainService } from '../../lifecycle/electron-main/lifecycleMainService.mjs';
import { ILogService } from '../../log/common/log.mjs';
import { IApplicationStorageMainService } from '../../storage/electron-main/storageMainService.mjs';
import { IRecent, IRecentlyOpened } from '../common/workspaces.mjs';
import { IWorkspacesManagementMainService } from './workspacesManagementMainService.mjs';
export declare const IWorkspacesHistoryMainService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IWorkspacesHistoryMainService>;
export interface IWorkspacesHistoryMainService {
readonly _serviceBrand: undefined;
readonly onDidChangeRecentlyOpened: CommonEvent<void>;
addRecentlyOpened(recents: IRecent[]): Promise<void>;
getRecentlyOpened(): Promise<IRecentlyOpened>;
removeRecentlyOpened(paths: URI[]): Promise<void>;
clearRecentlyOpened(): Promise<void>;
}
export declare class WorkspacesHistoryMainService extends Disposable implements IWorkspacesHistoryMainService {
private readonly logService;
private readonly workspacesManagementMainService;
private readonly lifecycleMainService;
private readonly applicationStorageMainService;
private static readonly MAX_TOTAL_RECENT_ENTRIES;
private static readonly RECENTLY_OPENED_STORAGE_KEY;
readonly _serviceBrand: undefined;
private readonly _onDidChangeRecentlyOpened;
readonly onDidChangeRecentlyOpened: CommonEvent<void>;
constructor(
logService: ILogService,
workspacesManagementMainService: IWorkspacesManagementMainService,
lifecycleMainService: ILifecycleMainService,
applicationStorageMainService: IApplicationStorageMainService,
);
private registerListeners;
addRecentlyOpened(recentToAdd: IRecent[]): Promise<void>;
removeRecentlyOpened(recentToRemove: URI[]): Promise<void>;
clearRecentlyOpened(): Promise<void>;
getRecentlyOpened(): Promise<IRecentlyOpened>;
private mergeEntriesFromStorage;
private getRecentlyOpenedFromStorage;
private saveRecentlyOpened;
private location;
private containsWorkspace;
private containsFolder;
private containsFile;
private static readonly MAX_MACOS_DOCK_RECENT_WORKSPACES;
private static readonly MAX_MACOS_DOCK_RECENT_ENTRIES_TOTAL;
private static readonly MAX_WINDOWS_JUMP_LIST_ENTRIES;
private static readonly COMMON_FILES_FILTER;
private readonly macOSRecentDocumentsUpdater;
private handleWindowsJumpList;
private updateWindowsJumpList;
private getWindowsJumpListLabel;
private renderJumpListPathDescription;
private updateMacOSRecentDocuments;
}