Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
7a9b8377
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,发现更多精彩内容 >>
提交
7a9b8377
编写于
3月 29, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
split recent files and folders in picker
上级
1525065f
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
46 addition
and
16 deletion
+46
-16
src/vs/platform/workspace/common/workspace.ts
src/vs/platform/workspace/common/workspace.ts
+2
-1
src/vs/workbench/electron-browser/actions.ts
src/vs/workbench/electron-browser/actions.ts
+16
-3
src/vs/workbench/electron-main/window.ts
src/vs/workbench/electron-main/window.ts
+2
-1
src/vs/workbench/electron-main/windows.ts
src/vs/workbench/electron-main/windows.ts
+26
-11
未找到文件。
src/vs/platform/workspace/common/workspace.ts
浏览文件 @
7a9b8377
...
...
@@ -132,7 +132,8 @@ export interface IEnvironment {
extensionDevelopmentPath
:
string
;
extensionTestsPath
:
string
;
recentPaths
:
string
[];
recentFiles
:
string
[];
recentFolders
:
string
[];
enableTelemetry
:
boolean
;
...
...
src/vs/workbench/electron-browser/actions.ts
浏览文件 @
7a9b8377
...
...
@@ -396,17 +396,30 @@ export class OpenRecentAction extends Action {
}
public
run
():
TPromise
<
boolean
>
{
let
picks
=
this
.
contextService
.
getConfiguration
().
env
.
recentPaths
.
map
(
p
=>
{
const
recentFolders
=
this
.
contextService
.
getConfiguration
().
env
.
recentFolders
;
const
recentFiles
=
this
.
contextService
.
getConfiguration
().
env
.
recentFiles
;
let
folderPicks
=
recentFolders
.
map
((
p
,
index
)
=>
{
return
{
label
:
paths
.
basename
(
p
),
description
:
paths
.
dirname
(
p
),
path
:
p
,
separator
:
index
===
0
?
{
label
:
nls
.
localize
(
'
folders
'
,
"
folders
"
)
}
:
void
0
};
});
let
filePicks
=
recentFiles
.
map
((
p
,
index
)
=>
{
return
{
label
:
paths
.
basename
(
p
),
description
:
paths
.
dirname
(
p
),
path
:
p
path
:
p
,
separator
:
index
===
0
?
{
label
:
nls
.
localize
(
'
files
'
,
"
files
"
),
border
:
true
}
:
void
0
};
});
const
hasWorkspace
=
!!
this
.
contextService
.
getWorkspace
();
return
this
.
quickOpenService
.
pick
(
picks
,
{
return
this
.
quickOpenService
.
pick
(
folderPicks
.
concat
(...
filePicks
)
,
{
autoFocus
:
{
autoFocusFirstEntry
:
!
hasWorkspace
,
autoFocusSecondEntry
:
hasWorkspace
},
placeHolder
:
nls
.
localize
(
'
openRecentPlaceHolder
'
,
"
Select a path to open
"
),
matchOnDescription
:
true
...
...
src/vs/workbench/electron-main/window.ts
浏览文件 @
7a9b8377
...
...
@@ -103,7 +103,8 @@ export interface IWindowConfiguration extends env.ICommandLineArguments {
commitHash
:
string
;
updateFeedUrl
:
string
;
updateChannel
:
string
;
recentPaths
:
string
[];
recentFiles
:
string
[];
recentFolders
:
string
[];
workspacePath
?:
string
;
filesToOpen
?:
IPath
[];
filesToCreate
?:
IPath
[];
...
...
src/vs/workbench/electron-main/windows.ts
浏览文件 @
7a9b8377
...
...
@@ -686,40 +686,55 @@ export class WindowsManager {
configuration
.
licenseUrl
=
env
.
product
.
licenseUrl
;
configuration
.
updateFeedUrl
=
UpdateManager
.
feedUrl
;
configuration
.
updateChannel
=
UpdateManager
.
channel
;
configuration
.
recentPaths
=
this
.
getRecentlyOpenedPaths
(
workspacePath
,
filesToOpen
);
configuration
.
aiConfig
=
env
.
product
.
aiConfig
;
configuration
.
sendASmile
=
env
.
product
.
sendASmile
;
configuration
.
enableTelemetry
=
env
.
product
.
enableTelemetry
;
configuration
.
userEnv
=
userEnv
;
const
recents
=
this
.
getRecentlyOpenedPaths
(
workspacePath
,
filesToOpen
);
configuration
.
recentFiles
=
recents
.
files
;
configuration
.
recentFolders
=
recents
.
folders
;
return
configuration
;
}
private
getRecentlyOpenedPaths
(
workspacePath
?:
string
,
filesToOpen
?:
window
.
IPath
[]):
string
[]
{
private
getRecentlyOpenedPaths
(
workspacePath
?:
string
,
filesToOpen
?:
window
.
IPath
[]):
IOpenedPathsList
{
let
files
:
string
[];
let
folders
:
string
[];
// Get from storage
let
openedPathsList
=
storage
.
getItem
<
IOpenedPathsList
>
(
WindowsManager
.
openedPathsListStorageKey
);
if
(
!
openedPathsList
)
{
openedPathsList
=
{
folders
:
[],
files
:
[]
};
let
storedRecents
=
storage
.
getItem
<
IOpenedPathsList
>
(
WindowsManager
.
openedPathsListStorageKey
);
if
(
storedRecents
)
{
files
=
storedRecents
.
files
||
[];
folders
=
storedRecents
.
folders
||
[];
}
else
{
files
=
[];
folders
=
[];
}
let
recentPaths
=
openedPathsList
.
folders
.
concat
(
openedPathsList
.
files
);
// Add currently files to open to the beginning if any
if
(
filesToOpen
)
{
recentPath
s
.
unshift
(...
filesToOpen
.
map
(
f
=>
f
.
filePath
));
file
s
.
unshift
(...
filesToOpen
.
map
(
f
=>
f
.
filePath
));
}
// Add current workspace path to beginning if set
if
(
workspacePath
)
{
recentPath
s
.
unshift
(
workspacePath
);
folder
s
.
unshift
(
workspacePath
);
}
// Clear those dupes
recentPaths
=
arrays
.
distinct
(
recentPaths
);
files
=
arrays
.
distinct
(
files
);
folders
=
arrays
.
distinct
(
folders
);
if
(
platform
.
isMacintosh
&&
files
.
length
>
0
)
{
files
=
files
.
filter
(
f
=>
folders
.
indexOf
(
f
)
<
0
);
// TODO@Ben migration (remove in the future)
}
// Make sure it is bounded
return
recentPaths
.
slice
(
0
,
20
/* max 10 files, 10 folders */
);
files
=
files
.
slice
(
0
,
10
);
folders
=
folders
.
slice
(
0
,
10
);
return
{
files
,
folders
};
}
private
toIPath
(
anyPath
:
string
,
ignoreFileNotFound
?:
boolean
,
gotoLineMode
?:
boolean
):
window
.
IPath
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录