提交 f88e60c5 编写于 作者: S SteVen Batten

fixes #89574

上级 edd94ce0
...@@ -19,6 +19,7 @@ import { ScrollbarVisibility, ScrollEvent } from 'vs/base/common/scrollable'; ...@@ -19,6 +19,7 @@ import { ScrollbarVisibility, ScrollEvent } from 'vs/base/common/scrollable';
import { Event } from 'vs/base/common/event'; import { Event } from 'vs/base/common/event';
import { AnchorAlignment } from 'vs/base/browser/ui/contextview/contextview'; import { AnchorAlignment } from 'vs/base/browser/ui/contextview/contextview';
import { isLinux, isMacintosh } from 'vs/base/common/platform'; import { isLinux, isMacintosh } from 'vs/base/common/platform';
import { stripCodicons } from 'vs/base/common/codicons';
export const MENU_MNEMONIC_REGEX = /\(&([^\s&])\)|(^|[^&])&([^\s&])/; export const MENU_MNEMONIC_REGEX = /\(&([^\s&])\)|(^|[^&])&([^\s&])/;
export const MENU_ESCAPED_MNEMONIC_REGEX = /(&)?(&)([^\s&])/g; export const MENU_ESCAPED_MNEMONIC_REGEX = /(&)?(&)([^\s&])/g;
...@@ -471,7 +472,7 @@ class BaseMenuActionViewItem extends BaseActionViewItem { ...@@ -471,7 +472,7 @@ class BaseMenuActionViewItem extends BaseActionViewItem {
if (this.options.label) { if (this.options.label) {
clearNode(this.label); clearNode(this.label);
let label = this.getAction().label; let label = stripCodicons(this.getAction().label);
if (label) { if (label) {
const cleanLabel = cleanMnemonic(label); const cleanLabel = cleanMnemonic(label);
if (!this.options.enableMnemonics) { if (!this.options.enableMnemonics) {
......
...@@ -27,3 +27,8 @@ export function renderCodicons(text: string): string { ...@@ -27,3 +27,8 @@ export function renderCodicons(text: string): string {
: `<span class="codicon codicon-${name}${animation ? ` codicon-animation-${animation}` : ''}"></span>`; : `<span class="codicon codicon-${name}${animation ? ` codicon-animation-${animation}` : ''}"></span>`;
}); });
} }
const stripCodiconsRegex = /(\s)?(\\)?\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)(\s)?/gi;
export function stripCodicons(text: string): string {
return text.replace(stripCodiconsRegex, (match, preWhitespace, escaped, postWhitespace) => escaped ? match : preWhitespace || postWhitespace || '');
}
...@@ -25,6 +25,7 @@ import { IEnvironmentService } from 'vs/platform/environment/common/environment' ...@@ -25,6 +25,7 @@ import { IEnvironmentService } from 'vs/platform/environment/common/environment'
import { ContextMenuService as HTMLContextMenuService } from 'vs/platform/contextview/browser/contextMenuService'; import { ContextMenuService as HTMLContextMenuService } from 'vs/platform/contextview/browser/contextMenuService';
import { IThemeService } from 'vs/platform/theme/common/themeService'; import { IThemeService } from 'vs/platform/theme/common/themeService';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { stripCodicons } from 'vs/base/common/codicons';
export class ContextMenuService extends Disposable implements IContextMenuService { export class ContextMenuService extends Disposable implements IContextMenuService {
...@@ -138,7 +139,7 @@ class NativeContextMenuService extends Disposable implements IContextMenuService ...@@ -138,7 +139,7 @@ class NativeContextMenuService extends Disposable implements IContextMenuService
// Submenu // Submenu
if (entry instanceof ContextSubMenu) { if (entry instanceof ContextSubMenu) {
return { return {
label: unmnemonicLabel(entry.label), label: unmnemonicLabel(stripCodicons(entry.label)).trim(),
submenu: this.createMenu(delegate, entry.entries, onHide) submenu: this.createMenu(delegate, entry.entries, onHide)
}; };
} }
...@@ -155,7 +156,7 @@ class NativeContextMenuService extends Disposable implements IContextMenuService ...@@ -155,7 +156,7 @@ class NativeContextMenuService extends Disposable implements IContextMenuService
} }
const item: IContextMenuItem = { const item: IContextMenuItem = {
label: unmnemonicLabel(entry.label), label: unmnemonicLabel(stripCodicons(entry.label)).trim(),
checked: !!entry.checked, checked: !!entry.checked,
type, type,
enabled: !!entry.enabled, enabled: !!entry.enabled,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册