From e90faf1fa753415e4cb2f77e31d5e3c2ea27ae60 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Thu, 19 Jul 2018 15:59:51 +0200 Subject: [PATCH] breadcrumbs - add "Toggle Breadcrumbs" to "View" menu --- src/vs/code/electron-main/menus.ts | 4 +++- .../workbench/browser/parts/editor/breadcrumbs.ts | 8 +++++++- .../browser/parts/editor/breadcrumbsControl.ts | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/vs/code/electron-main/menus.ts b/src/vs/code/electron-main/menus.ts index 998479e6247..4c5a22871d8 100644 --- a/src/vs/code/electron-main/menus.ts +++ b/src/vs/code/electron-main/menus.ts @@ -766,6 +766,7 @@ export class CodeMenu { const toggleMinimap = this.createMenuItem(nls.localize({ key: 'miToggleMinimap', comment: ['&& denotes a mnemonic'] }, "Toggle &&Minimap"), 'editor.action.toggleMinimap'); const toggleRenderWhitespace = this.createMenuItem(nls.localize({ key: 'miToggleRenderWhitespace', comment: ['&& denotes a mnemonic'] }, "Toggle &&Render Whitespace"), 'editor.action.toggleRenderWhitespace'); const toggleRenderControlCharacters = this.createMenuItem(nls.localize({ key: 'miToggleRenderControlCharacters', comment: ['&& denotes a mnemonic'] }, "Toggle &&Control Characters"), 'editor.action.toggleRenderControlCharacter'); + const toggleBreadcrumbs = this.createMenuItem(nls.localize({ key: 'miToggleBreadcrumbs', comment: ['&& denotes a mnemonic'] }, "Toggle &&Breadcrumbs"), 'breadcrumbs.toggle'); arrays.coalesce([ commands, @@ -788,7 +789,8 @@ export class CodeMenu { toggleWordWrap, toggleMinimap, toggleRenderWhitespace, - toggleRenderControlCharacters + toggleRenderControlCharacters, + toggleBreadcrumbs ]).forEach(item => viewMenu.append(item)); } diff --git a/src/vs/workbench/browser/parts/editor/breadcrumbs.ts b/src/vs/workbench/browser/parts/editor/breadcrumbs.ts index 136fc5bf794..ac7b2f27130 100644 --- a/src/vs/workbench/browser/parts/editor/breadcrumbs.ts +++ b/src/vs/workbench/browser/parts/editor/breadcrumbs.ts @@ -85,7 +85,13 @@ export abstract class BreadcrumbsConfig { return { name, - get value() { return value; }, + get value() { + return value; + }, + set value(newValue: T) { + service.updateValue(name, newValue); + value = newValue; + }, onDidChange: onDidChange.event, dispose(): void { listener.dispose(); diff --git a/src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts b/src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts index 195f7c934f1..28ac8c4a59d 100644 --- a/src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts +++ b/src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts @@ -39,6 +39,7 @@ import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; import { localize } from 'vs/nls'; import { WorkbenchListFocusContextKey, IListService } from 'vs/platform/list/browser/listService'; import { Tree } from 'vs/base/parts/tree/browser/treeImpl'; +import { CommandsRegistry } from 'vs/platform/commands/common/commands'; class Item extends BreadcrumbsItem { @@ -356,6 +357,19 @@ MenuRegistry.appendMenuItem(MenuId.CommandPalette, { title: localize('cmd.focus', "Focus Breadcrumbs") } }); +MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, { + group: '5_editor', + order: 99, + command: { + id: 'breadcrumbs.toggle', + title: localize('cmd.toggle', "Toggle Breadcrumbs") + } +}); +CommandsRegistry.registerCommand('breadcrumbs.toggle', accessor => { + let config = accessor.get(IConfigurationService); + let value = BreadcrumbsConfig.IsEnabled.bindTo(config).value; + BreadcrumbsConfig.IsEnabled.bindTo(config).value = !value; +}); KeybindingsRegistry.registerCommandAndKeybindingRule({ id: 'breadcrumbs.focus', -- GitLab