Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
c03fd3f0
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,发现更多精彩内容 >>
提交
c03fd3f0
编写于
3月 15, 2019
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
comment out potential crash code for now (#70563)
上级
3297348c
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
58 addition
and
57 deletion
+58
-57
src/vs/platform/diagnostics/electron-main/diagnosticsService.ts
.../platform/diagnostics/electron-main/diagnosticsService.ts
+58
-57
未找到文件。
src/vs/platform/diagnostics/electron-main/diagnosticsService.ts
浏览文件 @
c03fd3f0
...
...
@@ -15,8 +15,7 @@ import { app } from 'electron';
import
{
basename
,
join
}
from
'
vs/base/common/path
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
readdir
,
stat
,
exists
,
readFile
}
from
'
fs
'
;
import
{
parse
,
ParseError
}
from
'
vs/base/common/json
'
;
import
{
readdir
,
stat
}
from
'
fs
'
;
export
const
ID
=
'
diagnosticsService
'
;
export
const
IDiagnosticsService
=
createDecorator
<
IDiagnosticsService
>
(
ID
);
...
...
@@ -248,14 +247,14 @@ export class DiagnosticsService implements IDiagnosticsService {
output
.
push
(
line
);
}
if
(
workspaceStats
.
launchConfigFiles
.
length
>
0
)
{
let
line
=
'
| Launch Configs:
'
;
workspaceStats
.
launchConfigFiles
.
forEach
(
each
=>
{
const
item
=
each
.
count
>
1
?
`
${
each
.
name
}
(
${
each
.
count
}
)`
:
`
${
each
.
name
}
`
;
line
+=
item
;
});
output
.
push
(
line
);
}
//
if (workspaceStats.launchConfigFiles.length > 0) {
//
let line = '| Launch Configs:';
//
workspaceStats.launchConfigFiles.forEach(each => {
//
const item = each.count > 1 ? ` ${each.name}(${each.count})` : ` ${each.name}`;
//
line += item;
//
});
//
output.push(line);
//
}
return
output
.
join
(
'
\n
'
);
}
...
...
@@ -307,17 +306,17 @@ export class DiagnosticsService implements IDiagnosticsService {
}
}
export
interface
WorkspaceStatItem
{
interface
WorkspaceStatItem
{
name
:
string
;
count
:
number
;
}
export
interface
WorkspaceStats
{
interface
WorkspaceStats
{
fileTypes
:
WorkspaceStatItem
[];
configFiles
:
WorkspaceStatItem
[];
fileCount
:
number
;
maxFilesReached
:
boolean
;
launchConfigFiles
:
WorkspaceStatItem
[];
//
launchConfigFiles: WorkspaceStatItem[];
}
function
asSortedItems
(
map
:
Map
<
string
,
number
>
):
WorkspaceStatItem
[]
{
...
...
@@ -326,48 +325,48 @@ function asSortedItems(map: Map<string, number>): WorkspaceStatItem[] {
return
a
.
sort
((
a
,
b
)
=>
b
.
count
-
a
.
count
);
}
export
function
collectLaunchConfigs
(
folder
:
string
):
Promise
<
WorkspaceStatItem
[]
>
{
const
launchConfigs
=
new
Map
<
string
,
number
>
();
const
launchConfig
=
join
(
folder
,
'
.vscode
'
,
'
launch.json
'
);
return
new
Promise
((
resolve
,
reject
)
=>
{
exists
(
launchConfig
,
(
doesExist
)
=>
{
if
(
doesExist
)
{
readFile
(
launchConfig
,
(
err
,
contents
)
=>
{
if
(
err
)
{
return
resolve
([]);
}
const
errors
:
ParseError
[]
=
[];
const
json
=
parse
(
contents
.
toString
(),
errors
);
if
(
errors
.
length
)
{
console
.
log
(
`Unable to parse
${
launchConfig
}
`
);
return
resolve
([]);
}
if
(
json
[
'
configurations
'
])
{
for
(
const
each
of
json
[
'
configurations
'
])
{
const
type
=
each
[
'
type
'
];
if
(
type
)
{
if
(
launchConfigs
.
has
(
type
))
{
launchConfigs
.
set
(
type
,
launchConfigs
.
get
(
type
)
!
+
1
);
}
else
{
launchConfigs
.
set
(
type
,
1
);
}
}
}
}
return
resolve
(
asSortedItems
(
launchConfigs
));
});
}
else
{
return
resolve
([]);
}
});
});
}
export
function
collectWorkspaceStats
(
folder
:
string
,
filter
:
string
[]):
Promise
<
WorkspaceStats
>
{
//
function collectLaunchConfigs(folder: string): Promise<WorkspaceStatItem[]> {
//
const launchConfigs = new Map<string, number>();
//
const launchConfig = join(folder, '.vscode', 'launch.json');
//
return new Promise((resolve, reject) => {
//
exists(launchConfig, (doesExist) => {
//
if (doesExist) {
//
readFile(launchConfig, (err, contents) => {
//
if (err) {
//
return resolve([]);
//
}
//
const errors: ParseError[] = [];
//
const json = parse(contents.toString(), errors);
//
if (errors.length) {
//
console.log(`Unable to parse ${launchConfig}`);
//
return resolve([]);
//
}
//
if (json['configurations']) {
//
for (const each of json['configurations']) {
//
const type = each['type'];
//
if (type) {
//
if (launchConfigs.has(type)) {
//
launchConfigs.set(type, launchConfigs.get(type)! + 1);
//
} else {
//
launchConfigs.set(type, 1);
//
}
//
}
//
}
//
}
//
return resolve(asSortedItems(launchConfigs));
//
});
//
} else {
//
return resolve([]);
//
}
//
});
//
});
//
}
function
collectWorkspaceStats
(
folder
:
string
,
filter
:
string
[]):
Promise
<
WorkspaceStats
>
{
const
configFilePatterns
=
[
{
'
tag
'
:
'
grunt.js
'
,
'
pattern
'
:
/^
gruntfile
\
.
js$
/
i
},
{
'
tag
'
:
'
gulp.js
'
,
'
pattern
'
:
/^
gulpfile
\
.
js$
/
i
},
...
...
@@ -486,14 +485,16 @@ export function collectWorkspaceStats(folder: string, filter: string[]): Promise
walk
(
folder
,
filter
,
token
,
async
(
files
)
=>
{
files
.
forEach
(
acceptFile
);
const
launchConfigs
=
await
collectLaunchConfigs
(
folder
);
// TODO@rachel commented out due to severe performance issues
// see https://github.com/Microsoft/vscode/issues/70563
// const launchConfigs = await collectLaunchConfigs(folder);
resolve
({
configFiles
:
asSortedItems
(
configFiles
),
fileTypes
:
asSortedItems
(
fileTypes
),
fileCount
:
token
.
count
,
maxFilesReached
:
token
.
maxReached
,
launchConfigFiles
:
launchConfigs
//
launchConfigFiles: launchConfigs
});
});
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录