Skip to content

Commit 05ee54f

Browse files
authored
Merge pull request microsoft#7316 from elemongw/master
On mac ctrl-n should behave exactly like DownArrow
2 parents ce6cf7b + 3a52eb2 commit 05ee54f

5 files changed

Lines changed: 31 additions & 7 deletions

File tree

src/vs/base/common/keyCodes.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,10 +492,12 @@ export class CommonKeybindings {
492492
public static CTRLCMD_BACKSPACE: number = KeyMod.CtrlCmd | KeyCode.Backspace;
493493

494494
public static UP_ARROW: number = KeyCode.UpArrow;
495+
public static WINCTRL_P: number = KeyMod.WinCtrl | KeyCode.KEY_P;
495496
public static SHIFT_UP_ARROW: number = KeyMod.Shift | KeyCode.UpArrow;
496497
public static CTRLCMD_UP_ARROW: number = KeyMod.CtrlCmd | KeyCode.UpArrow;
497498

498499
public static DOWN_ARROW: number = KeyCode.DownArrow;
500+
public static WINCTRL_N: number = KeyMod.WinCtrl | KeyCode.KEY_N;
499501
public static SHIFT_DOWN_ARROW: number = KeyMod.Shift | KeyCode.DownArrow;
500502
public static CTRLCMD_DOWN_ARROW: number = KeyMod.CtrlCmd | KeyCode.DownArrow;
501503

src/vs/base/parts/quickopen/browser/quickOpenWidget.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import {StandardKeyboardEvent} from 'vs/base/browser/keyboardEvent';
2525
import {DefaultController, ClickBehavior} from 'vs/base/parts/tree/browser/treeDefaults';
2626
import DOM = require('vs/base/browser/dom');
2727
import {IActionProvider} from 'vs/base/parts/tree/browser/actionsRenderer';
28-
import {KeyCode, KeyMod} from 'vs/base/common/keyCodes';
28+
import {KeyCode, KeyMod, CommonKeybindings} from 'vs/base/common/keyCodes';
2929
import {IDisposable, dispose} from 'vs/base/common/lifecycle';
3030
import {ScrollbarVisibility} from 'vs/base/browser/ui/scrollbar/scrollableElementOptions';
3131

@@ -155,6 +155,15 @@ export class QuickOpenWidget implements IModelProvider {
155155
DOM.addDisposableListener(this.inputBox.inputElement, DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => {
156156
let keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);
157157

158+
if (platform.isMacintosh) {
159+
if (keyboardEvent.equals(CommonKeybindings.WINCTRL_N)) {
160+
keyboardEvent.keyCode = KeyCode.DownArrow;
161+
}
162+
else if (keyboardEvent.equals(CommonKeybindings.WINCTRL_P)) {
163+
keyboardEvent.keyCode = KeyCode.UpArrow;
164+
}
165+
}
166+
158167
// Do not handle Tab: It is used to navigate between elements without mouse
159168
if (keyboardEvent.keyCode === KeyCode.Tab) {
160169
return;
@@ -227,6 +236,15 @@ export class QuickOpenWidget implements IModelProvider {
227236
return;
228237
}
229238

239+
if (platform.isMacintosh) {
240+
if (keyboardEvent.equals(CommonKeybindings.WINCTRL_N)) {
241+
keyboardEvent.keyCode = KeyCode.DownArrow;
242+
}
243+
else if (keyboardEvent.equals(CommonKeybindings.WINCTRL_P)) {
244+
keyboardEvent.keyCode = KeyCode.UpArrow;
245+
}
246+
}
247+
230248
// Support keyboard navigation in quick navigation mode
231249
if (keyboardEvent.keyCode === KeyCode.DownArrow || keyboardEvent.keyCode === KeyCode.UpArrow || keyboardEvent.keyCode === KeyCode.PageDown || keyboardEvent.keyCode === KeyCode.PageUp) {
232250
DOM.EventHelper.stop(e, true);

src/vs/editor/contrib/parameterHints/browser/parameterHints.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ KeybindingsRegistry.registerCommandDesc({
113113
weight,
114114
when: KbExpr.and(KbExpr.has(KEYBINDING_CONTEXT_EDITOR_TEXT_FOCUS), KbExpr.has(Context.Visible), KbExpr.has(Context.MultipleSignatures)),
115115
primary: KeyCode.UpArrow,
116-
secondary: [KeyMod.Alt | KeyCode.UpArrow]
116+
secondary: [KeyMod.Alt | KeyCode.UpArrow],
117+
mac: { primary: KeyCode.UpArrow, secondary: [KeyMod.Alt | KeyCode.UpArrow, KeyMod.WinCtrl | KeyCode.KEY_P] }
117118
});
118119

119120
KeybindingsRegistry.registerCommandDesc({
@@ -122,5 +123,6 @@ KeybindingsRegistry.registerCommandDesc({
122123
weight,
123124
when: KbExpr.and(KbExpr.has(KEYBINDING_CONTEXT_EDITOR_TEXT_FOCUS), KbExpr.has(Context.Visible), KbExpr.has(Context.MultipleSignatures)),
124125
primary: KeyCode.DownArrow,
125-
secondary: [KeyMod.Alt | KeyCode.DownArrow]
126+
secondary: [KeyMod.Alt | KeyCode.DownArrow],
127+
mac: { primary: KeyCode.DownArrow, secondary: [KeyMod.Alt | KeyCode.DownArrow, KeyMod.WinCtrl | KeyCode.KEY_N] }
126128
});

src/vs/editor/contrib/quickFix/browser/quickFix.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,15 +151,15 @@ CommonEditorRegistry.registerEditorCommand('closeQuickFixWidget', weight, { prim
151151
var controller = QuickFixController.getQuickFixController(editor);
152152
controller.closeWidget();
153153
});
154-
CommonEditorRegistry.registerEditorCommand('selectNextQuickFix', weight, { primary: KeyCode.DownArrow }, false, CONTEXT_QUICK_FIX_WIDGET_VISIBLE,(ctx, editor, args) => {
154+
CommonEditorRegistry.registerEditorCommand('selectNextQuickFix', weight, { primary: KeyCode.DownArrow , mac: { primary: KeyCode.DownArrow, secondary: [KeyMod.WinCtrl | KeyCode.KEY_N] } }, false, CONTEXT_QUICK_FIX_WIDGET_VISIBLE,(ctx, editor, args) => {
155155
var controller = QuickFixController.getQuickFixController(editor);
156156
controller.selectNextSuggestion();
157157
});
158158
CommonEditorRegistry.registerEditorCommand('selectNextPageQuickFix', weight, { primary: KeyCode.PageDown }, false, CONTEXT_QUICK_FIX_WIDGET_VISIBLE,(ctx, editor, args) => {
159159
var controller = QuickFixController.getQuickFixController(editor);
160160
controller.selectNextPageSuggestion();
161161
});
162-
CommonEditorRegistry.registerEditorCommand('selectPrevQuickFix', weight, { primary: KeyCode.UpArrow }, false, CONTEXT_QUICK_FIX_WIDGET_VISIBLE,(ctx, editor, args) => {
162+
CommonEditorRegistry.registerEditorCommand('selectPrevQuickFix', weight, { primary: KeyCode.UpArrow , mac: { primary: KeyCode.UpArrow, secondary: [KeyMod.WinCtrl | KeyCode.KEY_P] }}, false, CONTEXT_QUICK_FIX_WIDGET_VISIBLE,(ctx, editor, args) => {
163163
var controller = QuickFixController.getQuickFixController(editor);
164164
controller.selectPrevSuggestion();
165165
});

src/vs/editor/contrib/suggest/browser/suggest.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,8 @@ KeybindingsRegistry.registerCommandDesc({
252252
weight,
253253
when: KbExpr.and(KbExpr.has(KEYBINDING_CONTEXT_EDITOR_TEXT_FOCUS), KbExpr.has(SuggestContext.Visible), KbExpr.has(SuggestContext.MultipleSuggestions)),
254254
primary: KeyCode.DownArrow,
255-
secondary: [KeyMod.Alt | KeyCode.DownArrow]
255+
secondary: [KeyMod.Alt | KeyCode.DownArrow],
256+
mac: { primary: KeyCode.DownArrow, secondary: [KeyMod.Alt | KeyCode.DownArrow, KeyMod.WinCtrl | KeyCode.KEY_N] }
256257
});
257258

258259
KeybindingsRegistry.registerCommandDesc({
@@ -270,7 +271,8 @@ KeybindingsRegistry.registerCommandDesc({
270271
weight,
271272
when: KbExpr.and(KbExpr.has(KEYBINDING_CONTEXT_EDITOR_TEXT_FOCUS), KbExpr.has(SuggestContext.Visible), KbExpr.has(SuggestContext.MultipleSuggestions)),
272273
primary: KeyCode.UpArrow,
273-
secondary: [KeyMod.Alt | KeyCode.UpArrow]
274+
secondary: [KeyMod.Alt | KeyCode.UpArrow],
275+
mac: { primary: KeyCode.UpArrow, secondary: [KeyMod.Alt | KeyCode.UpArrow, KeyMod.WinCtrl | KeyCode.KEY_P] }
274276
});
275277

276278
KeybindingsRegistry.registerCommandDesc({

0 commit comments

Comments
 (0)