Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
336ad64f
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,发现更多精彩内容 >>
提交
336ad64f
编写于
7月 20, 2020
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#102581 select the resource while reopening
上级
6c21258b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
50 addition
and
49 deletion
+50
-49
src/vs/workbench/contrib/userDataSync/browser/userDataManualSyncView.ts
...ch/contrib/userDataSync/browser/userDataManualSyncView.ts
+50
-49
未找到文件。
src/vs/workbench/contrib/userDataSync/browser/userDataManualSyncView.ts
浏览文件 @
336ad64f
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
'
vs/css!./media/userDataSyncViews
'
;
import
{
ITree
ViewDataProvider
,
ITree
Item
,
TreeItemCollapsibleState
,
TreeViewItemHandleArg
,
IViewDescriptorService
}
from
'
vs/workbench/common/views
'
;
import
{
ITreeItem
,
TreeItemCollapsibleState
,
TreeViewItemHandleArg
,
IViewDescriptorService
}
from
'
vs/workbench/common/views
'
;
import
{
localize
}
from
'
vs/nls
'
;
import
{
TreeViewPane
}
from
'
vs/workbench/browser/parts/views/treeView
'
;
import
{
IInstantiationService
,
ServicesAccessor
}
from
'
vs/platform/instantiation/common/instantiation
'
;
...
...
@@ -46,6 +46,8 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
private
syncButton
!
:
Button
;
private
cancelButton
!
:
Button
;
private
readonly
treeItems
=
new
Map
<
string
,
ITreeItem
>
();
constructor
(
options
:
IViewletViewOptions
,
@
IEditorService
private
readonly
editorService
:
IEditorService
,
...
...
@@ -91,7 +93,8 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
this
.
_register
(
attachButtonStyler
(
this
.
cancelButton
,
this
.
themeService
));
this
.
_register
(
this
.
cancelButton
.
onDidClick
(()
=>
this
.
cancel
()));
this
.
treeView
.
dataProvider
=
new
ManualSyncViewDataProvider
(
this
.
userDataSyncPreview
);
const
that
=
this
;
this
.
treeView
.
dataProvider
=
{
getChildren
()
{
return
that
.
getTreeItems
();
}
};
}
protected
layoutTreeView
(
height
:
number
,
width
:
number
):
void
{
...
...
@@ -106,6 +109,42 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
this
.
syncButton
.
enabled
=
this
.
userDataSyncPreview
.
resources
.
every
(
c
=>
c
.
syncResource
===
SyncResource
.
GlobalState
||
c
.
mergeState
===
MergeState
.
Accepted
);
}
private
async
getTreeItems
():
Promise
<
ITreeItem
[]
>
{
this
.
treeItems
.
clear
();
const
roots
:
ITreeItem
[]
=
[];
for
(
const
resource
of
this
.
userDataSyncPreview
.
resources
)
{
if
(
resource
.
syncResource
!==
SyncResource
.
GlobalState
&&
(
resource
.
localChange
!==
Change
.
None
||
resource
.
remoteChange
!==
Change
.
None
))
{
const
handle
=
JSON
.
stringify
(
resource
);
const
treeItem
=
{
handle
,
resourceUri
:
resource
.
remote
,
label
:
{
label
:
basename
(
resource
.
remote
),
strikethrough
:
resource
.
mergeState
===
MergeState
.
Accepted
&&
(
resource
.
localChange
===
Change
.
Deleted
||
resource
.
remoteChange
===
Change
.
Deleted
)
},
description
:
getSyncAreaLabel
(
resource
.
syncResource
),
collapsibleState
:
TreeItemCollapsibleState
.
None
,
command
:
{
id
:
`workbench.actions.sync.showChanges`
,
title
:
''
,
arguments
:
[
<
TreeViewItemHandleArg
>
{
$treeViewId
:
''
,
$treeItemHandle
:
handle
}]
},
contextValue
:
`sync-resource-
${
resource
.
mergeState
}
`
};
this
.
treeItems
.
set
(
handle
,
treeItem
);
roots
.
push
(
treeItem
);
}
}
return
roots
;
}
private
toUserDataSyncResourceGroup
(
handle
:
string
):
IUserDataSyncResource
{
const
parsed
:
IUserDataSyncResource
=
JSON
.
parse
(
handle
);
return
{
syncResource
:
parsed
.
syncResource
,
local
:
URI
.
revive
(
parsed
.
local
),
remote
:
URI
.
revive
(
parsed
.
remote
),
merged
:
URI
.
revive
(
parsed
.
merged
),
accepted
:
URI
.
revive
(
parsed
.
accepted
),
localChange
:
parsed
.
localChange
,
remoteChange
:
parsed
.
remoteChange
,
mergeState
:
parsed
.
mergeState
,
};
}
private
registerActions
():
void
{
const
that
=
this
;
...
...
@@ -125,7 +164,7 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
});
}
async
run
(
accessor
:
ServicesAccessor
,
handle
:
TreeViewItemHandleArg
):
Promise
<
void
>
{
return
that
.
acceptRemote
(
ManualSyncViewDataProvider
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
return
that
.
acceptRemote
(
that
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
}
}));
...
...
@@ -145,7 +184,7 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
});
}
async
run
(
accessor
:
ServicesAccessor
,
handle
:
TreeViewItemHandleArg
):
Promise
<
void
>
{
return
that
.
acceptLocal
(
ManualSyncViewDataProvider
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
return
that
.
acceptLocal
(
that
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
}
}));
...
...
@@ -165,7 +204,7 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
});
}
async
run
(
accessor
:
ServicesAccessor
,
handle
:
TreeViewItemHandleArg
):
Promise
<
void
>
{
return
that
.
mergeResource
(
ManualSyncViewDataProvider
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
return
that
.
mergeResource
(
that
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
}
}));
...
...
@@ -185,7 +224,7 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
});
}
async
run
(
accessor
:
ServicesAccessor
,
handle
:
TreeViewItemHandleArg
):
Promise
<
void
>
{
return
that
.
discardResource
(
ManualSyncViewDataProvider
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
return
that
.
discardResource
(
that
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
));
}
}));
...
...
@@ -197,7 +236,7 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
});
}
async
run
(
accessor
:
ServicesAccessor
,
handle
:
TreeViewItemHandleArg
):
Promise
<
void
>
{
const
previewResource
:
IUserDataSyncResource
=
ManualSyncViewDataProvider
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
);
const
previewResource
:
IUserDataSyncResource
=
that
.
toUserDataSyncResourceGroup
(
handle
.
$treeItemHandle
);
return
that
.
open
(
previewResource
);
}
}));
...
...
@@ -284,6 +323,10 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
this
.
close
(
previewResource
);
const
resource
=
this
.
userDataSyncPreview
.
resources
.
find
(({
local
})
=>
isEqual
(
local
,
previewResource
.
local
));
if
(
resource
)
{
// select the resource
await
this
.
treeView
.
refresh
();
this
.
treeView
.
setSelection
([
this
.
treeItems
.
get
(
JSON
.
stringify
(
resource
))
!
]);
await
this
.
open
(
resource
);
}
}
...
...
@@ -323,48 +366,6 @@ export class UserDataManualSyncViewPane extends TreeViewPane {
}
class
ManualSyncViewDataProvider
implements
ITreeViewDataProvider
{
constructor
(
private
readonly
userDataSyncPreview
:
IUserDataSyncPreview
)
{
}
async
getChildren
():
Promise
<
ITreeItem
[]
>
{
const
roots
:
ITreeItem
[]
=
[];
for
(
const
resource
of
this
.
userDataSyncPreview
.
resources
)
{
if
(
resource
.
syncResource
!==
SyncResource
.
GlobalState
&&
(
resource
.
localChange
!==
Change
.
None
||
resource
.
remoteChange
!==
Change
.
None
))
{
const
handle
=
JSON
.
stringify
(
resource
);
roots
.
push
({
handle
,
resourceUri
:
resource
.
remote
,
label
:
{
label
:
basename
(
resource
.
remote
),
strikethrough
:
resource
.
mergeState
===
MergeState
.
Accepted
&&
(
resource
.
localChange
===
Change
.
Deleted
||
resource
.
remoteChange
===
Change
.
Deleted
)
},
description
:
getSyncAreaLabel
(
resource
.
syncResource
),
collapsibleState
:
TreeItemCollapsibleState
.
None
,
command
:
{
id
:
`workbench.actions.sync.showChanges`
,
title
:
''
,
arguments
:
[
<
TreeViewItemHandleArg
>
{
$treeViewId
:
''
,
$treeItemHandle
:
handle
}]
},
contextValue
:
`sync-resource-
${
resource
.
mergeState
}
`
});
}
}
return
roots
;
}
static
toUserDataSyncResourceGroup
(
handle
:
string
):
IUserDataSyncResource
{
const
parsed
:
IUserDataSyncResource
=
JSON
.
parse
(
handle
);
return
{
syncResource
:
parsed
.
syncResource
,
local
:
URI
.
revive
(
parsed
.
local
),
remote
:
URI
.
revive
(
parsed
.
remote
),
merged
:
URI
.
revive
(
parsed
.
merged
),
accepted
:
URI
.
revive
(
parsed
.
accepted
),
localChange
:
parsed
.
localChange
,
remoteChange
:
parsed
.
remoteChange
,
mergeState
:
parsed
.
mergeState
,
};
}
}
class
UserDataSyncResourcesDecorationProvider
extends
Disposable
implements
IDecorationsProvider
{
readonly
label
:
string
=
localize
(
'
label
'
,
"
UserDataSyncResources
"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录