Change:
import * as nls from 'vs/nls'; import { RunOnceScheduler } from 'vs/base/common/async'; import { MarkdownString } from 'vs/base/common/htmlContent'; <del> import { KeyCode, KeyMod, KeyChord } from 'vs/base/common/keyCodes'; import { Disposable } from 'vs/base/common/lifecycle'; </del> <ins> import { Disposable, MutableDisposable } from 'vs/base/common/lifecycle'; </ins> import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; <del> import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; </del> import { Range } from 'vs/editor/common/core/range'; <del> import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { registerEditorContribution, ServicesAccessor, registerEditorCommand, EditorCommand, EditorContributionInstantiation } from 'vs/editor/browser/editorExtensions'; </del> <ins> import { registerEditorContribution, EditorContributionInstantiation } from 'vs/editor/browser/editorExtensions'; </ins> import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { SnippetController2 } from 'vs/editor/contrib/snippet/browser/snippetController2'; import { SmartSnippetInserter } from 'vs/workbench/contrib/preferences/common/smartSnippetInserter'; import { DefineKeybindingOverlayWidget } from 'vs/workbench/contrib/preferences/browser/keybindingWidgets'; <del> import { FloatingClickWidget } from 'vs/workbench/browser/codeeditor'; </del> import { parseTree, Node } from 'vs/base/common/json'; <del> import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; </del> import { WindowsNativeResolvedKeybinding } from 'vs/workbench/services/keybinding/common/windowsKeyboardMapper'; import { themeColorFromId } from 'vs/platform/theme/common/themeService'; import { ThemeColor } from 'vs/base/common/themables'; import { overviewRulerInfo, overviewRulerError } from 'vs/editor/common/core/editorColorRegistry'; import { IModelDeltaDecoration, ITextModel, TrackedRangeStickiness, OverviewRulerLane } from 'vs/editor/common/model'; <del> import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; </del> import { KeybindingParser } from 'vs/base/common/keybindingParser'; <del> import { EditorOption } from 'vs/editor/common/config/editorOptions'; </del> import { assertIsDefined } from 'vs/base/common/types'; import { isEqual } from 'vs/base/common/resources'; import { IUserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfile'; <ins> import { DEFINE_KEYBINDING_EDITOR_CONTRIB_ID, IDefineKeybindingEditorContribution } from 'vs/workbench/services/preferences/common/preferences'; </ins> <del> const NLS_LAUNCH_MESSAGE = nls.localize('defineKeybinding.start', "Define Keybinding"); </del> const NLS_KB_LAYOUT_ERROR_MESSAGE = nls.localize('defineKeybinding.kbLayoutErrorMessage', "You won't be able to produce this key combination under your current keyboard layout."); <del> export class DefineKeybindingController extends Disposable implements IEditorContribution { </del> <ins> class DefineKeybindingEditorContribution extends Disposable implements IDefineKeybindingEditorContribution { </ins> <del> public static readonly ID = 'editor.contrib.defineKeybinding'; </del> <ins> private _keybindingDecorationRenderer = this._register(new MutableDisposable<KeybindingEditorDecorationsRenderer>()); </ins> <del> static get(editor: ICodeEditor): DefineKeybindingController | null { return editor.getContribution<DefineKeybindingController>(DefineKeybindingController.ID); } private _keybindingWidgetRenderer?: KeybindingWidgetRenderer; private _keybindingDecorationRenderer?: KeybindingEditorDecorationsRenderer; </del> <ins> private readonly _defineWidget: DefineKeybindingOverlayWidget; </ins> constructor( private _editor: ICodeEditor,

Discussion:
With there is a new -menu which a big blue buttons. This is used in the merge editor and to hint to open the merge editor. This new menu should be used for: [x] [ ] ~~ / [x] [ ]
Other potential adoptors [ ] [ ] [ ] [ ]
Digging into it, I don't think can be adopted for the diff editor, as the button should be for both editors, not only the right side ( is a , but is ).