提交 ded52df5 编写于 作者: M Martin Aeschlimann

enforce segments in contributed icon names (for #114942)

上级 9d1e8fa6
......@@ -73,6 +73,7 @@ export interface CSSIcon {
export namespace CSSIcon {
export const iconNameSegment = '[A-Za-z0-9]+';
export const iconNameExpression = '[A-Za-z0-9\\-]+';
export const iconModifierExpression = '~[A-Za-z]+';
......
......@@ -29,7 +29,7 @@ interface IIconFontExtensionPoint {
const iconRegistry: IIconRegistry = Registry.as<IIconRegistry>(IconRegistryExtensions.IconContribution);
const iconReferenceSchema = iconRegistry.getIconReferenceSchema();
const iconIdPattern = `^${CSSIcon.iconNameExpression}$`;
const iconIdPattern = `^${CSSIcon.iconNameSegment}-(${CSSIcon.iconNameSegment})+`;
const iconConfigurationExtPoint = ExtensionsRegistry.registerExtensionPoint<IIconExtensionPoint[]>({
extensionPoint: 'icons',
......@@ -43,7 +43,7 @@ const iconConfigurationExtPoint = ExtensionsRegistry.registerExtensionPoint<IIco
type: 'string',
description: nls.localize('contributes.icon.id', 'The identifier of the themable icon'),
pattern: iconIdPattern,
patternErrorMessage: nls.localize('contributes.icon.id.format', 'Identifiers must only contain letters, digits and minus.'),
patternErrorMessage: nls.localize('contributes.icon.id.format', 'Identifiers can only contain letters, digits and minuses and need to consist of at least two segments in the form `component-iconname`.'),
},
description: {
type: 'string',
......@@ -139,7 +139,7 @@ export class IconExtensionPoint {
return;
}
if (!iconContribution.id.match(iconIdPattern)) {
collector.error(nls.localize('invalid.icons.id.format', "'configuration.icons.id' must only contain letters, digits and minuses"));
collector.error(nls.localize('invalid.icons.id.format', "'configuration.icons.id' can only contain letter, digits and minuses and need to consist of at least two segments in the form `component-iconname`."));
return;
}
if (typeof iconContribution.description !== 'string' || iconContribution.id.length === 0) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册