Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
0617cd34
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,体验更适合开发者的 AI 搜索 >>
提交
0617cd34
编写于
5月 19, 2020
作者:
S
SteVen Batten
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
kb shortcuts for view moving
refs #89170
上级
cfcf9d11
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
97 addition
and
2 deletion
+97
-2
src/vs/workbench/browser/parts/views/viewPaneContainer.ts
src/vs/workbench/browser/parts/views/viewPaneContainer.ts
+97
-2
未找到文件。
src/vs/workbench/browser/parts/views/viewPaneContainer.ts
浏览文件 @
0617cd34
...
...
@@ -28,12 +28,12 @@ import { Extensions as ViewContainerExtensions, IView, FocusedViewContext, IView
import
{
IStorageService
,
StorageScope
}
from
'
vs/platform/storage/common/storage
'
;
import
{
IContextKey
,
IContextKeyService
}
from
'
vs/platform/contextkey/common/contextkey
'
;
import
{
assertIsDefined
,
isString
}
from
'
vs/base/common/types
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IInstantiationService
,
ServicesAccessor
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IViewletViewOptions
}
from
'
vs/workbench/browser/parts/views/viewsViewlet
'
;
import
{
IExtensionService
}
from
'
vs/workbench/services/extensions/common/extensions
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
Component
}
from
'
vs/workbench/common/component
'
;
import
{
MenuId
,
MenuItemAction
}
from
'
vs/platform/actions/common/actions
'
;
import
{
MenuId
,
MenuItemAction
,
registerAction2
,
Action2
,
IAction2Options
}
from
'
vs/platform/actions/common/actions
'
;
import
{
ContextAwareMenuEntryActionViewItem
}
from
'
vs/platform/actions/browser/menuEntryActionViewItem
'
;
import
{
ViewMenuActions
}
from
'
vs/workbench/browser/parts/views/viewMenuActions
'
;
import
{
parseLinkedText
}
from
'
vs/base/common/linkedText
'
;
...
...
@@ -49,6 +49,8 @@ import { RunOnceScheduler } from 'vs/base/common/async';
import
{
DomScrollableElement
}
from
'
vs/base/browser/ui/scrollbar/scrollableElement
'
;
import
{
ScrollbarVisibility
}
from
'
vs/base/common/scrollable
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
KeyMod
,
KeyCode
}
from
'
vs/base/common/keyCodes
'
;
import
{
KeybindingWeight
}
from
'
vs/platform/keybinding/common/keybindingsRegistry
'
;
export
interface
IPaneColors
extends
IColorMapping
{
dropBackground
?:
ColorIdentifier
;
...
...
@@ -1540,3 +1542,96 @@ export class ViewPaneContainer extends Component implements IViewPaneContainer {
}
}
}
class
MoveViewPosition
extends
Action2
{
constructor
(
desc
:
Readonly
<
IAction2Options
>
,
private
readonly
offset
:
number
)
{
super
(
desc
);
}
async
run
(
accessor
:
ServicesAccessor
):
Promise
<
void
>
{
const
viewDescriptorService
=
accessor
.
get
(
IViewDescriptorService
);
const
contextKeyService
=
accessor
.
get
(
IContextKeyService
);
const
viewId
=
FocusedViewContext
.
getValue
(
contextKeyService
);
if
(
viewId
===
undefined
)
{
return
;
}
const
viewContainer
=
viewDescriptorService
.
getViewContainerByViewId
(
viewId
)
!
;
const
model
=
viewDescriptorService
.
getViewContainerModel
(
viewContainer
);
const
viewDescriptor
=
model
.
visibleViewDescriptors
.
find
(
vd
=>
vd
.
id
===
viewId
)
!
;
const
currentIndex
=
model
.
visibleViewDescriptors
.
indexOf
(
viewDescriptor
);
if
(
currentIndex
+
this
.
offset
<
0
||
currentIndex
+
this
.
offset
>=
model
.
visibleViewDescriptors
.
length
)
{
return
;
}
const
newPosition
=
model
.
visibleViewDescriptors
[
currentIndex
+
this
.
offset
];
model
.
move
(
viewDescriptor
.
id
,
newPosition
.
id
);
}
}
registerAction2
(
class
MoveViewUp
extends
MoveViewPosition
{
constructor
()
{
super
({
id
:
'
views.moveViewUp
'
,
title
:
nls
.
localize
(
'
viewMoveUp
'
,
"
Move View Up
"
),
keybinding
:
{
primary
:
KeyMod
.
Shift
+
KeyMod
.
Alt
+
KeyCode
.
UpArrow
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
when
:
undefined
}
},
-
1
);
}
}
);
registerAction2
(
class
MoveViewLeft
extends
MoveViewPosition
{
constructor
()
{
super
({
id
:
'
views.moveViewLeft
'
,
title
:
nls
.
localize
(
'
viewMoveLeft
'
,
"
Move View Left
"
),
keybinding
:
{
primary
:
KeyMod
.
Shift
+
KeyMod
.
Alt
+
KeyCode
.
LeftArrow
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
when
:
undefined
}
},
-
1
);
}
}
);
registerAction2
(
class
MoveViewDown
extends
MoveViewPosition
{
constructor
()
{
super
({
id
:
'
views.moveViewDown
'
,
title
:
nls
.
localize
(
'
viewMoveDown
'
,
"
Move View Down
"
),
keybinding
:
{
primary
:
KeyMod
.
Shift
+
KeyMod
.
Alt
+
KeyCode
.
DownArrow
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
when
:
undefined
}
},
1
);
}
}
);
registerAction2
(
class
MoveViewRight
extends
MoveViewPosition
{
constructor
()
{
super
({
id
:
'
views.moveViewRight
'
,
title
:
nls
.
localize
(
'
viewMoveRight
'
,
"
Move View Right
"
),
keybinding
:
{
primary
:
KeyMod
.
Shift
+
KeyMod
.
Alt
+
KeyCode
.
RightArrow
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
when
:
undefined
}
},
1
);
}
}
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录