Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
5df5c920
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5df5c920
编写于
5月 03, 2017
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplify registrations
上级
e2004c21
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
96 addition
and
102 deletion
+96
-102
src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts
...ench/services/keybinding/common/macLinuxKeyboardMapper.ts
+96
-102
未找到文件。
src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts
浏览文件 @
5df5c920
...
...
@@ -547,6 +547,37 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
this
.
_scanCodeToLabel
=
[];
this
.
_scanCodeToDispatch
=
[];
const
_registerIfUnknown
=
(
hwCtrlKey
:
0
|
1
,
hwShiftKey
:
0
|
1
,
hwAltKey
:
0
|
1
,
scanCode
:
ScanCode
,
kbCtrlKey
:
0
|
1
,
kbShiftKey
:
0
|
1
,
kbAltKey
:
0
|
1
,
keyCode
:
KeyCode
,
):
void
=>
{
this
.
_scanCodeKeyCodeMapper
.
registerIfUnknown
(
new
ScanCodeCombo
(
hwCtrlKey
?
true
:
false
,
hwShiftKey
?
true
:
false
,
hwAltKey
?
true
:
false
,
scanCode
),
new
KeyCodeCombo
(
kbCtrlKey
?
true
:
false
,
kbShiftKey
?
true
:
false
,
kbAltKey
?
true
:
false
,
keyCode
)
);
};
const
_registerAllCombos
=
(
_ctrlKey
:
0
|
1
,
_shiftKey
:
0
|
1
,
_altKey
:
0
|
1
,
scanCode
:
ScanCode
,
keyCode
:
KeyCode
):
void
=>
{
for
(
let
ctrlKey
=
_ctrlKey
;
ctrlKey
<=
1
;
ctrlKey
++
)
{
for
(
let
shiftKey
=
_shiftKey
;
shiftKey
<=
1
;
shiftKey
++
)
{
for
(
let
altKey
=
_altKey
;
altKey
<=
1
;
altKey
++
)
{
_registerIfUnknown
(
ctrlKey
,
shiftKey
,
altKey
,
scanCode
,
ctrlKey
,
shiftKey
,
altKey
,
keyCode
);
}
}
}
};
let
producesLetter
:
boolean
[]
=
[];
const
_registerLetterIfMissing
=
(
charCode
:
CharCode
,
scanCode
:
ScanCode
,
keyCode
:
KeyCode
):
void
=>
{
if
(
!
producesLetter
[
charCode
])
{
_registerAllCombos
(
0
,
0
,
0
,
scanCode
,
keyCode
);
}
};
// Initialize `_scanCodeToLabel`
for
(
let
scanCode
=
ScanCode
.
None
;
scanCode
<
ScanCode
.
MAX_VALUE
;
scanCode
++
)
{
this
.
_scanCodeToLabel
[
scanCode
]
=
null
;
...
...
@@ -561,7 +592,7 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
for
(
let
scanCode
=
ScanCode
.
None
;
scanCode
<
ScanCode
.
MAX_VALUE
;
scanCode
++
)
{
const
keyCode
=
IMMUTABLE_CODE_TO_KEY_CODE
[
scanCode
];
if
(
keyCode
!==
-
1
)
{
this
.
_registerAllCombos
(
0
,
0
,
0
,
scanCode
,
keyCode
);
_registerAllCombos
(
0
,
0
,
0
,
scanCode
,
keyCode
);
this
.
_scanCodeToLabel
[
scanCode
]
=
KeyCodeUtils
.
toString
(
keyCode
);
if
(
keyCode
===
KeyCode
.
Unknown
||
keyCode
===
KeyCode
.
Ctrl
||
keyCode
===
KeyCode
.
Meta
||
keyCode
===
KeyCode
.
Alt
||
keyCode
===
KeyCode
.
Shift
)
{
...
...
@@ -573,7 +604,6 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
}
let
mappings
:
IScanCodeMapping
[]
=
[],
mappingsLen
=
0
;
let
producesLetter
:
boolean
[]
=
[];
for
(
let
strScanCode
in
rawMappings
)
{
if
(
rawMappings
.
hasOwnProperty
(
strScanCode
))
{
const
scanCode
=
ScanCodeUtils
.
toEnum
(
strScanCode
);
...
...
@@ -629,7 +659,6 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
}
const
kb
=
MacLinuxKeyboardMapper
.
_charCodeToKb
(
withShiftAltGr
);
if
(
!
kb
)
{
this
.
_registerAllCombos
(
1
,
1
,
1
,
scanCode
,
KeyCode
.
Unknown
);
continue
;
}
const
kbShiftKey
=
kb
.
shiftKey
;
...
...
@@ -637,10 +666,10 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
if
(
kbShiftKey
)
{
// Ctrl+Shift+Alt+ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => Shift+KeyCode
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => Shift+KeyCode
}
else
{
// Ctrl+Shift+Alt+ScanCode => KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => KeyCode
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => KeyCode
}
}
// Handle all `withAltGr` entries
...
...
@@ -654,7 +683,6 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
}
const
kb
=
MacLinuxKeyboardMapper
.
_charCodeToKb
(
withAltGr
);
if
(
!
kb
)
{
this
.
_registerAllCombos
(
1
,
0
,
1
,
scanCode
,
KeyCode
.
Unknown
);
continue
;
}
const
kbShiftKey
=
kb
.
shiftKey
;
...
...
@@ -662,10 +690,10 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
if
(
kbShiftKey
)
{
// Ctrl+Alt+ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => Shift+KeyCode
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => Shift+KeyCode
}
else
{
// Ctrl+Alt+ScanCode => KeyCode
this
.
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => KeyCode
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// Ctrl+Alt+ScanCode => KeyCode
}
}
// Handle all `withShift` entries
...
...
@@ -679,7 +707,6 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
}
const
kb
=
MacLinuxKeyboardMapper
.
_charCodeToKb
(
withShift
);
if
(
!
kb
)
{
this
.
_registerAllCombos
(
0
,
1
,
0
,
scanCode
,
KeyCode
.
Unknown
);
continue
;
}
const
kbShiftKey
=
kb
.
shiftKey
;
...
...
@@ -687,20 +714,20 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
if
(
kbShiftKey
)
{
// Shift+ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Shift+ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Shift+Alt+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+Shift+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Shift+ScanCode => Shift+KeyCode
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Shift+Alt+KeyCode
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+Shift+KeyCode
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
}
else
{
// Shift+ScanCode => KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// Shift+ScanCode => KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Shift+ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
0
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Alt+KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Shift+Alt+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
0
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+Shift+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
0
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Alt+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// Shift+ScanCode => KeyCode
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Shift+ScanCode => Shift+KeyCode
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
0
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Alt+KeyCode
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Shift+Alt+KeyCode
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
0
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+KeyCode
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+Shift+KeyCode
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
0
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Alt+KeyCode
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
}
}
// Handle all `value` entries
...
...
@@ -709,7 +736,6 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
const
scanCode
=
mapping
.
scanCode
;
const
kb
=
MacLinuxKeyboardMapper
.
_charCodeToKb
(
mapping
.
value
);
if
(
!
kb
)
{
this
.
_registerAllCombos
(
0
,
0
,
0
,
scanCode
,
KeyCode
.
Unknown
);
continue
;
}
const
kbShiftKey
=
kb
.
shiftKey
;
...
...
@@ -717,71 +743,65 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
if
(
kbShiftKey
)
{
// ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
0
,
0
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
0
,
0
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Alt+ScanCode => Shift+Alt+KeyCode
this
.
_registerIfUnknown
(
1
,
0
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+ScanCode => Ctrl+Shift+KeyCode
this
.
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
_registerIfUnknown
(
0
,
0
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// ScanCode => Shift+KeyCode
_registerIfUnknown
(
0
,
0
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Alt+ScanCode => Shift+Alt+KeyCode
_registerIfUnknown
(
1
,
0
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+ScanCode => Ctrl+Shift+KeyCode
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
}
else
{
// ScanCode => KeyCode
this
.
_registerIfUnknown
(
0
,
0
,
0
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// ScanCode => KeyCode
this
.
_registerIfUnknown
(
0
,
0
,
1
,
scanCode
,
0
,
0
,
1
,
keyCode
);
// Alt+ScanCode => Alt+KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Shift+ScanCode => Shift+KeyCode
this
.
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Shift+Alt+KeyCode
this
.
_registerIfUnknown
(
1
,
0
,
0
,
scanCode
,
1
,
0
,
0
,
keyCode
);
// Ctrl+ScanCode => Ctrl+KeyCode
this
.
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
1
,
0
,
1
,
keyCode
);
// Ctrl+Alt+ScanCode => Ctrl+Alt+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+Shift+KeyCode
this
.
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
_registerIfUnknown
(
0
,
0
,
0
,
scanCode
,
0
,
0
,
0
,
keyCode
);
// ScanCode => KeyCode
_registerIfUnknown
(
0
,
0
,
1
,
scanCode
,
0
,
0
,
1
,
keyCode
);
// Alt+ScanCode => Alt+KeyCode
_registerIfUnknown
(
0
,
1
,
0
,
scanCode
,
0
,
1
,
0
,
keyCode
);
// Shift+ScanCode => Shift+KeyCode
_registerIfUnknown
(
0
,
1
,
1
,
scanCode
,
0
,
1
,
1
,
keyCode
);
// Shift+Alt+ScanCode => Shift+Alt+KeyCode
_registerIfUnknown
(
1
,
0
,
0
,
scanCode
,
1
,
0
,
0
,
keyCode
);
// Ctrl+ScanCode => Ctrl+KeyCode
_registerIfUnknown
(
1
,
0
,
1
,
scanCode
,
1
,
0
,
1
,
keyCode
);
// Ctrl+Alt+ScanCode => Ctrl+Alt+KeyCode
_registerIfUnknown
(
1
,
1
,
0
,
scanCode
,
1
,
1
,
0
,
keyCode
);
// Ctrl+Shift+ScanCode => Ctrl+Shift+KeyCode
_registerIfUnknown
(
1
,
1
,
1
,
scanCode
,
1
,
1
,
1
,
keyCode
);
// Ctrl+Shift+Alt+ScanCode => Ctrl+Shift+Alt+KeyCode
}
}
// Handle all left-over available digits
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit1
,
KeyCode
.
KEY_1
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit2
,
KeyCode
.
KEY_2
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit3
,
KeyCode
.
KEY_3
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit4
,
KeyCode
.
KEY_4
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit5
,
KeyCode
.
KEY_5
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit6
,
KeyCode
.
KEY_6
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit7
,
KeyCode
.
KEY_7
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit8
,
KeyCode
.
KEY_8
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit9
,
KeyCode
.
KEY_9
);
this
.
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit0
,
KeyCode
.
KEY_0
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit1
,
KeyCode
.
KEY_1
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit2
,
KeyCode
.
KEY_2
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit3
,
KeyCode
.
KEY_3
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit4
,
KeyCode
.
KEY_4
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit5
,
KeyCode
.
KEY_5
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit6
,
KeyCode
.
KEY_6
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit7
,
KeyCode
.
KEY_7
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit8
,
KeyCode
.
KEY_8
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit9
,
KeyCode
.
KEY_9
);
_registerAllCombos
(
0
,
0
,
0
,
ScanCode
.
Digit0
,
KeyCode
.
KEY_0
);
// Ensure letters are mapped
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
A
,
ScanCode
.
KeyA
,
KeyCode
.
KEY_A
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
B
,
ScanCode
.
KeyB
,
KeyCode
.
KEY_B
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
C
,
ScanCode
.
KeyC
,
KeyCode
.
KEY_C
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
D
,
ScanCode
.
KeyD
,
KeyCode
.
KEY_D
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
E
,
ScanCode
.
KeyE
,
KeyCode
.
KEY_E
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
F
,
ScanCode
.
KeyF
,
KeyCode
.
KEY_F
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
G
,
ScanCode
.
KeyG
,
KeyCode
.
KEY_G
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
H
,
ScanCode
.
KeyH
,
KeyCode
.
KEY_H
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
I
,
ScanCode
.
KeyI
,
KeyCode
.
KEY_I
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
J
,
ScanCode
.
KeyJ
,
KeyCode
.
KEY_J
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
K
,
ScanCode
.
KeyK
,
KeyCode
.
KEY_K
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
L
,
ScanCode
.
KeyL
,
KeyCode
.
KEY_L
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
M
,
ScanCode
.
KeyM
,
KeyCode
.
KEY_M
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
N
,
ScanCode
.
KeyN
,
KeyCode
.
KEY_N
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
O
,
ScanCode
.
KeyO
,
KeyCode
.
KEY_O
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
P
,
ScanCode
.
KeyP
,
KeyCode
.
KEY_P
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
Q
,
ScanCode
.
KeyQ
,
KeyCode
.
KEY_Q
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
R
,
ScanCode
.
KeyR
,
KeyCode
.
KEY_R
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
S
,
ScanCode
.
KeyS
,
KeyCode
.
KEY_S
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
T
,
ScanCode
.
KeyT
,
KeyCode
.
KEY_T
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
U
,
ScanCode
.
KeyU
,
KeyCode
.
KEY_U
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
V
,
ScanCode
.
KeyV
,
KeyCode
.
KEY_V
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
W
,
ScanCode
.
KeyW
,
KeyCode
.
KEY_W
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
X
,
ScanCode
.
KeyX
,
KeyCode
.
KEY_X
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
Y
,
ScanCode
.
KeyY
,
KeyCode
.
KEY_Y
);
this
.
_registerLetterIfMissing
(
producesLetter
,
CharCode
.
Z
,
ScanCode
.
KeyZ
,
KeyCode
.
KEY_Z
);
_registerLetterIfMissing
(
CharCode
.
A
,
ScanCode
.
KeyA
,
KeyCode
.
KEY_A
);
_registerLetterIfMissing
(
CharCode
.
B
,
ScanCode
.
KeyB
,
KeyCode
.
KEY_B
);
_registerLetterIfMissing
(
CharCode
.
C
,
ScanCode
.
KeyC
,
KeyCode
.
KEY_C
);
_registerLetterIfMissing
(
CharCode
.
D
,
ScanCode
.
KeyD
,
KeyCode
.
KEY_D
);
_registerLetterIfMissing
(
CharCode
.
E
,
ScanCode
.
KeyE
,
KeyCode
.
KEY_E
);
_registerLetterIfMissing
(
CharCode
.
F
,
ScanCode
.
KeyF
,
KeyCode
.
KEY_F
);
_registerLetterIfMissing
(
CharCode
.
G
,
ScanCode
.
KeyG
,
KeyCode
.
KEY_G
);
_registerLetterIfMissing
(
CharCode
.
H
,
ScanCode
.
KeyH
,
KeyCode
.
KEY_H
);
_registerLetterIfMissing
(
CharCode
.
I
,
ScanCode
.
KeyI
,
KeyCode
.
KEY_I
);
_registerLetterIfMissing
(
CharCode
.
J
,
ScanCode
.
KeyJ
,
KeyCode
.
KEY_J
);
_registerLetterIfMissing
(
CharCode
.
K
,
ScanCode
.
KeyK
,
KeyCode
.
KEY_K
);
_registerLetterIfMissing
(
CharCode
.
L
,
ScanCode
.
KeyL
,
KeyCode
.
KEY_L
);
_registerLetterIfMissing
(
CharCode
.
M
,
ScanCode
.
KeyM
,
KeyCode
.
KEY_M
);
_registerLetterIfMissing
(
CharCode
.
N
,
ScanCode
.
KeyN
,
KeyCode
.
KEY_N
);
_registerLetterIfMissing
(
CharCode
.
O
,
ScanCode
.
KeyO
,
KeyCode
.
KEY_O
);
_registerLetterIfMissing
(
CharCode
.
P
,
ScanCode
.
KeyP
,
KeyCode
.
KEY_P
);
_registerLetterIfMissing
(
CharCode
.
Q
,
ScanCode
.
KeyQ
,
KeyCode
.
KEY_Q
);
_registerLetterIfMissing
(
CharCode
.
R
,
ScanCode
.
KeyR
,
KeyCode
.
KEY_R
);
_registerLetterIfMissing
(
CharCode
.
S
,
ScanCode
.
KeyS
,
KeyCode
.
KEY_S
);
_registerLetterIfMissing
(
CharCode
.
T
,
ScanCode
.
KeyT
,
KeyCode
.
KEY_T
);
_registerLetterIfMissing
(
CharCode
.
U
,
ScanCode
.
KeyU
,
KeyCode
.
KEY_U
);
_registerLetterIfMissing
(
CharCode
.
V
,
ScanCode
.
KeyV
,
KeyCode
.
KEY_V
);
_registerLetterIfMissing
(
CharCode
.
W
,
ScanCode
.
KeyW
,
KeyCode
.
KEY_W
);
_registerLetterIfMissing
(
CharCode
.
X
,
ScanCode
.
KeyX
,
KeyCode
.
KEY_X
);
_registerLetterIfMissing
(
CharCode
.
Y
,
ScanCode
.
KeyY
,
KeyCode
.
KEY_Y
);
_registerLetterIfMissing
(
CharCode
.
Z
,
ScanCode
.
KeyZ
,
KeyCode
.
KEY_Z
);
this
.
_scanCodeKeyCodeMapper
.
registrationComplete
();
}
private
_registerLetterIfMissing
(
producesLetter
:
boolean
[],
charCode
:
CharCode
,
scanCode
:
ScanCode
,
keyCode
:
KeyCode
):
void
{
if
(
!
producesLetter
[
charCode
])
{
this
.
_registerAllCombos
(
0
,
0
,
0
,
scanCode
,
keyCode
);
}
}
public
dumpDebugInfo
():
string
{
let
result
:
string
[]
=
[];
...
...
@@ -884,32 +904,6 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
return
str
;
}
private
_registerIfUnknown
(
hwCtrlKey
:
0
|
1
,
hwShiftKey
:
0
|
1
,
hwAltKey
:
0
|
1
,
scanCode
:
ScanCode
,
kbCtrlKey
:
0
|
1
,
kbShiftKey
:
0
|
1
,
kbAltKey
:
0
|
1
,
keyCode
:
KeyCode
,
):
void
{
this
.
_scanCodeKeyCodeMapper
.
registerIfUnknown
(
new
ScanCodeCombo
(
hwCtrlKey
?
true
:
false
,
hwShiftKey
?
true
:
false
,
hwAltKey
?
true
:
false
,
scanCode
),
new
KeyCodeCombo
(
kbCtrlKey
?
true
:
false
,
kbShiftKey
?
true
:
false
,
kbAltKey
?
true
:
false
,
keyCode
)
);
}
private
_registerAllCombos
(
_ctrlKey
:
0
|
1
,
_shiftKey
:
0
|
1
,
_altKey
:
0
|
1
,
scanCode
:
ScanCode
,
keyCode
:
KeyCode
,
):
void
{
for
(
let
ctrlKey
=
_ctrlKey
;
ctrlKey
<=
1
;
ctrlKey
++
)
{
for
(
let
shiftKey
=
_shiftKey
;
shiftKey
<=
1
;
shiftKey
++
)
{
for
(
let
altKey
=
_altKey
;
altKey
<=
1
;
altKey
++
)
{
this
.
_registerIfUnknown
(
ctrlKey
,
shiftKey
,
altKey
,
scanCode
,
ctrlKey
,
shiftKey
,
altKey
,
keyCode
);
}
}
}
}
public
simpleKeybindingToScanCodeBinding
(
keybinding
:
SimpleKeybinding
):
ScanCodeBinding
[]
{
// Avoid double Enter bindings (both ScanCode.NumpadEnter and ScanCode.Enter point to KeyCode.Enter)
if
(
keybinding
.
keyCode
===
KeyCode
.
Enter
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录