@codingame/monaco-vscode-keybindings-service-override 9.0.2 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/keybindings.js +8 -2
- package/package.json +3 -3
- package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +11 -16
- package/vscode/src/vs/workbench/browser/contextkeys.js +16 -16
- package/vscode/src/vs/workbench/contrib/commands/common/commands.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/preferences/common/smartSnippetInserter.js +11 -11
- package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +134 -188
- package/vscode/src/vs/workbench/services/commands/common/commandService.js +0 -1
- package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +73 -75
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +6 -7
- package/vscode/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +178 -175
- package/vscode/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +68 -70
|
@@ -5,7 +5,6 @@ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extension
|
|
|
5
5
|
import { Emitter, Event } from 'vscode/vscode/vs/base/common/event';
|
|
6
6
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
7
7
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
8
|
-
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
9
8
|
import { timeout } from 'vscode/vscode/vs/base/common/async';
|
|
10
9
|
|
|
11
10
|
let CommandService = class CommandService extends Disposable {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { onDidChangeFullscreen, isFullscreen } from 'vscode/vscode/vs/base/browser/browser';
|
|
4
|
-
import { BrowserFeatures
|
|
4
|
+
import { BrowserFeatures } from 'vscode/vscode/vs/base/browser/canIUse';
|
|
5
5
|
import { onDidRegisterWindow, addDisposableListener, EventType, trackFocus, getWindow } from 'vscode/vscode/vs/base/browser/dom';
|
|
6
6
|
import { StandardKeyboardEvent, printKeyboardEvent, printStandardKeyboardEvent } from 'vscode/vscode/vs/base/browser/keyboardEvent';
|
|
7
7
|
import { DeferredPromise, RunOnceScheduler } from 'vscode/vscode/vs/base/common/async';
|
|
@@ -10,10 +10,10 @@ import { parse } from 'vscode/vscode/vs/base/common/json';
|
|
|
10
10
|
import { UserSettingsLabelProvider } from 'vscode/vscode/vs/base/common/keybindingLabels';
|
|
11
11
|
import { KeybindingParser } from 'vscode/vscode/vs/base/common/keybindingParser';
|
|
12
12
|
import { KeyCodeChord, ScanCodeChord } from 'vscode/vscode/vs/base/common/keybindings';
|
|
13
|
-
import {
|
|
13
|
+
import { KeyCodeUtils, ScanCodeUtils, IMMUTABLE_CODE_TO_KEY_CODE } from 'vscode/vscode/vs/base/common/keyCodes';
|
|
14
14
|
import { DisposableStore, Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
15
15
|
import { equals } from 'vscode/vscode/vs/base/common/objects';
|
|
16
|
-
import { OS,
|
|
16
|
+
import { OS, isMacintosh } from 'vscode/vscode/vs/base/common/platform';
|
|
17
17
|
import { dirname } from 'vscode/vscode/vs/base/common/resources';
|
|
18
18
|
import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
19
19
|
import { MenuRegistry } from 'vscode/vscode/vs/platform/actions/common/actions';
|
|
@@ -21,14 +21,12 @@ import { CommandsRegistry } from 'vscode/vscode/vs/platform/commands/common/comm
|
|
|
21
21
|
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
22
22
|
import { ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
23
23
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
24
|
-
import { FileOperation } from 'vscode/vscode/vs/platform/files/common/files';
|
|
25
24
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
26
|
-
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
27
25
|
import { Extensions } from 'vscode/vscode/vs/platform/jsonschemas/common/jsonContributionRegistry';
|
|
28
26
|
import { AbstractKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/abstractKeybindingService';
|
|
29
27
|
import 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
30
28
|
import { KeybindingResolver } from 'vscode/vscode/vs/platform/keybinding/common/keybindingResolver';
|
|
31
|
-
import { KeybindingsRegistry
|
|
29
|
+
import { KeybindingsRegistry } from 'vscode/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
32
30
|
import { ResolvedKeybindingItem } from 'vscode/vscode/vs/platform/keybinding/common/resolvedKeybindingItem';
|
|
33
31
|
import { IKeyboardLayoutService } from 'vscode/vscode/vs/platform/keyboardLayout/common/keyboardLayout.service';
|
|
34
32
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
@@ -48,35 +46,35 @@ import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/use
|
|
|
48
46
|
var WorkbenchKeybindingService_1;
|
|
49
47
|
function isValidContributedKeyBinding(keyBinding, rejects) {
|
|
50
48
|
if (!keyBinding) {
|
|
51
|
-
rejects.push(( localize(
|
|
49
|
+
rejects.push(( localize(3537, "expected non-empty value.")));
|
|
52
50
|
return false;
|
|
53
51
|
}
|
|
54
52
|
if (typeof keyBinding.command !== 'string') {
|
|
55
53
|
rejects.push(( localize(
|
|
56
|
-
|
|
54
|
+
3538,
|
|
57
55
|
"property `{0}` is mandatory and must be of type `string`",
|
|
58
56
|
'command'
|
|
59
57
|
)));
|
|
60
58
|
return false;
|
|
61
59
|
}
|
|
62
60
|
if (keyBinding.key && typeof keyBinding.key !== 'string') {
|
|
63
|
-
rejects.push(( localize(
|
|
61
|
+
rejects.push(( localize(3539, "property `{0}` can be omitted or must be of type `string`", 'key')));
|
|
64
62
|
return false;
|
|
65
63
|
}
|
|
66
64
|
if (keyBinding.when && typeof keyBinding.when !== 'string') {
|
|
67
|
-
rejects.push(( localize(
|
|
65
|
+
rejects.push(( localize(3539, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
68
66
|
return false;
|
|
69
67
|
}
|
|
70
68
|
if (keyBinding.mac && typeof keyBinding.mac !== 'string') {
|
|
71
|
-
rejects.push(( localize(
|
|
69
|
+
rejects.push(( localize(3539, "property `{0}` can be omitted or must be of type `string`", 'mac')));
|
|
72
70
|
return false;
|
|
73
71
|
}
|
|
74
72
|
if (keyBinding.linux && typeof keyBinding.linux !== 'string') {
|
|
75
|
-
rejects.push(( localize(
|
|
73
|
+
rejects.push(( localize(3539, "property `{0}` can be omitted or must be of type `string`", 'linux')));
|
|
76
74
|
return false;
|
|
77
75
|
}
|
|
78
76
|
if (keyBinding.win && typeof keyBinding.win !== 'string') {
|
|
79
|
-
rejects.push(( localize(
|
|
77
|
+
rejects.push(( localize(3539, "property `{0}` can be omitted or must be of type `string`", 'win')));
|
|
80
78
|
return false;
|
|
81
79
|
}
|
|
82
80
|
return true;
|
|
@@ -86,33 +84,33 @@ const keybindingType = {
|
|
|
86
84
|
default: { command: '', key: '' },
|
|
87
85
|
properties: {
|
|
88
86
|
command: {
|
|
89
|
-
description: ( localize(
|
|
87
|
+
description: ( localize(3540, 'Identifier of the command to run when keybinding is triggered.')),
|
|
90
88
|
type: 'string'
|
|
91
89
|
},
|
|
92
90
|
args: {
|
|
93
|
-
description: ( localize(
|
|
91
|
+
description: ( localize(3541, "Arguments to pass to the command to execute."))
|
|
94
92
|
},
|
|
95
93
|
key: {
|
|
96
94
|
description: ( localize(
|
|
97
|
-
|
|
95
|
+
3542,
|
|
98
96
|
'Key or key sequence (separate keys with plus-sign and sequences with space, e.g. Ctrl+O and Ctrl+L L for a chord).'
|
|
99
97
|
)),
|
|
100
98
|
type: 'string'
|
|
101
99
|
},
|
|
102
100
|
mac: {
|
|
103
|
-
description: ( localize(
|
|
101
|
+
description: ( localize(3543, 'Mac specific key or key sequence.')),
|
|
104
102
|
type: 'string'
|
|
105
103
|
},
|
|
106
104
|
linux: {
|
|
107
|
-
description: ( localize(
|
|
105
|
+
description: ( localize(3544, 'Linux specific key or key sequence.')),
|
|
108
106
|
type: 'string'
|
|
109
107
|
},
|
|
110
108
|
win: {
|
|
111
|
-
description: ( localize(
|
|
109
|
+
description: ( localize(3545, 'Windows specific key or key sequence.')),
|
|
112
110
|
type: 'string'
|
|
113
111
|
},
|
|
114
112
|
when: {
|
|
115
|
-
description: ( localize(
|
|
113
|
+
description: ( localize(3546, 'Condition when the key is active.')),
|
|
116
114
|
type: 'string'
|
|
117
115
|
},
|
|
118
116
|
}
|
|
@@ -121,7 +119,7 @@ const keybindingsExtPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
121
119
|
extensionPoint: 'keybindings',
|
|
122
120
|
deps: [commandsExtensionPoint],
|
|
123
121
|
jsonSchema: {
|
|
124
|
-
description: ( localize(
|
|
122
|
+
description: ( localize(3547, "Contributes keybindings.")),
|
|
125
123
|
oneOf: [
|
|
126
124
|
keybindingType,
|
|
127
125
|
{
|
|
@@ -132,33 +130,33 @@ const keybindingsExtPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
132
130
|
}
|
|
133
131
|
});
|
|
134
132
|
const NUMPAD_PRINTABLE_SCANCODES = [
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
133
|
+
90 ,
|
|
134
|
+
91 ,
|
|
135
|
+
92 ,
|
|
136
|
+
93 ,
|
|
137
|
+
95 ,
|
|
138
|
+
96 ,
|
|
139
|
+
97 ,
|
|
140
|
+
98 ,
|
|
141
|
+
99 ,
|
|
142
|
+
100 ,
|
|
143
|
+
101 ,
|
|
144
|
+
102 ,
|
|
145
|
+
103 ,
|
|
146
|
+
104 ,
|
|
147
|
+
105
|
|
150
148
|
];
|
|
151
149
|
const otherMacNumpadMapping = ( (new Map()));
|
|
152
|
-
otherMacNumpadMapping.set(
|
|
153
|
-
otherMacNumpadMapping.set(
|
|
154
|
-
otherMacNumpadMapping.set(
|
|
155
|
-
otherMacNumpadMapping.set(
|
|
156
|
-
otherMacNumpadMapping.set(
|
|
157
|
-
otherMacNumpadMapping.set(
|
|
158
|
-
otherMacNumpadMapping.set(
|
|
159
|
-
otherMacNumpadMapping.set(
|
|
160
|
-
otherMacNumpadMapping.set(
|
|
161
|
-
otherMacNumpadMapping.set(
|
|
150
|
+
otherMacNumpadMapping.set(95 , 22 );
|
|
151
|
+
otherMacNumpadMapping.set(96 , 23 );
|
|
152
|
+
otherMacNumpadMapping.set(97 , 24 );
|
|
153
|
+
otherMacNumpadMapping.set(98 , 25 );
|
|
154
|
+
otherMacNumpadMapping.set(99 , 26 );
|
|
155
|
+
otherMacNumpadMapping.set(100 , 27 );
|
|
156
|
+
otherMacNumpadMapping.set(101 , 28 );
|
|
157
|
+
otherMacNumpadMapping.set(102 , 29 );
|
|
158
|
+
otherMacNumpadMapping.set(103 , 30 );
|
|
159
|
+
otherMacNumpadMapping.set(104 , 21 );
|
|
162
160
|
let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchKeybindingService extends AbstractKeybindingService {
|
|
163
161
|
constructor(contextKeyService, commandService, telemetryService, notificationService, userDataProfileService, hostService, extensionService, fileService, uriIdentityService, logService, keyboardLayoutService) {
|
|
164
162
|
super(contextKeyService, commandService, telemetryService, notificationService, logService);
|
|
@@ -201,7 +199,7 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
201
199
|
return;
|
|
202
200
|
}
|
|
203
201
|
const keyboard = navigator.keyboard;
|
|
204
|
-
if (BrowserFeatures.keyboard ===
|
|
202
|
+
if (BrowserFeatures.keyboard === 2 ) {
|
|
205
203
|
return;
|
|
206
204
|
}
|
|
207
205
|
if (isFullscreen(mainWindow)) {
|
|
@@ -430,43 +428,43 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
430
428
|
return result;
|
|
431
429
|
}
|
|
432
430
|
_assertBrowserConflicts(keybinding) {
|
|
433
|
-
if (BrowserFeatures.keyboard ===
|
|
431
|
+
if (BrowserFeatures.keyboard === 0 ) {
|
|
434
432
|
return false;
|
|
435
433
|
}
|
|
436
|
-
if (BrowserFeatures.keyboard ===
|
|
434
|
+
if (BrowserFeatures.keyboard === 1 && isFullscreen(mainWindow)) {
|
|
437
435
|
return false;
|
|
438
436
|
}
|
|
439
437
|
for (const chord of keybinding.chords) {
|
|
440
438
|
if (!chord.metaKey && !chord.altKey && !chord.ctrlKey && !chord.shiftKey) {
|
|
441
439
|
continue;
|
|
442
440
|
}
|
|
443
|
-
const modifiersMask =
|
|
441
|
+
const modifiersMask = 2048 | 512 | 1024 ;
|
|
444
442
|
let partModifiersMask = 0;
|
|
445
443
|
if (chord.metaKey) {
|
|
446
|
-
partModifiersMask |=
|
|
444
|
+
partModifiersMask |= 2048 ;
|
|
447
445
|
}
|
|
448
446
|
if (chord.shiftKey) {
|
|
449
|
-
partModifiersMask |=
|
|
447
|
+
partModifiersMask |= 1024 ;
|
|
450
448
|
}
|
|
451
449
|
if (chord.altKey) {
|
|
452
|
-
partModifiersMask |=
|
|
450
|
+
partModifiersMask |= 512 ;
|
|
453
451
|
}
|
|
454
|
-
if (chord.ctrlKey && OS ===
|
|
455
|
-
partModifiersMask |=
|
|
452
|
+
if (chord.ctrlKey && OS === 2 ) {
|
|
453
|
+
partModifiersMask |= 256 ;
|
|
456
454
|
}
|
|
457
|
-
if ((partModifiersMask & modifiersMask) === (
|
|
458
|
-
if (chord instanceof ScanCodeChord && (chord.scanCode ===
|
|
455
|
+
if ((partModifiersMask & modifiersMask) === ((2048 | 512) )) {
|
|
456
|
+
if (chord instanceof ScanCodeChord && ((chord.scanCode === 86 || chord.scanCode === 85) )) {
|
|
459
457
|
return true;
|
|
460
458
|
}
|
|
461
|
-
if (chord instanceof KeyCodeChord && (chord.keyCode ===
|
|
459
|
+
if (chord instanceof KeyCodeChord && ((chord.keyCode === 15 || chord.keyCode === 17) )) {
|
|
462
460
|
return true;
|
|
463
461
|
}
|
|
464
462
|
}
|
|
465
|
-
if ((partModifiersMask & modifiersMask) ===
|
|
466
|
-
if (chord instanceof ScanCodeChord && (chord.scanCode >=
|
|
463
|
+
if ((partModifiersMask & modifiersMask) === 2048 ) {
|
|
464
|
+
if (chord instanceof ScanCodeChord && ((chord.scanCode >= 36 && chord.scanCode <= 45) )) {
|
|
467
465
|
return true;
|
|
468
466
|
}
|
|
469
|
-
if (chord instanceof KeyCodeChord && (chord.keyCode >=
|
|
467
|
+
if (chord instanceof KeyCodeChord && ((chord.keyCode >= 21 && chord.keyCode <= 30) )) {
|
|
470
468
|
return true;
|
|
471
469
|
}
|
|
472
470
|
}
|
|
@@ -504,7 +502,7 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
504
502
|
}
|
|
505
503
|
if (rejects.length > 0) {
|
|
506
504
|
collector.error(( localize(
|
|
507
|
-
|
|
505
|
+
3548,
|
|
508
506
|
"Invalid `contributes.{0}`: {1}",
|
|
509
507
|
keybindingsExtPoint.name,
|
|
510
508
|
rejects.join('\n')
|
|
@@ -512,12 +510,12 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
512
510
|
}
|
|
513
511
|
}
|
|
514
512
|
static bindToCurrentPlatform(key, mac, linux, win) {
|
|
515
|
-
if (OS ===
|
|
513
|
+
if (OS === 1 && win) {
|
|
516
514
|
if (win) {
|
|
517
515
|
return win;
|
|
518
516
|
}
|
|
519
517
|
}
|
|
520
|
-
else if (OS ===
|
|
518
|
+
else if (OS === 2 ) {
|
|
521
519
|
if (mac) {
|
|
522
520
|
return mac;
|
|
523
521
|
}
|
|
@@ -537,10 +535,10 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
537
535
|
}
|
|
538
536
|
let weight;
|
|
539
537
|
if (isBuiltin) {
|
|
540
|
-
weight =
|
|
538
|
+
weight = 300 + idx;
|
|
541
539
|
}
|
|
542
540
|
else {
|
|
543
|
-
weight =
|
|
541
|
+
weight = 400 + idx;
|
|
544
542
|
}
|
|
545
543
|
const commandAction = MenuRegistry.getCommand(command);
|
|
546
544
|
const precondition = commandAction && commandAction.precondition;
|
|
@@ -594,7 +592,7 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
594
592
|
static _getAllCommandsAsComment(boundCommands) {
|
|
595
593
|
const unboundCommands = getAllUnboundCommands(boundCommands);
|
|
596
594
|
const pretty = unboundCommands.sort().join('\n// - ');
|
|
597
|
-
return '// ' + ( localize(
|
|
595
|
+
return '// ' + ( localize(3549, "Here are other available commands: ")) + '\n// - ' + pretty;
|
|
598
596
|
}
|
|
599
597
|
mightProducePrintableCharacter(event) {
|
|
600
598
|
if (event.ctrlKey || event.metaKey || event.altKey) {
|
|
@@ -664,7 +662,7 @@ class UserKeybindings extends Disposable {
|
|
|
664
662
|
this.reloadConfigurationScheduler.schedule();
|
|
665
663
|
}));
|
|
666
664
|
this._register(this.fileService.onDidRunOperation((e) => {
|
|
667
|
-
if (e.operation ===
|
|
665
|
+
if (e.operation === 4 && ( (e.resource.toString())) === ( (this.userDataProfileService.currentProfile.keybindingsResource.toString()))) {
|
|
668
666
|
logService.debug('Keybindings file written');
|
|
669
667
|
this.reloadConfigurationScheduler.schedule();
|
|
670
668
|
}
|
|
@@ -719,7 +717,7 @@ class KeybindingsJsonSchema {
|
|
|
719
717
|
this.schema = {
|
|
720
718
|
id: KeybindingsJsonSchema.schemaId,
|
|
721
719
|
type: 'array',
|
|
722
|
-
title: ( localize(
|
|
720
|
+
title: ( localize(3550, "Keybindings configuration")),
|
|
723
721
|
allowTrailingCommas: true,
|
|
724
722
|
allowComments: true,
|
|
725
723
|
definitions: {
|
|
@@ -743,7 +741,7 @@ class KeybindingsJsonSchema {
|
|
|
743
741
|
'type': 'string',
|
|
744
742
|
'enum': this.commandsEnum,
|
|
745
743
|
'enumDescriptions': this.commandsEnumDescriptions,
|
|
746
|
-
'description': ( localize(
|
|
744
|
+
'description': ( localize(3551, "Name of the command to execute")),
|
|
747
745
|
},
|
|
748
746
|
'commandType': {
|
|
749
747
|
'anyOf': [
|
|
@@ -754,7 +752,7 @@ class KeybindingsJsonSchema {
|
|
|
754
752
|
'type': 'string',
|
|
755
753
|
'enum': this.removalCommandsEnum,
|
|
756
754
|
'enumDescriptions': this.commandsEnumDescriptions,
|
|
757
|
-
'description': ( localize(
|
|
755
|
+
'description': ( localize(3552, "Name of the command to remove keyboard shortcut for")),
|
|
758
756
|
},
|
|
759
757
|
{
|
|
760
758
|
'type': 'string'
|
|
@@ -772,7 +770,7 @@ class KeybindingsJsonSchema {
|
|
|
772
770
|
'properties': {
|
|
773
771
|
'key': {
|
|
774
772
|
'type': 'string',
|
|
775
|
-
'description': ( localize(
|
|
773
|
+
'description': ( localize(3553, "Key or key sequence (separated by space)")),
|
|
776
774
|
},
|
|
777
775
|
'command': {
|
|
778
776
|
'anyOf': [
|
|
@@ -785,7 +783,7 @@ class KeybindingsJsonSchema {
|
|
|
785
783
|
'type': 'array'
|
|
786
784
|
},
|
|
787
785
|
'errorMessage': ( localize(
|
|
788
|
-
|
|
786
|
+
3554,
|
|
789
787
|
"Incorrect type. Expected \"{0}\". The field 'command' does not support running multiple commands. Use command 'runCommands' to pass it multiple commands to run.",
|
|
790
788
|
'string'
|
|
791
789
|
))
|
|
@@ -801,10 +799,10 @@ class KeybindingsJsonSchema {
|
|
|
801
799
|
},
|
|
802
800
|
'when': {
|
|
803
801
|
'type': 'string',
|
|
804
|
-
'description': ( localize(
|
|
802
|
+
'description': ( localize(3555, "Condition when the key is active."))
|
|
805
803
|
},
|
|
806
804
|
'args': {
|
|
807
|
-
'description': ( localize(
|
|
805
|
+
'description': ( localize(3556, "Arguments to pass to the command to execute."))
|
|
808
806
|
}
|
|
809
807
|
},
|
|
810
808
|
'$ref': '#/definitions/commandsSchemas'
|
|
@@ -3,10 +3,9 @@ import { localize } from 'vscode/vscode/vs/nls';
|
|
|
3
3
|
import { Emitter, Event } from 'vscode/vscode/vs/base/common/event';
|
|
4
4
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
5
5
|
import { KeymapInfo } from '../common/keymapInfo.js';
|
|
6
|
-
import '
|
|
7
|
-
import { readKeyboardConfig, DispatchConfig } from '../../../../platform/keyboardLayout/common/keyboardConfig.js';
|
|
6
|
+
import { readKeyboardConfig } from '../../../../platform/keyboardLayout/common/keyboardConfig.js';
|
|
8
7
|
import { CachedKeyboardMapper } from '../../../../platform/keyboardLayout/common/keyboardMapper.js';
|
|
9
|
-
import { OS,
|
|
8
|
+
import { OS, isWindows, isMacintosh } from 'vscode/vscode/vs/base/common/platform';
|
|
10
9
|
import { WindowsKeyboardMapper } from '../common/windowsKeyboardMapper.js';
|
|
11
10
|
import { FallbackKeyboardMapper } from 'vscode/vscode/vs/workbench/services/keybinding/common/fallbackKeyboardMapper';
|
|
12
11
|
import { MacLinuxKeyboardMapper } from '../common/macLinuxKeyboardMapper.js';
|
|
@@ -206,7 +205,7 @@ class BrowserKeyboardMapperFactoryBase extends Disposable {
|
|
|
206
205
|
}
|
|
207
206
|
getKeyboardMapper() {
|
|
208
207
|
const config = readKeyboardConfig(this._configurationService);
|
|
209
|
-
if (config.dispatch ===
|
|
208
|
+
if (config.dispatch === 1 || !this._initialized || !this._activeKeymapInfo) {
|
|
210
209
|
return (
|
|
211
210
|
(new FallbackKeyboardMapper(config.mapAltGrToCtrlAlt, OS))
|
|
212
211
|
);
|
|
@@ -242,7 +241,7 @@ class BrowserKeyboardMapperFactoryBase extends Disposable {
|
|
|
242
241
|
static _createKeyboardMapper(keymapInfo, mapAltGrToCtrlAlt) {
|
|
243
242
|
const rawMapping = keymapInfo.mapping;
|
|
244
243
|
const isUSStandard = !!keymapInfo.layout.isUSStandard;
|
|
245
|
-
if (OS ===
|
|
244
|
+
if (OS === 1 ) {
|
|
246
245
|
return (
|
|
247
246
|
(new WindowsKeyboardMapper(isUSStandard, rawMapping, mapAltGrToCtrlAlt))
|
|
248
247
|
);
|
|
@@ -492,12 +491,12 @@ const keyboardConfiguration = {
|
|
|
492
491
|
'id': 'keyboard',
|
|
493
492
|
'order': 15,
|
|
494
493
|
'type': 'object',
|
|
495
|
-
'title': ( localize(
|
|
494
|
+
'title': ( localize(3557, "Keyboard")),
|
|
496
495
|
'properties': {
|
|
497
496
|
'keyboard.layout': {
|
|
498
497
|
'type': 'string',
|
|
499
498
|
'default': 'autodetect',
|
|
500
|
-
'description': ( localize(
|
|
499
|
+
'description': ( localize(3558, "Control the keyboard layout used in web."))
|
|
501
500
|
}
|
|
502
501
|
}
|
|
503
502
|
};
|