提交 f704211f 编写于 作者: R Rob Lourens

Fix links rendered in enumDescriptions

上级 d2e16e50
......@@ -436,7 +436,7 @@ const editorConfiguration: IConfigurationNode = {
'editor.multiCursorModifier': {
'type': 'string',
'enum': ['ctrlCmd', 'alt'],
'enumDescriptions': [
'markdownEnumDescriptions': [
nls.localize('multiCursorModifier.ctrlCmd', "Maps to `Control` on Windows and Linux and to `Command` on macOS."),
nls.localize('multiCursorModifier.alt', "Maps to `Alt` on Windows and Linux and to `Option` on macOS.")
],
......
......@@ -197,4 +197,5 @@ export const knownAcronyms = new Set();
'ts',
'ie',
'id',
'php',
].forEach(str => knownAcronyms.add(str));
......@@ -1106,12 +1106,12 @@ export class SettingsRenderer implements ITreeRenderer {
private renderEnum(dataElement: SettingsTreeSettingElement, template: ISettingEnumItemTemplate, onChange: (value: string) => void): void {
const displayOptions = getDisplayEnumOptions(dataElement.setting);
template.selectBox.setOptions(displayOptions);
const descriptions = dataElement.setting.enumDescriptions;
const descriptionsAreMarkdown = dataElement.setting.descriptionIsMarkdown;
const enumDescriptions = dataElement.setting.enumDescriptions;
const enumDescriptionsAreMarkdown = dataElement.setting.enumDescriptionsAreMarkdown;
template.selectBox.setDetailsProvider(index =>
({
details: descriptions && descriptions[index] && (descriptionsAreMarkdown ? fixSettingLinks(descriptions[index]) : descriptions[index]),
isMarkdown: descriptionsAreMarkdown
details: enumDescriptions && enumDescriptions[index] && (enumDescriptionsAreMarkdown ? fixSettingLinks(enumDescriptions[index], false) : enumDescriptions[index]),
isMarkdown: enumDescriptionsAreMarkdown
}));
const modifiedText = dataElement.isConfigured ? 'Modified' : '';
......@@ -1236,11 +1236,13 @@ function cleanRenderedMarkdown(element: Node): void {
}
}
function fixSettingLinks(text: string): string {
return text.replace(/`#([^#]*)#`/g, (match, settingName) => {
const targetDisplayFormat = settingKeyToDisplayFormat(settingName);
function fixSettingLinks(text: string, linkify = true): string {
return text.replace(/`#([^#]*)#`/g, (match, settingKey) => {
const targetDisplayFormat = settingKeyToDisplayFormat(settingKey);
const targetName = `${targetDisplayFormat.category}: ${targetDisplayFormat.label}`;
return `[${targetName}](#${settingName})`;
return linkify ?
`[${targetName}](#${settingKey})` :
`"${targetName}"`;
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册