Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
dda7717d
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dda7717d
编写于
3月 20, 2017
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/master'
上级
b1f31342
8dc5a60d
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
665 addition
and
35 deletion
+665
-35
src/vs/workbench/parts/terminal/common/terminal.ts
src/vs/workbench/parts/terminal/common/terminal.ts
+1
-0
src/vs/workbench/parts/terminal/electron-browser/media/terminal.css
...kbench/parts/terminal/electron-browser/media/terminal.css
+5
-0
src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts
.../parts/terminal/electron-browser/terminal.contribution.ts
+5
-0
src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts
...orkbench/parts/terminal/electron-browser/terminalPanel.ts
+1
-0
src/vs/workbench/services/keybinding/common/keyboardEventCode.ts
...workbench/services/keybinding/common/keyboardEventCode.ts
+9
-9
src/vs/workbench/services/keybinding/common/keyboardMapper.ts
...vs/workbench/services/keybinding/common/keyboardMapper.ts
+2
-0
src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts
...ench/services/keybinding/common/macLinuxKeyboardMapper.ts
+6
-7
src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts
...bench/services/keybinding/common/windowsKeyboardMapper.ts
+7
-0
src/vs/workbench/services/keybinding/test/keyboardMapperTestUtils.ts
...bench/services/keybinding/test/keyboardMapperTestUtils.ts
+24
-16
src/vs/workbench/services/keybinding/test/macLinuxKeyboardMapper.test.ts
...h/services/keybinding/test/macLinuxKeyboardMapper.test.ts
+504
-2
src/vs/workbench/services/keybinding/test/windowsKeyboardMapper.test.ts
...ch/services/keybinding/test/windowsKeyboardMapper.test.ts
+101
-1
未找到文件。
src/vs/workbench/parts/terminal/common/terminal.ts
浏览文件 @
dda7717d
...
...
@@ -46,6 +46,7 @@ export interface ITerminalConfiguration {
osx
:
string
[];
windows
:
string
[];
};
enableBold
:
boolean
;
rightClickCopyPaste
:
boolean
;
cursorBlinking
:
boolean
;
cursorStyle
:
string
;
...
...
src/vs/workbench/parts/terminal/electron-browser/media/terminal.css
浏览文件 @
dda7717d
...
...
@@ -58,6 +58,11 @@
font-variant-ligatures
:
normal
;
}
.monaco-workbench
.panel.integrated-terminal.disable-bold
.xterm-bold
{
font-weight
:
normal
!important
;
}
/* Terminal actions */
/* Light theme */
...
...
src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts
浏览文件 @
dda7717d
...
...
@@ -106,6 +106,11 @@ configurationRegistry.registerConfiguration({
'
type
'
:
'
number
'
,
'
default
'
:
1.2
},
'
terminal.integrated.enableBold
'
:
{
'
type
'
:
'
boolean
'
,
'
description
'
:
nls
.
localize
(
'
terminal.integrated.enableBold
'
,
"
Whether to enable bold text within the terminal.
"
),
'
default
'
:
true
},
'
terminal.integrated.cursorBlinking
'
:
{
'
description
'
:
nls
.
localize
(
'
terminal.integrated.cursorBlinking
'
,
"
Controls whether the terminal cursor blinks.
"
),
'
type
'
:
'
boolean
'
,
...
...
src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts
浏览文件 @
dda7717d
...
...
@@ -230,6 +230,7 @@ export class TerminalPanel extends Panel {
}
let
newFont
=
this
.
_terminalService
.
configHelper
.
getFont
();
DOM
.
toggleClass
(
this
.
_parentDomElement
,
'
enable-ligatures
'
,
this
.
_terminalService
.
configHelper
.
config
.
fontLigatures
);
DOM
.
toggleClass
(
this
.
_parentDomElement
,
'
disable-bold
'
,
!
this
.
_terminalService
.
configHelper
.
config
.
enableBold
);
if
(
!
this
.
_font
||
this
.
_fontsDiffer
(
this
.
_font
,
newFont
))
{
this
.
_fontStyleElement
.
innerHTML
=
'
.monaco-workbench .panel.integrated-terminal .xterm {
'
+
`font-family:
${
newFont
.
fontFamily
}
;`
+
...
...
src/vs/workbench/services/keybinding/common/keyboardEventCode.ts
浏览文件 @
dda7717d
...
...
@@ -525,7 +525,7 @@ export const IMMUTABLE_CODE_TO_KEY_CODE: KeyCode[] = [];
define
(
KeyboardEventCode
.
NumpadMultiply
,
KeyCode
.
NUMPAD_MULTIPLY
);
define
(
KeyboardEventCode
.
NumpadSubtract
,
KeyCode
.
NUMPAD_SUBTRACT
);
define
(
KeyboardEventCode
.
NumpadAdd
,
KeyCode
.
NUMPAD_ADD
);
define
(
KeyboardEventCode
.
NumpadEnter
,
KeyCode
.
Enter
);
//
TODO
define
(
KeyboardEventCode
.
NumpadEnter
,
KeyCode
.
Enter
);
//
Duplicate
define
(
KeyboardEventCode
.
Numpad1
,
KeyCode
.
NUMPAD_1
);
define
(
KeyboardEventCode
.
Numpad2
,
KeyCode
.
NUMPAD_2
);
define
(
KeyboardEventCode
.
Numpad3
,
KeyCode
.
NUMPAD_3
);
...
...
@@ -588,14 +588,14 @@ export const IMMUTABLE_CODE_TO_KEY_CODE: KeyCode[] = [];
define
(
KeyboardEventCode
.
NumpadMemorySubtract
,
KeyCode
.
Unknown
);
define
(
KeyboardEventCode
.
NumpadClear
,
KeyCode
.
Unknown
);
define
(
KeyboardEventCode
.
NumpadClearEntry
,
KeyCode
.
Unknown
);
define
(
KeyboardEventCode
.
ControlLeft
,
KeyCode
.
Ctrl
);
//
TODO
define
(
KeyboardEventCode
.
ShiftLeft
,
KeyCode
.
Shift
);
//
TODO
define
(
KeyboardEventCode
.
AltLeft
,
KeyCode
.
Alt
);
//
TODO
define
(
KeyboardEventCode
.
MetaLeft
,
KeyCode
.
Meta
);
//
TODO
define
(
KeyboardEventCode
.
ControlRight
,
KeyCode
.
Ctrl
);
//
TODO
define
(
KeyboardEventCode
.
ShiftRight
,
KeyCode
.
Shift
);
//
TODO
define
(
KeyboardEventCode
.
AltRight
,
KeyCode
.
Alt
);
//
TODO
define
(
KeyboardEventCode
.
MetaRight
,
KeyCode
.
Meta
);
//
TODO
define
(
KeyboardEventCode
.
ControlLeft
,
KeyCode
.
Ctrl
);
//
Duplicate
define
(
KeyboardEventCode
.
ShiftLeft
,
KeyCode
.
Shift
);
//
Duplicate
define
(
KeyboardEventCode
.
AltLeft
,
KeyCode
.
Alt
);
//
Duplicate
define
(
KeyboardEventCode
.
MetaLeft
,
KeyCode
.
Meta
);
//
Duplicate
define
(
KeyboardEventCode
.
ControlRight
,
KeyCode
.
Ctrl
);
//
Duplicate
define
(
KeyboardEventCode
.
ShiftRight
,
KeyCode
.
Shift
);
//
Duplicate
define
(
KeyboardEventCode
.
AltRight
,
KeyCode
.
Alt
);
//
Duplicate
define
(
KeyboardEventCode
.
MetaRight
,
KeyCode
.
Meta
);
//
Duplicate
define
(
KeyboardEventCode
.
BrightnessUp
,
KeyCode
.
Unknown
);
define
(
KeyboardEventCode
.
BrightnessDown
,
KeyCode
.
Unknown
);
define
(
KeyboardEventCode
.
MediaPlay
,
KeyCode
.
Unknown
);
...
...
src/vs/workbench/services/keybinding/common/keyboardMapper.ts
浏览文件 @
dda7717d
...
...
@@ -6,8 +6,10 @@
'
use strict
'
;
import
{
Keybinding
,
ResolvedKeybinding
}
from
'
vs/base/common/keyCodes
'
;
import
{
IKeyboardEvent
}
from
'
vs/platform/keybinding/common/keybinding
'
;
export
interface
IKeyboardMapper
{
dumpDebugInfo
():
string
;
resolveKeybinding
(
keybinding
:
Keybinding
):
ResolvedKeybinding
[];
resolveKeyboardEvent
(
keyboardEvent
:
IKeyboardEvent
):
ResolvedKeybinding
;
}
src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts
浏览文件 @
dda7717d
...
...
@@ -12,6 +12,7 @@ import { CharCode } from 'vs/base/common/charCode';
import
{
IHTMLContentElement
}
from
'
vs/base/common/htmlContent
'
;
import
{
UILabelProvider
,
AriaLabelProvider
,
UserSettingsLabelProvider
,
ElectronAcceleratorLabelProvider
}
from
'
vs/platform/keybinding/common/keybindingLabels
'
;
import
{
IKeyboardMapper
}
from
'
vs/workbench/services/keybinding/common/keyboardMapper
'
;
import
{
IKeyboardEvent
}
from
'
vs/platform/keybinding/common/keybinding
'
;
export
interface
IKeyMapping
{
value
:
string
;
...
...
@@ -605,13 +606,6 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
// maps to different keyCode
return
-
1
;
}
// Check that the inverse is true
const
inverse
=
this
.
_kbToHw
[
kbEncoded
];
if
(
inverse
.
length
!==
1
)
{
// multiple hw keypresses map to this kb
return
-
1
;
}
}
return
constantKeyCode
;
...
...
@@ -645,6 +639,11 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper {
return
result
;
}
public
resolveKeyboardEvent
(
keyboardEvent
:
IKeyboardEvent
):
NativeResolvedKeybinding
{
const
keypress
=
new
HardwareKeypress
(
keyboardEvent
.
ctrlKey
,
keyboardEvent
.
shiftKey
,
keyboardEvent
.
altKey
,
keyboardEvent
.
metaKey
,
KeyboardEventCodeUtils
.
toEnum
(
keyboardEvent
.
code
));
return
new
NativeResolvedKeybinding
(
this
,
this
.
_OS
,
keypress
,
null
);
}
private
static
_charCodeToKb
(
charCode
:
number
):
{
keyCode
:
KeyCode
;
shiftKey
:
boolean
}
{
if
(
charCode
<
CHAR_CODE_TO_KEY_CODE
.
length
)
{
return
CHAR_CODE_TO_KEY_CODE
[
charCode
];
...
...
src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts
浏览文件 @
dda7717d
...
...
@@ -12,6 +12,7 @@ import { UILabelProvider, AriaLabelProvider, ElectronAcceleratorLabelProvider, U
import
{
OperatingSystem
}
from
'
vs/base/common/platform
'
;
import
{
IHTMLContentElement
}
from
'
vs/base/common/htmlContent
'
;
import
{
IKeyboardMapper
}
from
'
vs/workbench/services/keybinding/common/keyboardMapper
'
;
import
{
IKeyboardEvent
}
from
'
vs/platform/keybinding/common/keybinding
'
;
export
interface
IKeyMapping
{
vkey
:
string
;
...
...
@@ -346,6 +347,12 @@ export class WindowsKeyboardMapper implements IKeyboardMapper {
return
[
new
WindowsNativeResolvedKeybinding
(
this
,
keybinding
,
null
)];
}
}
public
resolveKeyboardEvent
(
keyboardEvent
:
IKeyboardEvent
):
WindowsNativeResolvedKeybinding
{
const
keybinding
=
new
SimpleKeybinding
(
keyboardEvent
.
ctrlKey
,
keyboardEvent
.
shiftKey
,
keyboardEvent
.
altKey
,
keyboardEvent
.
metaKey
,
keyboardEvent
.
keyCode
);
return
new
WindowsNativeResolvedKeybinding
(
this
,
keybinding
,
null
);
}
}
...
...
src/vs/workbench/services/keybinding/test/keyboardMapperTestUtils.ts
浏览文件 @
dda7717d
...
...
@@ -8,10 +8,11 @@
import
*
as
assert
from
'
assert
'
;
import
{
IHTMLContentElement
}
from
'
vs/base/common/htmlContent
'
;
import
{
IKeyboardMapper
}
from
'
vs/workbench/services/keybinding/common/keyboardMapper
'
;
import
{
Keybinding
}
from
'
vs/base/common/keyCodes
'
;
import
{
Keybinding
,
ResolvedKeybinding
}
from
'
vs/base/common/keyCodes
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
readFile
,
writeFile
}
from
'
vs/base/node/pfs
'
;
import
{
OperatingSystem
}
from
'
vs/base/common/platform
'
;
import
{
IKeyboardEvent
}
from
'
vs/platform/keybinding/common/keybinding
'
;
export
interface
IResolvedKeybinding
{
label
:
string
;
...
...
@@ -27,22 +28,29 @@ export interface IResolvedKeybinding {
dispatchParts
:
[
string
,
string
];
}
function
toIResolvedKeybinding
(
kb
:
ResolvedKeybinding
):
IResolvedKeybinding
{
return
{
label
:
kb
.
getLabel
(),
ariaLabel
:
kb
.
getAriaLabel
(),
HTMLLabel
:
kb
.
getHTMLLabel
(),
electronAccelerator
:
kb
.
getElectronAccelerator
(),
userSettingsLabel
:
kb
.
getUserSettingsLabel
(),
isChord
:
kb
.
isChord
(),
hasCtrlModifier
:
kb
.
hasCtrlModifier
(),
hasShiftModifier
:
kb
.
hasShiftModifier
(),
hasAltModifier
:
kb
.
hasAltModifier
(),
hasMetaModifier
:
kb
.
hasMetaModifier
(),
dispatchParts
:
kb
.
getDispatchParts
(),
};
}
export
function
assertResolveKeybinding
(
mapper
:
IKeyboardMapper
,
keybinding
:
Keybinding
,
expected
:
IResolvedKeybinding
[]):
void
{
let
actual
:
IResolvedKeybinding
[]
=
mapper
.
resolveKeybinding
(
keybinding
).
map
((
kb
=>
{
return
{
label
:
kb
.
getLabel
(),
ariaLabel
:
kb
.
getAriaLabel
(),
HTMLLabel
:
kb
.
getHTMLLabel
(),
electronAccelerator
:
kb
.
getElectronAccelerator
(),
userSettingsLabel
:
kb
.
getUserSettingsLabel
(),
isChord
:
kb
.
isChord
(),
hasCtrlModifier
:
kb
.
hasCtrlModifier
(),
hasShiftModifier
:
kb
.
hasShiftModifier
(),
hasAltModifier
:
kb
.
hasAltModifier
(),
hasMetaModifier
:
kb
.
hasMetaModifier
(),
dispatchParts
:
kb
.
getDispatchParts
(),
};
}));
let
actual
:
IResolvedKeybinding
[]
=
mapper
.
resolveKeybinding
(
keybinding
).
map
(
toIResolvedKeybinding
);
assert
.
deepEqual
(
actual
,
expected
);
}
export
function
assertResolveKeyboardEvent
(
mapper
:
IKeyboardMapper
,
keyboardEvent
:
IKeyboardEvent
,
expected
:
IResolvedKeybinding
):
void
{
let
actual
=
toIResolvedKeybinding
(
mapper
.
resolveKeyboardEvent
(
keyboardEvent
));
assert
.
deepEqual
(
actual
,
expected
);
}
...
...
src/vs/workbench/services/keybinding/test/macLinuxKeyboardMapper.test.ts
浏览文件 @
dda7717d
...
...
@@ -14,7 +14,7 @@ import { USLayoutResolvedKeybinding } from 'vs/platform/keybinding/common/usLayo
import
{
KeyboardEventCodeUtils
}
from
'
vs/workbench/services/keybinding/common/keyboardEventCode
'
;
import
{
IHTMLContentElement
}
from
'
vs/base/common/htmlContent
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
readRawMapping
,
assertMapping
,
IResolvedKeybinding
,
assertResolveKeybinding
,
simpleHTMLLabel
,
chordHTMLLabel
}
from
'
vs/workbench/services/keybinding/test/keyboardMapperTestUtils
'
;
import
{
readRawMapping
,
assertMapping
,
IResolvedKeybinding
,
assertResolveKeybinding
,
simpleHTMLLabel
,
chordHTMLLabel
,
assertResolveKeyboardEvent
}
from
'
vs/workbench/services/keybinding/test/keyboardMapperTestUtils
'
;
function
createKeyboardMapper
(
file
:
string
,
OS
:
OperatingSystem
):
TPromise
<
MacLinuxKeyboardMapper
>
{
return
readRawMapping
<
IKeyboardMapping
>
(
file
).
then
((
rawMappings
)
=>
{
...
...
@@ -114,6 +114,33 @@ suite('keyboardMapper - MAC de_ch', () => {
);
});
test
(
'
resolveKeyboardEvent Cmd+[KeyY]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
false
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
true
,
keyCode
:
-
1
,
code
:
'
KeyY
'
},
{
label
:
'
⌘Z
'
,
ariaLabel
:
'
Command+Z
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
⌘
'
,
'
Z
'
])],
electronAccelerator
:
'
Cmd+Z
'
,
userSettingsLabel
:
'
cmd+z
'
,
isChord
:
false
,
hasCtrlModifier
:
false
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
true
,
dispatchParts
:
[
'
meta+[KeyY]
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Cmd+]
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
US_CLOSE_SQUARE_BRACKET
,
...
...
@@ -133,6 +160,33 @@ suite('keyboardMapper - MAC de_ch', () => {
);
});
test
(
'
resolveKeyboardEvent Cmd+[BracketRight]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
false
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
true
,
keyCode
:
-
1
,
code
:
'
BracketRight
'
},
{
label
:
'
⌘¨
'
,
ariaLabel
:
'
Command+¨
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
⌘
'
,
'
¨
'
])],
electronAccelerator
:
null
,
userSettingsLabel
:
'
cmd+[BracketRight]
'
,
isChord
:
false
,
hasCtrlModifier
:
false
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
true
,
dispatchParts
:
[
'
meta+[BracketRight]
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Shift+]
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
Shift
|
KeyCode
.
US_CLOSE_SQUARE_BRACKET
,
...
...
@@ -265,6 +319,52 @@ suite('keyboardMapper - MAC de_ch', () => {
}]
);
});
test
(
'
resolveKeybinding Ctrl+Home
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
Home
,
[{
label
:
'
⌘Home
'
,
ariaLabel
:
'
Command+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
⌘
'
,
'
Home
'
])],
electronAccelerator
:
'
Cmd+Home
'
,
userSettingsLabel
:
'
cmd+home
'
,
isChord
:
false
,
hasCtrlModifier
:
false
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
true
,
dispatchParts
:
[
'
meta+[Home]
'
,
null
],
}]
);
});
test
(
'
resolveKeyboardEvent Ctrl+[Home]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
false
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
true
,
keyCode
:
-
1
,
code
:
'
Home
'
},
{
label
:
'
⌘Home
'
,
ariaLabel
:
'
Command+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
⌘
'
,
'
Home
'
])],
electronAccelerator
:
'
Cmd+Home
'
,
userSettingsLabel
:
'
cmd+home
'
,
isChord
:
false
,
hasCtrlModifier
:
false
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
true
,
dispatchParts
:
[
'
meta+[Home]
'
,
null
],
}
);
});
});
suite
(
'
keyboardMapper - LINUX de_ch
'
,
()
=>
{
...
...
@@ -351,6 +451,33 @@ suite('keyboardMapper - LINUX de_ch', () => {
);
});
test
(
'
resolveKeyboardEvent Ctrl+[KeyY]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
-
1
,
code
:
'
KeyY
'
},
{
label
:
'
Ctrl+Z
'
,
ariaLabel
:
'
Control+Z
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Z
'
])],
electronAccelerator
:
'
Ctrl+Z
'
,
userSettingsLabel
:
'
ctrl+z
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[KeyY]
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Ctrl+]
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
US_CLOSE_SQUARE_BRACKET
,
...
...
@@ -358,6 +485,33 @@ suite('keyboardMapper - LINUX de_ch', () => {
);
});
test
(
'
resolveKeyboardEvent Ctrl+[BracketRight]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
-
1
,
code
:
'
BracketRight
'
},
{
label
:
'
Ctrl+¨
'
,
ariaLabel
:
'
Control+¨
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
¨
'
])],
electronAccelerator
:
null
,
userSettingsLabel
:
'
ctrl+[BracketRight]
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[BracketRight]
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Shift+]
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
Shift
|
KeyCode
.
US_CLOSE_SQUARE_BRACKET
,
...
...
@@ -490,9 +644,55 @@ suite('keyboardMapper - LINUX de_ch', () => {
}]
);
});
test
(
'
resolveKeybinding Ctrl+Home
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
Home
,
[{
label
:
'
Ctrl+Home
'
,
ariaLabel
:
'
Control+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Home
'
])],
electronAccelerator
:
'
Ctrl+Home
'
,
userSettingsLabel
:
'
ctrl+home
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[Home]
'
,
null
],
}]
);
});
test
(
'
resolveKeyboardEvent Ctrl+[Home]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
-
1
,
code
:
'
Home
'
},
{
label
:
'
Ctrl+Home
'
,
ariaLabel
:
'
Control+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Home
'
])],
electronAccelerator
:
'
Ctrl+Home
'
,
userSettingsLabel
:
'
ctrl+home
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[Home]
'
,
null
],
}
);
});
});
suite
(
'
keyboardMapper - LINUX
de_ch
'
,
()
=>
{
suite
(
'
keyboardMapper - LINUX
en_us
'
,
()
=>
{
let
mapper
:
MacLinuxKeyboardMapper
;
...
...
@@ -506,6 +706,308 @@ suite('keyboardMapper - LINUX de_ch', () => {
test
(
'
mapping
'
,
(
done
)
=>
{
assertMapping
(
mapper
,
'
linux_en_us.txt
'
,
done
);
});
function
_assertResolveKeybinding
(
k
:
number
,
expected
:
IResolvedKeybinding
[]):
void
{
assertResolveKeybinding
(
mapper
,
createKeybinding
(
k
,
OperatingSystem
.
Linux
),
expected
);
}
function
_simpleHTMLLabel
(
pieces
:
string
[]):
IHTMLContentElement
{
return
simpleHTMLLabel
(
pieces
,
OperatingSystem
.
Linux
);
}
function
_chordHTMLLabel
(
firstPart
:
string
[],
chordPart
:
string
[]):
IHTMLContentElement
{
return
chordHTMLLabel
(
firstPart
,
chordPart
,
OperatingSystem
.
Linux
);
}
test
(
'
resolveKeybinding Ctrl+A
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_A
,
[{
label
:
'
Ctrl+A
'
,
ariaLabel
:
'
Control+A
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
A
'
])],
electronAccelerator
:
'
Ctrl+A
'
,
userSettingsLabel
:
'
ctrl+a
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[KeyA]
'
,
null
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+Z
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_Z
,
[{
label
:
'
Ctrl+Z
'
,
ariaLabel
:
'
Control+Z
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Z
'
])],
electronAccelerator
:
'
Ctrl+Z
'
,
userSettingsLabel
:
'
ctrl+z
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[KeyZ]
'
,
null
],
}]
);
});
test
(
'
resolveKeyboardEvent Ctrl+[KeyZ]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
-
1
,
code
:
'
KeyZ
'
},
{
label
:
'
Ctrl+Z
'
,
ariaLabel
:
'
Control+Z
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Z
'
])],
electronAccelerator
:
'
Ctrl+Z
'
,
userSettingsLabel
:
'
ctrl+z
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[KeyZ]
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Ctrl+]
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
US_CLOSE_SQUARE_BRACKET
,
[{
label
:
'
Ctrl+]
'
,
ariaLabel
:
'
Control+]
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
]
'
])],
electronAccelerator
:
'
Ctrl+]
'
,
userSettingsLabel
:
'
ctrl+]
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[BracketRight]
'
,
null
],
}]
);
});
test
(
'
resolveKeyboardEvent Ctrl+[BracketRight]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
-
1
,
code
:
'
BracketRight
'
},
{
label
:
'
Ctrl+]
'
,
ariaLabel
:
'
Control+]
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
]
'
])],
electronAccelerator
:
'
Ctrl+]
'
,
userSettingsLabel
:
'
ctrl+]
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[BracketRight]
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Shift+]
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
Shift
|
KeyCode
.
US_CLOSE_SQUARE_BRACKET
,
[{
label
:
'
Shift+]
'
,
ariaLabel
:
'
Shift+]
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Shift
'
,
'
]
'
])],
electronAccelerator
:
'
Shift+]
'
,
userSettingsLabel
:
'
shift+]
'
,
isChord
:
false
,
hasCtrlModifier
:
false
,
hasShiftModifier
:
true
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
shift+[BracketRight]
'
,
null
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+/
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
US_SLASH
,
[{
label
:
'
Ctrl+/
'
,
ariaLabel
:
'
Control+/
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
/
'
])],
electronAccelerator
:
'
Ctrl+/
'
,
userSettingsLabel
:
'
ctrl+/
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[Slash]
'
,
null
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+Shift+/
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyMod
.
Shift
|
KeyCode
.
US_SLASH
,
[{
label
:
'
Ctrl+Shift+/
'
,
ariaLabel
:
'
Control+Shift+/
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Shift
'
,
'
/
'
])],
electronAccelerator
:
'
Ctrl+Shift+/
'
,
userSettingsLabel
:
'
ctrl+shift+/
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
true
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+shift+[Slash]
'
,
null
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+K Ctrl+
\\
'
,
()
=>
{
_assertResolveKeybinding
(
KeyChord
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_K
,
KeyMod
.
CtrlCmd
|
KeyCode
.
US_BACKSLASH
),
[{
label
:
'
Ctrl+K Ctrl+
\\
'
,
ariaLabel
:
'
Control+K Control+
\\
'
,
HTMLLabel
:
[
_chordHTMLLabel
([
'
Ctrl
'
,
'
K
'
],
[
'
Ctrl
'
,
'
\\
'
])],
electronAccelerator
:
null
,
userSettingsLabel
:
'
ctrl+k ctrl+
\\
'
,
isChord
:
true
,
hasCtrlModifier
:
false
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[KeyK]
'
,
'
ctrl+[Backslash]
'
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+K Ctrl+=
'
,
()
=>
{
_assertResolveKeybinding
(
KeyChord
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_K
,
KeyMod
.
CtrlCmd
|
KeyCode
.
US_EQUAL
),
[{
label
:
'
Ctrl+K Ctrl+=
'
,
ariaLabel
:
'
Control+K Control+=
'
,
HTMLLabel
:
[
_chordHTMLLabel
([
'
Ctrl
'
,
'
K
'
],
[
'
Ctrl
'
,
'
=
'
])],
electronAccelerator
:
null
,
userSettingsLabel
:
'
ctrl+k ctrl+=
'
,
isChord
:
true
,
hasCtrlModifier
:
false
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[KeyK]
'
,
'
ctrl+[Equal]
'
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+DownArrow
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
DownArrow
,
[{
label
:
'
Ctrl+DownArrow
'
,
ariaLabel
:
'
Control+DownArrow
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
DownArrow
'
])],
electronAccelerator
:
'
Ctrl+Down
'
,
userSettingsLabel
:
'
ctrl+down
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[ArrowDown]
'
,
null
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+NUMPAD_0
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
NUMPAD_0
,
[{
label
:
'
Ctrl+NumPad0
'
,
ariaLabel
:
'
Control+NumPad0
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
NumPad0
'
])],
electronAccelerator
:
null
,
userSettingsLabel
:
'
ctrl+numpad0
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[Numpad0]
'
,
null
],
}]
);
});
test
(
'
resolveKeybinding Ctrl+Home
'
,
()
=>
{
_assertResolveKeybinding
(
KeyMod
.
CtrlCmd
|
KeyCode
.
Home
,
[{
label
:
'
Ctrl+Home
'
,
ariaLabel
:
'
Control+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Home
'
])],
electronAccelerator
:
'
Ctrl+Home
'
,
userSettingsLabel
:
'
ctrl+home
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[Home]
'
,
null
],
}]
);
});
test
(
'
resolveKeyboardEvent Ctrl+[Home]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
-
1
,
code
:
'
Home
'
},
{
label
:
'
Ctrl+Home
'
,
ariaLabel
:
'
Control+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Home
'
])],
electronAccelerator
:
'
Ctrl+Home
'
,
userSettingsLabel
:
'
ctrl+home
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+[Home]
'
,
null
],
}
);
});
});
function
_assertKeybindingTranslation
(
mapper
:
MacLinuxKeyboardMapper
,
OS
:
OperatingSystem
,
kb
:
number
,
_expected
:
string
|
string
[]):
void
{
...
...
src/vs/workbench/services/keybinding/test/windowsKeyboardMapper.test.ts
浏览文件 @
dda7717d
...
...
@@ -9,7 +9,7 @@ import { OperatingSystem } from 'vs/base/common/platform';
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
WindowsKeyboardMapper
,
IKeyboardMapping
}
from
'
vs/workbench/services/keybinding/common/windowsKeyboardMapper
'
;
import
{
createKeybinding
,
KeyMod
,
KeyCode
,
KeyChord
}
from
'
vs/base/common/keyCodes
'
;
import
{
IResolvedKeybinding
,
assertResolveKeybinding
,
readRawMapping
,
assertMapping
,
simpleHTMLLabel
,
chordHTMLLabel
}
from
'
vs/workbench/services/keybinding/test/keyboardMapperTestUtils
'
;
import
{
IResolvedKeybinding
,
assertResolveKeybinding
,
readRawMapping
,
assertMapping
,
simpleHTMLLabel
,
chordHTMLLabel
,
assertResolveKeyboardEvent
}
from
'
vs/workbench/services/keybinding/test/keyboardMapperTestUtils
'
;
import
{
IHTMLContentElement
}
from
'
vs/base/common/htmlContent
'
;
function
createKeyboardMapper
(
file
:
string
):
TPromise
<
WindowsKeyboardMapper
>
{
...
...
@@ -85,6 +85,33 @@ suite('keyboardMapper - WINDOWS de_ch', () => {
);
});
test
(
'
resolveKeyboardEvent Ctrl+Z
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
KeyCode
.
KEY_Z
,
code
:
null
},
{
label
:
'
Ctrl+Z
'
,
ariaLabel
:
'
Control+Z
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Z
'
])],
electronAccelerator
:
'
Ctrl+Z
'
,
userSettingsLabel
:
'
ctrl+z
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+Z
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Ctrl+]
'
,
()
=>
{
_assertResolveKeybinding
(
mapper
,
...
...
@@ -105,6 +132,32 @@ suite('keyboardMapper - WINDOWS de_ch', () => {
);
});
test
(
'
resolveKeyboardEvent Ctrl+]
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
KeyCode
.
US_CLOSE_SQUARE_BRACKET
,
code
:
null
},
{
label
:
'
Ctrl+^
'
,
ariaLabel
:
'
Control+^
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
^
'
])],
electronAccelerator
:
'
Ctrl+]
'
,
userSettingsLabel
:
'
ctrl+]
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+]
'
,
null
],
}
);
});
test
(
'
resolveKeybinding Shift+]
'
,
()
=>
{
_assertResolveKeybinding
(
...
...
@@ -233,6 +286,53 @@ suite('keyboardMapper - WINDOWS de_ch', () => {
}]
);
});
test
(
'
resolveKeybinding Ctrl+Home
'
,
()
=>
{
_assertResolveKeybinding
(
mapper
,
KeyMod
.
CtrlCmd
|
KeyCode
.
Home
,
[{
label
:
'
Ctrl+Home
'
,
ariaLabel
:
'
Control+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Home
'
])],
electronAccelerator
:
'
Ctrl+Home
'
,
userSettingsLabel
:
'
ctrl+home
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+Home
'
,
null
],
}]
);
});
test
(
'
resolveKeyboardEvent Ctrl+Home
'
,
()
=>
{
assertResolveKeyboardEvent
(
mapper
,
{
ctrlKey
:
true
,
shiftKey
:
false
,
altKey
:
false
,
metaKey
:
false
,
keyCode
:
KeyCode
.
Home
,
code
:
null
},
{
label
:
'
Ctrl+Home
'
,
ariaLabel
:
'
Control+Home
'
,
HTMLLabel
:
[
_simpleHTMLLabel
([
'
Ctrl
'
,
'
Home
'
])],
electronAccelerator
:
'
Ctrl+Home
'
,
userSettingsLabel
:
'
ctrl+home
'
,
isChord
:
false
,
hasCtrlModifier
:
true
,
hasShiftModifier
:
false
,
hasAltModifier
:
false
,
hasMetaModifier
:
false
,
dispatchParts
:
[
'
ctrl+Home
'
,
null
],
}
);
});
});
suite
(
'
keyboardMapper - WINDOWS en_us
'
,
()
=>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录