Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
603d8771
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,发现更多精彩内容 >>
提交
603d8771
编写于
3月 29, 2017
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #23285
上级
51e58cc5
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
55 addition
and
34 deletion
+55
-34
src/vs/platform/keybinding/common/abstractKeybindingService.ts
...s/platform/keybinding/common/abstractKeybindingService.ts
+5
-1
src/vs/platform/keybinding/common/keybinding.ts
src/vs/platform/keybinding/common/keybinding.ts
+3
-1
src/vs/platform/keybinding/test/common/mockKeybindingService.ts
.../platform/keybinding/test/common/mockKeybindingService.ts
+5
-1
src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts
.../workbench/parts/preferences/browser/keybindingsEditor.ts
+35
-26
src/vs/workbench/parts/preferences/browser/media/keybindingsEditor.css
...nch/parts/preferences/browser/media/keybindingsEditor.css
+2
-1
src/vs/workbench/parts/preferences/common/keybindingsEditorModel.ts
...kbench/parts/preferences/common/keybindingsEditorModel.ts
+3
-2
src/vs/workbench/parts/preferences/common/preferencesModels.ts
...s/workbench/parts/preferences/common/preferencesModels.ts
+1
-1
src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts
...services/keybinding/electron-browser/keybindingService.ts
+1
-1
未找到文件。
src/vs/platform/keybinding/common/abstractKeybindingService.ts
浏览文件 @
603d8771
...
...
@@ -66,10 +66,14 @@ export abstract class AbstractKeybindingService implements IKeybindingService {
public
abstract
resolveKeyboardEvent
(
keyboardEvent
:
IKeyboardEvent
):
ResolvedKeybinding
;
public
abstract
resolveUserBinding
(
userBinding
:
string
):
ResolvedKeybinding
[];
public
getDefaultKeybindings
():
string
{
public
getDefaultKeybindings
Content
():
string
{
return
''
;
}
public
getDefaultKeybindings
():
ResolvedKeybindingItem
[]
{
return
this
.
_getResolver
().
getDefaultKeybindings
();
}
public
getKeybindings
():
ResolvedKeybindingItem
[]
{
return
this
.
_getResolver
().
getKeybindings
();
}
...
...
src/vs/platform/keybinding/common/keybinding.ts
浏览文件 @
603d8771
...
...
@@ -70,7 +70,9 @@ export interface IKeybindingService {
*/
lookupKeybinding
(
commandId
:
string
):
ResolvedKeybinding
;
getDefaultKeybindings
():
string
;
getDefaultKeybindingsContent
():
string
;
getDefaultKeybindings
():
ResolvedKeybindingItem
[];
getKeybindings
():
ResolvedKeybindingItem
[];
...
...
src/vs/platform/keybinding/test/common/mockKeybindingService.ts
浏览文件 @
603d8771
...
...
@@ -69,10 +69,14 @@ export class MockKeybindingService implements IKeybindingService {
return
Event
.
None
;
}
public
getDefaultKeybindings
():
string
{
public
getDefaultKeybindings
Content
():
string
{
return
null
;
}
public
getDefaultKeybindings
():
ResolvedKeybindingItem
[]
{
return
[];
}
public
getKeybindings
():
ResolvedKeybindingItem
[]
{
return
[];
}
...
...
src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts
浏览文件 @
603d8771
...
...
@@ -66,6 +66,9 @@ export class KeybindingsEditorInput extends EditorInput {
export
class
KeybindingsEditor
extends
BaseEditor
implements
IKeybindingsEditor
{
public
static
ID
:
string
=
'
workbench.editor.keybindings
'
;
private
keybindingsEditorModel
:
KeybindingsEditorModel
;
private
headerContainer
:
HTMLElement
;
private
searchWidget
:
SearchWidget
;
...
...
@@ -199,15 +202,17 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor
resetKeybinding
(
keybindingEntry
:
IKeybindingItemEntry
):
TPromise
<
any
>
{
this
.
selectEntry
(
keybindingEntry
);
if
(
keybindingEntry
.
keybindingItem
.
keybinding
)
{
// This should be a pre-condition
return
this
.
keybindingEditingService
.
resetKeybinding
(
keybindingEntry
.
keybindingItem
.
keybindingItem
)
.
then
(()
=>
this
.
focus
(),
error
=>
{
this
.
onKeybindingEditingError
(
error
);
this
.
selectEntry
(
keybindingEntry
);
});
}
return
TPromise
.
as
(
null
);
return
this
.
keybindingEditingService
.
resetKeybinding
(
keybindingEntry
.
keybindingItem
.
keybindingItem
)
.
then
(()
=>
{
if
(
!
keybindingEntry
.
keybindingItem
.
keybinding
)
{
// reveal only if keybinding was added to unassinged. Because the entry will be placed in different position after rendering
this
.
unAssignedKeybindingItemToRevealAndFocus
=
keybindingEntry
;
}
this
.
selectEntry
(
keybindingEntry
);
},
error
=>
{
this
.
onKeybindingEditingError
(
error
);
this
.
selectEntry
(
keybindingEntry
);
});
}
copyKeybinding
(
keybinding
:
IKeybindingItemEntry
):
TPromise
<
any
>
{
...
...
@@ -250,7 +255,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor
placeholder
:
localize
(
'
SearchKeybindings.Placeholder
'
,
"
Search keybindings
"
),
navigateByArrows
:
true
}));
this
.
_register
(
this
.
searchWidget
.
onDidChange
(
searchValue
=>
this
.
delayedFiltering
.
trigger
(()
=>
this
.
render
())));
this
.
_register
(
this
.
searchWidget
.
onDidChange
(
searchValue
=>
this
.
delayedFiltering
.
trigger
(()
=>
this
.
render
KeybindingsEntries
())));
this
.
_register
(
this
.
searchWidget
.
onNavigate
(
back
=>
this
.
_onNavigate
(
back
)));
this
.
createOpenKeybindingsElement
(
this
.
headerContainer
);
...
...
@@ -295,27 +300,31 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor
private
render
():
TPromise
<
any
>
{
if
(
this
.
input
)
{
return
this
.
input
.
resolve
()
.
then
((
keybindingsModel
:
KeybindingsEditorModel
)
=>
keybindingsModel
.
resolve
()
.
then
(()
=>
this
.
renderKeybindingsEntries
(
keybindingsModel
.
fetch
(
this
.
searchWidget
.
value
()))));
.
then
((
keybindingsModel
:
KeybindingsEditorModel
)
=>
this
.
keybindingsEditorModel
=
keybindingsModel
)
.
then
(()
=>
this
.
keybindingsEditorModel
.
resolve
())
.
then
(()
=>
this
.
renderKeybindingsEntries
());
}
return
TPromise
.
as
(
null
);
}
private
renderKeybindingsEntries
(
keybindingsEntries
:
IKeybindingItemEntry
[]):
void
{
const
currentSelectedIndex
=
this
.
keybindingsList
.
getSelection
()[
0
];
this
.
listEntries
=
[{
id
:
'
keybinding-header-entry
'
,
templateId
:
KEYBINDING_HEADER_TEMPLATE_ID
},
...
keybindingsEntries
];
this
.
keybindingsList
.
splice
(
0
,
this
.
keybindingsList
.
length
,
this
.
listEntries
);
this
.
layoutKebindingsList
();
private
renderKeybindingsEntries
():
void
{
if
(
this
.
keybindingsEditorModel
)
{
const
keybindingsEntries
:
IKeybindingItemEntry
[]
=
this
.
keybindingsEditorModel
.
fetch
(
this
.
searchWidget
.
value
());
const
currentSelectedIndex
=
this
.
keybindingsList
.
getSelection
()[
0
];
this
.
listEntries
=
[{
id
:
'
keybinding-header-entry
'
,
templateId
:
KEYBINDING_HEADER_TEMPLATE_ID
},
...
keybindingsEntries
];
this
.
keybindingsList
.
splice
(
0
,
this
.
keybindingsList
.
length
,
this
.
listEntries
);
this
.
layoutKebindingsList
();
if
(
this
.
unAssignedKeybindingItemToRevealAndFocus
)
{
const
index
=
this
.
getNewIndexOfUnassignedKeybinding
(
this
.
unAssignedKeybindingItemToRevealAndFocus
);
if
(
index
!==
-
1
)
{
this
.
keybindingsList
.
reveal
(
index
,
0.2
);
this
.
selectEntry
(
index
);
if
(
this
.
unAssignedKeybindingItemToRevealAndFocus
)
{
const
index
=
this
.
getNewIndexOfUnassignedKeybinding
(
this
.
unAssignedKeybindingItemToRevealAndFocus
);
if
(
index
!==
-
1
)
{
this
.
keybindingsList
.
reveal
(
index
,
0.2
);
this
.
selectEntry
(
index
);
}
this
.
unAssignedKeybindingItemToRevealAndFocus
=
null
;
}
else
if
(
currentSelectedIndex
!==
-
1
&&
currentSelectedIndex
<
this
.
listEntries
.
length
)
{
this
.
selectEntry
(
currentSelectedIndex
);
}
this
.
unAssignedKeybindingItemToRevealAndFocus
=
null
;
}
else
if
(
currentSelectedIndex
!==
-
1
&&
currentSelectedIndex
<
this
.
listEntries
.
length
)
{
this
.
selectEntry
(
currentSelectedIndex
);
}
}
...
...
@@ -405,7 +414,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor
private
createResetAction
(
keybindingItem
:
IKeybindingItemEntry
):
IAction
{
return
<
IAction
>
{
label
:
localize
(
'
resetLabel
'
,
"
Reset Keybinding
"
),
enabled
:
!
!
keybindingItem
.
keybindingItem
.
keybinding
&&
!
keybindingItem
.
keybindingItem
.
keybindingItem
.
isDefault
,
enabled
:
!
keybindingItem
.
keybindingItem
.
keybindingItem
.
isDefault
,
id
:
KEYBINDINGS_EDITOR_COMMAND_RESET
,
run
:
()
=>
this
.
resetKeybinding
(
keybindingItem
)
};
...
...
src/vs/workbench/parts/preferences/browser/media/keybindingsEditor.css
浏览文件 @
603d8771
...
...
@@ -67,7 +67,8 @@
}
.keybindings-editor
>
.keybindings-body
>
.keybindings-list-container
.monaco-list-row.keybindings-list-header
,
.keybindings-editor
>
.keybindings-body
>
.keybindings-list-container
.monaco-list-row.even
:not
(
.focused
)
:not
(
.selected
)
:not
(
:hover
)
{
.keybindings-editor
>
.keybindings-body
>
.keybindings-list-container
.monaco-list-row.even
:not
(
.focused
)
:not
(
.selected
)
:not
(
:hover
),
.keybindings-editor
>
.keybindings-body
>
.keybindings-list-container
.monaco-list
:not
(
:focus
)
.monaco-list-row.focused.even
:not
(
.selected
)
:not
(
:hover
)
{
background-color
:
rgba
(
130
,
130
,
130
,
0.04
);
}
...
...
src/vs/workbench/parts/preferences/common/keybindingsEditorModel.ts
浏览文件 @
603d8771
...
...
@@ -110,8 +110,10 @@ export class KeybindingsEditorModel extends EditorModel {
}
}
const
commandsWithDefaultKeybindings
=
this
.
keybindingsService
.
getDefaultKeybindings
().
map
(
keybinding
=>
keybinding
.
command
);
for
(
const
command
of
KeybindingResolver
.
getAllUnboundCommands
(
boundCommands
))
{
this
.
_keybindingItems
.
push
(
KeybindingsEditorModel
.
toKeybindingEntry
(
command
,
null
,
workbenchActionsRegistry
,
editorActions
));
const
keybindingItem
=
new
ResolvedKeybindingItem
(
null
,
command
,
null
,
null
,
commandsWithDefaultKeybindings
.
indexOf
(
command
)
===
-
1
);
this
.
_keybindingItems
.
push
(
KeybindingsEditorModel
.
toKeybindingEntry
(
command
,
keybindingItem
,
workbenchActionsRegistry
,
editorActions
));
}
this
.
_keybindingItems
=
this
.
_keybindingItems
.
sort
((
a
,
b
)
=>
KeybindingsEditorModel
.
compareKeybindingData
(
a
,
b
));
return
this
;
...
...
@@ -150,7 +152,6 @@ export class KeybindingsEditorModel extends EditorModel {
const
workbenchAction
=
workbenchActionsRegistry
.
getWorkbenchAction
(
command
);
const
menuCommand
=
MenuRegistry
.
getCommand
(
command
);
const
editorAction
:
EditorAction
=
editorActions
[
command
];
keybindingItem
=
keybindingItem
?
keybindingItem
:
new
ResolvedKeybindingItem
(
null
,
command
,
null
,
null
,
true
);
return
<
IKeybindingItem
>
{
keybinding
:
keybindingItem
.
resolvedKeybinding
,
keybindingItem
,
...
...
src/vs/workbench/parts/preferences/common/preferencesModels.ts
浏览文件 @
603d8771
...
...
@@ -706,7 +706,7 @@ export class DefaultKeybindingsEditorModel implements IKeybindingsEditorModel<an
public
get
content
():
string
{
if
(
!
this
.
_content
)
{
const
defaultsHeader
=
'
//
'
+
nls
.
localize
(
'
defaultKeybindingsHeader
'
,
"
Overwrite key bindings by placing them into your key bindings file.
"
);
this
.
_content
=
defaultsHeader
+
'
\n
'
+
this
.
keybindingService
.
getDefaultKeybindings
();
this
.
_content
=
defaultsHeader
+
'
\n
'
+
this
.
keybindingService
.
getDefaultKeybindings
Content
();
}
return
this
.
_content
;
}
...
...
src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts
浏览文件 @
603d8771
...
...
@@ -532,7 +532,7 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService {
return
desc
;
}
public
getDefaultKeybindings
():
string
{
public
getDefaultKeybindings
Content
():
string
{
const
resolver
=
this
.
_getResolver
();
const
defaultKeybindings
=
resolver
.
getDefaultKeybindings
();
const
boundCommands
=
resolver
.
getDefaultBoundCommands
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录