configuration.ts 1.6 KB
Newer Older
1 2 3 4 5
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

J
Johannes Rieken 已提交
6 7
import { IConfigurationService, IConfigurationValue } from 'vs/platform/configuration/common/configuration';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
8

B
Benjamin Pasero 已提交
9 10
export const CONFIG_DEFAULT_NAME = 'settings';
export const WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME = '.vscode';
B
Benjamin Pasero 已提交
11
export const WORKSPACE_CONFIG_DEFAULT_PATH = `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/${CONFIG_DEFAULT_NAME}.json`;
B
Benjamin Pasero 已提交
12

B
Benjamin Pasero 已提交
13
export const IWorkspaceConfigurationService = createDecorator<IWorkspaceConfigurationService>('configurationService');
14

B
Benjamin Pasero 已提交
15
export interface IWorkspaceConfigurationService extends IConfigurationService {
16 17 18 19 20 21

	/**
	 * Returns iff the workspace has configuration or not.
	 */
	hasWorkspaceConfiguration(): boolean;

B
Benjamin Pasero 已提交
22 23 24
	/**
	 * Override for the IConfigurationService#lookup() method that adds information about workspace settings.
	 */
B
Benjamin Pasero 已提交
25
	lookup<T>(key: string): IWorkspaceConfigurationValue<T>;
B
Benjamin Pasero 已提交
26 27
}

B
Benjamin Pasero 已提交
28
export interface IWorkspaceConfigurationValue<T> extends IConfigurationValue<T> {
B
Benjamin Pasero 已提交
29
	workspace: T;
30 31 32
}

export const WORKSPACE_STANDALONE_CONFIGURATIONS = {
B
Benjamin Pasero 已提交
33 34 35
	'tasks': `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/tasks.json`,
	'launch': `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/launch.json`,
	'extensions': `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/extensions.json`
36
};