Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
ccb631c7
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,发现更多精彩内容 >>
提交
ccb631c7
编写于
9月 20, 2017
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
explorer: expand root folder properly
fixes #31195
上级
21697900
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
14 deletion
+8
-14
src/vs/workbench/parts/files/browser/views/explorerView.ts
src/vs/workbench/parts/files/browser/views/explorerView.ts
+8
-14
未找到文件。
src/vs/workbench/parts/files/browser/views/explorerView.ts
浏览文件 @
ccb631c7
...
...
@@ -32,7 +32,7 @@ import { FileStat, Model } from 'vs/workbench/parts/files/common/explorerModel';
import
{
IListService
}
from
'
vs/platform/list/browser/listService
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
IPartService
}
from
'
vs/workbench/services/part/common/partService
'
;
import
{
IWorkspaceContextService
,
WorkbenchState
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspaceContextService
,
WorkbenchState
,
WorkspaceFolder
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
IKeybindingService
}
from
'
vs/platform/keybinding/common/keybinding
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
...
...
@@ -166,7 +166,7 @@ export class ExplorerView extends CollapsibleView {
};
this
.
toDispose
.
push
(
this
.
themeService
.
onDidFileIconThemeChange
(
onFileIconThemeChange
));
this
.
toDispose
.
push
(
this
.
contextService
.
onDidChangeWorkspaceFolders
((
)
=>
this
.
refreshFromEvent
(
)));
this
.
toDispose
.
push
(
this
.
contextService
.
onDidChangeWorkspaceFolders
((
e
)
=>
this
.
refreshFromEvent
(
e
.
added
)));
onFileIconThemeChange
(
this
.
themeService
.
getFileIconTheme
());
}
...
...
@@ -676,11 +676,11 @@ export class ExplorerView extends CollapsibleView {
}));
}
private
refreshFromEvent
():
void
{
private
refreshFromEvent
(
newRoots
:
WorkspaceFolder
[]
=
[]
):
void
{
if
(
this
.
isVisible
())
{
this
.
explorerRefreshDelayer
.
trigger
(()
=>
{
if
(
!
this
.
explorerViewer
.
getHighlight
())
{
return
this
.
doRefresh
();
return
this
.
doRefresh
(
newRoots
);
}
return
TPromise
.
as
(
null
);
...
...
@@ -722,7 +722,7 @@ export class ExplorerView extends CollapsibleView {
});
}
private
doRefresh
():
TPromise
<
void
>
{
private
doRefresh
(
newRoots
:
WorkspaceFolder
[]
=
[]
):
TPromise
<
void
>
{
const
targetsToResolve
:
{
root
:
FileStat
,
resource
:
URI
,
options
:
{
resolveTo
:
URI
[]
}
}[]
=
[];
this
.
model
.
roots
.
forEach
(
root
=>
{
const
rootAndTargets
=
{
root
,
resource
:
root
.
resource
,
options
:
{
resolveTo
:
[]
}
};
...
...
@@ -732,9 +732,8 @@ export class ExplorerView extends CollapsibleView {
let
targetsToExpand
:
URI
[]
=
[];
if
(
this
.
settings
[
ExplorerView
.
MEMENTO_EXPANDED_FOLDER_RESOURCES
])
{
targetsToExpand
=
this
.
settings
[
ExplorerView
.
MEMENTO_EXPANDED_FOLDER_RESOURCES
].
map
((
e
:
string
)
=>
URI
.
parse
(
e
));
}
else
if
(
this
.
model
.
roots
.
length
===
1
)
{
targetsToExpand
=
this
.
model
.
roots
.
map
(
root
=>
root
.
resource
);
// always expand if there is just one root
}
targetsToExpand
.
push
(...
newRoots
.
map
(
r
=>
r
.
uri
));
// First time refresh: Receive target through active editor input or selection and also include settings from previous session
if
(
!
this
.
isCreated
)
{
...
...
@@ -784,16 +783,11 @@ export class ExplorerView extends CollapsibleView {
modelStats
.
forEach
((
modelStat
,
index
)
=>
FileStat
.
mergeLocalWithDisk
(
modelStat
,
this
.
model
.
roots
[
index
]));
const
input
=
this
.
contextService
.
getWorkbenchState
()
===
WorkbenchState
.
FOLDER
?
this
.
model
.
roots
[
0
]
:
this
.
model
;
const
statsToExpand
=
this
.
explorerViewer
.
getExpandedElements
().
concat
(
targetsToExpand
.
map
(
target
=>
this
.
model
.
findClosest
(
target
)));
if
(
input
===
this
.
explorerViewer
.
getInput
())
{
return
this
.
explorerViewer
.
refresh
();
return
this
.
explorerViewer
.
refresh
()
.
then
(()
=>
this
.
explorerViewer
.
expandAll
(
statsToExpand
))
;
}
// Preserve expanded elements if tree input changed.
// If it is a brand new tree just expand elements from memento
const
expanded
=
this
.
explorerViewer
.
getExpandedElements
();
const
statsToExpand
=
expanded
.
length
?
[
this
.
model
.
roots
[
0
]].
concat
(
expanded
)
:
targetsToExpand
.
map
(
expand
=>
this
.
model
.
findClosest
(
expand
));
// Display roots only when multi folder workspace
// Make sure to expand all folders that where expanded in the previous session
return
this
.
explorerViewer
.
setInput
(
input
).
then
(()
=>
this
.
explorerViewer
.
expandAll
(
statsToExpand
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录