Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/services/layout/common/workbenchModeService.ts
5241 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { Event } from '../../../../base/common/event.js';
7
import { IStringDictionary } from '../../../../base/common/collections.js';
8
import { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';
9
10
export const IWorkbenchModeService = createDecorator<IWorkbenchModeService>('workbenchModeService');
11
12
export interface IWorkbenchModeConfiguration {
13
readonly id: string;
14
readonly name: string;
15
readonly settings: IStringDictionary<unknown>;
16
}
17
18
export interface IWorkbenchModeService {
19
readonly _serviceBrand: undefined;
20
21
/**
22
* The currently active workbench mode id, or undefined if using default settings
23
*/
24
readonly workbenchMode: string | undefined;
25
26
/**
27
* Event fired when the workbench mode changes
28
*/
29
readonly onDidChangeWorkbenchMode: Event<string | undefined>;
30
31
/**
32
* Resolve a workbench mode by its id
33
* @param id The id of the workbench mode to resolve
34
*/
35
getWorkbenchModeConfiguration(id: string): Promise<IWorkbenchModeConfiguration | undefined>;
36
37
/**
38
* Get all workbench modes
39
*/
40
getWorkbenchModeConfigurations(): Promise<IWorkbenchModeConfiguration[]>;
41
42
/**
43
* Set the active workbench mode. Pass undefined to clear the mode and return to defaults.
44
*/
45
setWorkbenchMode(workbenchMode: string | undefined): Promise<void>;
46
}
47
48
export class DefaultWorkbenchModeService implements IWorkbenchModeService {
49
50
readonly _serviceBrand: undefined;
51
readonly workbenchMode: string | undefined = undefined;
52
readonly onDidChangeWorkbenchMode: Event<string | undefined> = Event.None;
53
54
getWorkbenchModeConfiguration(_id: string): Promise<IWorkbenchModeConfiguration | undefined> {
55
return Promise.resolve(undefined);
56
}
57
58
getWorkbenchModeConfigurations(): Promise<IWorkbenchModeConfiguration[]> {
59
return Promise.resolve([]);
60
}
61
62
setWorkbenchMode(_workbenchMode: string | undefined): Promise<void> {
63
return Promise.resolve();
64
}
65
}
66
67