Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
01defd1c
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,发现更多精彩内容 >>
未验证
提交
01defd1c
编写于
7月 02, 2019
作者:
L
Logan Ramos
提交者:
GitHub
7月 02, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cleanup argv (#76416)
上级
39c9d853
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
46 addition
and
38 deletion
+46
-38
src/vs/code/node/cliProcessMain.ts
src/vs/code/node/cliProcessMain.ts
+1
-1
src/vs/platform/environment/node/argv.ts
src/vs/platform/environment/node/argv.ts
+1
-37
src/vs/platform/telemetry/node/telemetry.ts
src/vs/platform/telemetry/node/telemetry.ts
+44
-0
未找到文件。
src/vs/code/node/cliProcessMain.ts
浏览文件 @
01defd1c
...
...
@@ -41,7 +41,7 @@ import { CancellationToken } from 'vs/base/common/cancellation';
import
{
LocalizationsService
}
from
'
vs/platform/localizations/node/localizations
'
;
import
{
Schemas
}
from
'
vs/base/common/network
'
;
import
{
SpdLogService
}
from
'
vs/platform/log/node/spdlogService
'
;
import
{
buildTelemetryMessage
}
from
'
vs/platform/
environment/node/argv
'
;
import
{
buildTelemetryMessage
}
from
'
vs/platform/
telemetry/node/telemetry
'
;
const
notFound
=
(
id
:
string
)
=>
localize
(
'
notFound
'
,
"
Extension '{0}' not found.
"
,
id
);
const
notInstalled
=
(
id
:
string
)
=>
localize
(
'
notInstalled
'
,
"
Extension '{0}' is not installed.
"
,
id
);
...
...
src/vs/platform/environment/node/argv.ts
浏览文件 @
01defd1c
...
...
@@ -8,8 +8,7 @@ import * as os from 'os';
import
{
localize
}
from
'
vs/nls
'
;
import
{
ParsedArgs
}
from
'
vs/platform/environment/common/environment
'
;
import
{
join
}
from
'
vs/base/common/path
'
;
import
{
statSync
,
readFileSync
}
from
'
fs
'
;
import
{
writeFileSync
,
readdirSync
}
from
'
vs/base/node/pfs
'
;
import
{
writeFileSync
}
from
'
vs/base/node/pfs
'
;
/**
* This code is also used by standalone cli's. Avoid adding any other dependencies.
...
...
@@ -219,41 +218,6 @@ export function buildVersionMessage(version: string | undefined, commit: string
return
`
${
version
||
localize
(
'
unknownVersion
'
,
"
Unknown version
"
)}
\n
${
commit
||
localize
(
'
unknownCommit
'
,
"
Unknown commit
"
)}
\n
${
process
.
arch
}
`
;
}
export
function
buildTelemetryMessage
(
appRoot
:
string
,
extensionsPath
:
string
):
string
{
// Gets all the directories inside the extension directory
const
dirs
=
readdirSync
(
extensionsPath
).
filter
(
files
=>
{
// This handles case where broken symbolic links can cause statSync to throw and error
try
{
return
statSync
(
join
(
extensionsPath
,
files
)).
isDirectory
();
}
catch
{
return
false
;
}
});
const
telemetryJsonFolders
:
string
[]
=
[];
dirs
.
forEach
((
dir
)
=>
{
const
files
=
readdirSync
(
join
(
extensionsPath
,
dir
)).
filter
(
file
=>
file
===
'
telemetry.json
'
);
// We know it contains a telemetry.json file so we add it to the list of folders which have one
if
(
files
.
length
===
1
)
{
telemetryJsonFolders
.
push
(
dir
);
}
});
const
mergedTelemetry
=
Object
.
create
(
null
);
// Simple function to merge the telemetry into one json object
const
mergeTelemetry
=
(
contents
:
string
,
dirName
:
string
)
=>
{
const
telemetryData
=
JSON
.
parse
(
contents
);
mergedTelemetry
[
dirName
]
=
telemetryData
;
};
telemetryJsonFolders
.
forEach
((
folder
)
=>
{
const
contents
=
readFileSync
(
join
(
extensionsPath
,
folder
,
'
telemetry.json
'
)).
toString
();
mergeTelemetry
(
contents
,
folder
);
});
let
contents
=
readFileSync
(
join
(
appRoot
,
'
telemetry-core.json
'
)).
toString
();
mergeTelemetry
(
contents
,
'
vscode-core
'
);
contents
=
readFileSync
(
join
(
appRoot
,
'
telemetry-extensions.json
'
)).
toString
();
mergeTelemetry
(
contents
,
'
vscode-extensions
'
);
return
JSON
.
stringify
(
mergedTelemetry
,
null
,
4
);
}
/**
* Converts an argument into an array
* @param arg a argument value. Can be undefined, an entry or an array
...
...
src/vs/platform/telemetry/node/telemetry.ts
0 → 100644
浏览文件 @
01defd1c
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
readdirSync
}
from
'
vs/base/node/pfs
'
;
import
{
statSync
,
readFileSync
}
from
'
fs
'
;
import
{
join
}
from
'
vs/base/common/path
'
;
export
function
buildTelemetryMessage
(
appRoot
:
string
,
extensionsPath
:
string
):
string
{
// Gets all the directories inside the extension directory
const
dirs
=
readdirSync
(
extensionsPath
).
filter
(
files
=>
{
// This handles case where broken symbolic links can cause statSync to throw and error
try
{
return
statSync
(
join
(
extensionsPath
,
files
)).
isDirectory
();
}
catch
{
return
false
;
}
});
const
telemetryJsonFolders
:
string
[]
=
[];
dirs
.
forEach
((
dir
)
=>
{
const
files
=
readdirSync
(
join
(
extensionsPath
,
dir
)).
filter
(
file
=>
file
===
'
telemetry.json
'
);
// We know it contains a telemetry.json file so we add it to the list of folders which have one
if
(
files
.
length
===
1
)
{
telemetryJsonFolders
.
push
(
dir
);
}
});
const
mergedTelemetry
=
Object
.
create
(
null
);
// Simple function to merge the telemetry into one json object
const
mergeTelemetry
=
(
contents
:
string
,
dirName
:
string
)
=>
{
const
telemetryData
=
JSON
.
parse
(
contents
);
mergedTelemetry
[
dirName
]
=
telemetryData
;
};
telemetryJsonFolders
.
forEach
((
folder
)
=>
{
const
contents
=
readFileSync
(
join
(
extensionsPath
,
folder
,
'
telemetry.json
'
)).
toString
();
mergeTelemetry
(
contents
,
folder
);
});
let
contents
=
readFileSync
(
join
(
appRoot
,
'
telemetry-core.json
'
)).
toString
();
mergeTelemetry
(
contents
,
'
vscode-core
'
);
contents
=
readFileSync
(
join
(
appRoot
,
'
telemetry-extensions.json
'
)).
toString
();
mergeTelemetry
(
contents
,
'
vscode-extensions
'
);
return
JSON
.
stringify
(
mergedTelemetry
,
null
,
4
);
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录