mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 13:46:13 +00:00
tasks.json should use deprecation message for env. config. and command. (#62787)
Fixes #21340
This commit is contained in:
parent
c72cb129f2
commit
fc3083ddf8
|
@ -17,6 +17,7 @@ import { ICommandService } from 'vs/platform/commands/common/commands';
|
|||
import { IOutputService } from 'vs/workbench/parts/output/common/output';
|
||||
import { ExecutableDebugAdapter, SocketDebugAdapter } from 'vs/workbench/parts/debug/node/debugAdapter';
|
||||
import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver';
|
||||
import * as ConfigurationResolverUtils from 'vs/workbench/services/configurationResolver/common/configurationResolverUtils';
|
||||
import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { memoize } from 'vs/base/common/decorators';
|
||||
|
@ -291,9 +292,7 @@ export class Debugger implements IDebugger {
|
|||
};
|
||||
Object.keys(attributes.properties).forEach(name => {
|
||||
// Use schema allOf property to get independent error reporting #21113
|
||||
attributes.properties[name].pattern = attributes.properties[name].pattern || '^(?!.*\\$\\{(env|config|command)\\.)';
|
||||
attributes.properties[name].patternErrorMessage = attributes.properties[name].patternErrorMessage ||
|
||||
nls.localize('deprecatedVariables', "'env.', 'config.' and 'command.' are deprecated, use 'env:', 'config:' and 'command:' instead.");
|
||||
ConfigurationResolverUtils.applyDeprecatedVariableMessage(attributes.properties[name]);
|
||||
});
|
||||
|
||||
return attributes;
|
||||
|
|
|
@ -5,12 +5,13 @@
|
|||
|
||||
import * as nls from 'vs/nls';
|
||||
import * as Objects from 'vs/base/common/objects';
|
||||
import { IJSONSchema } from 'vs/base/common/jsonSchema';
|
||||
import { IJSONSchema, IJSONSchemaMap } from 'vs/base/common/jsonSchema';
|
||||
|
||||
import commonSchema from './jsonSchemaCommon';
|
||||
|
||||
import { ProblemMatcherRegistry } from 'vs/workbench/parts/tasks/common/problemMatcher';
|
||||
import { TaskDefinitionRegistry } from '../common/taskDefinitionRegistry';
|
||||
import * as ConfigurationResolverUtils from 'vs/workbench/services/configurationResolver/common/configurationResolverUtils';
|
||||
|
||||
function fixReferences(literal: any) {
|
||||
if (Array.isArray(literal)) {
|
||||
|
@ -458,10 +459,21 @@ const schema: IJSONSchema = {
|
|||
|
||||
schema.definitions = definitions;
|
||||
|
||||
function deprecatedVariableMessage(schemaMap: IJSONSchemaMap, property: string) {
|
||||
if (schemaMap[property].properties) {
|
||||
Object.keys(schemaMap[property].properties).forEach(name => {
|
||||
deprecatedVariableMessage(schemaMap[property].properties, name);
|
||||
});
|
||||
} else {
|
||||
ConfigurationResolverUtils.applyDeprecatedVariableMessage(schemaMap[property]);
|
||||
}
|
||||
}
|
||||
|
||||
Object.getOwnPropertyNames(definitions).forEach(key => {
|
||||
let newKey = key + '2';
|
||||
definitions[newKey] = definitions[key];
|
||||
delete definitions[key];
|
||||
deprecatedVariableMessage(definitions, newKey);
|
||||
});
|
||||
fixReferences(schema);
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import * as nls from 'vs/nls';
|
||||
import { IJSONSchema } from 'vs/base/common/jsonSchema';
|
||||
|
||||
export function applyDeprecatedVariableMessage(schema: IJSONSchema) {
|
||||
schema.pattern = schema.pattern || '^(?!.*\\$\\{(env|config|command)\\.)';
|
||||
schema.patternErrorMessage = schema.patternErrorMessage ||
|
||||
nls.localize('deprecatedVariables', "'env.', 'config.' and 'command.' are deprecated, use 'env:', 'config:' and 'command:' instead.");
|
||||
}
|
Loading…
Reference in a new issue