Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
9c3522ec
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,发现更多精彩内容 >>
提交
9c3522ec
编写于
11月 16, 2020
作者:
R
Rachel Macfarlane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Include experiment info in issue reporter data
上级
274bf78d
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
104 addition
and
2 deletion
+104
-2
src/vs/code/electron-sandbox/issue/issueReporterMain.ts
src/vs/code/electron-sandbox/issue/issueReporterMain.ts
+14
-1
src/vs/code/electron-sandbox/issue/issueReporterModel.ts
src/vs/code/electron-sandbox/issue/issueReporterModel.ts
+21
-0
src/vs/code/electron-sandbox/issue/issueReporterPage.ts
src/vs/code/electron-sandbox/issue/issueReporterPage.ts
+10
-0
src/vs/code/electron-sandbox/issue/test/testReporterModel.test.ts
...ode/electron-sandbox/issue/test/testReporterModel.test.ts
+53
-0
src/vs/platform/issue/common/issue.ts
src/vs/platform/issue/common/issue.ts
+1
-0
src/vs/workbench/contrib/issue/electron-sandbox/issueService.ts
.../workbench/contrib/issue/electron-sandbox/issueService.ts
+5
-1
未找到文件。
src/vs/code/electron-sandbox/issue/issueReporterMain.ts
浏览文件 @
9c3522ec
...
...
@@ -150,6 +150,7 @@ export class IssueReporter extends Disposable {
applyZoom
(
configuration
.
data
.
zoomLevel
);
this
.
applyStyles
(
configuration
.
data
.
styles
);
this
.
handleExtensionData
(
configuration
.
data
.
enabledExtensions
);
this
.
updateExperimentsInfo
(
configuration
.
data
.
experiments
);
}
render
():
void
{
...
...
@@ -285,7 +286,7 @@ export class IssueReporter extends Disposable {
this
.
render
();
});
([
'
includeSystemInfo
'
,
'
includeProcessInfo
'
,
'
includeWorkspaceInfo
'
,
'
includeExtensions
'
,
'
includeSearchedExtensions
'
,
'
includeSettingsSearchDetails
'
]
as
const
).
forEach
(
elementId
=>
{
([
'
includeSystemInfo
'
,
'
includeProcessInfo
'
,
'
includeWorkspaceInfo
'
,
'
includeExtensions
'
,
'
includeSearchedExtensions
'
,
'
includeSettingsSearchDetails
'
,
'
includeExperiments
'
]
as
const
).
forEach
(
elementId
=>
{
this
.
addEventListener
(
elementId
,
'
click
'
,
(
event
:
Event
)
=>
{
event
.
stopPropagation
();
this
.
issueReporterModel
.
update
({
[
elementId
]:
!
this
.
issueReporterModel
.
getData
()[
elementId
]
});
...
...
@@ -695,6 +696,7 @@ export class IssueReporter extends Disposable {
const
extensionsBlock
=
document
.
querySelector
(
'
.block-extensions
'
);
const
searchedExtensionsBlock
=
document
.
querySelector
(
'
.block-searchedExtensions
'
);
const
settingsSearchResultsBlock
=
document
.
querySelector
(
'
.block-settingsSearchResults
'
);
const
experimentsBlock
=
document
.
querySelector
(
'
.block-experiments
'
);
const
problemSource
=
this
.
getElementById
(
'
problem-source
'
)
!
;
const
descriptionTitle
=
this
.
getElementById
(
'
issue-description-label
'
)
!
;
...
...
@@ -709,6 +711,7 @@ export class IssueReporter extends Disposable {
hide
(
extensionsBlock
);
hide
(
searchedExtensionsBlock
);
hide
(
settingsSearchResultsBlock
);
hide
(
experimentsBlock
);
hide
(
problemSource
);
hide
(
extensionSelector
);
...
...
@@ -716,6 +719,7 @@ export class IssueReporter extends Disposable {
show
(
blockContainer
);
show
(
systemBlock
);
show
(
problemSource
);
show
(
experimentsBlock
);
if
(
fileOnExtension
)
{
show
(
extensionSelector
);
...
...
@@ -730,6 +734,7 @@ export class IssueReporter extends Disposable {
show
(
processBlock
);
show
(
workspaceBlock
);
show
(
problemSource
);
show
(
experimentsBlock
);
if
(
fileOnExtension
)
{
show
(
extensionSelector
);
...
...
@@ -1084,6 +1089,14 @@ export class IssueReporter extends Disposable {
}
}
private
updateExperimentsInfo
(
experimentInfo
:
string
|
undefined
)
{
this
.
issueReporterModel
.
update
({
experimentInfo
});
const
target
=
document
.
querySelector
<
HTMLElement
>
(
'
.block-experiments .block-info
'
);
if
(
target
)
{
target
.
textContent
=
experimentInfo
?
experimentInfo
:
localize
(
'
noCurrentExperiments
'
,
"
No current experiments.
"
);
}
}
private
getExtensionTableHtml
(
extensions
:
IssueReporterExtensionData
[]):
HTMLTableElement
{
return
$
(
'
table
'
,
undefined
,
$
(
'
tr
'
,
undefined
,
...
...
src/vs/code/electron-sandbox/issue/issueReporterModel.ts
浏览文件 @
9c3522ec
...
...
@@ -21,6 +21,7 @@ export interface IssueReporterData {
includeExtensions
:
boolean
;
includeSearchedExtensions
:
boolean
;
includeSettingsSearchDetails
:
boolean
;
includeExperiments
:
boolean
;
numberOfThemeExtesions
?:
number
;
allExtensions
:
IssueReporterExtensionData
[];
...
...
@@ -31,6 +32,7 @@ export interface IssueReporterData {
actualSearchResults
?:
ISettingSearchResult
[];
query
?:
string
;
filterResultCount
?:
number
;
experimentInfo
?:
string
;
}
export
class
IssueReporterModel
{
...
...
@@ -45,6 +47,7 @@ export class IssueReporterModel {
includeExtensions
:
true
,
includeSearchedExtensions
:
true
,
includeSettingsSearchDetails
:
true
,
includeExperiments
:
true
,
allExtensions
:
[]
};
...
...
@@ -133,6 +136,12 @@ ${this.getInfos()}
}
}
if
(
this
.
_data
.
issueType
===
IssueType
.
Bug
||
this
.
_data
.
issueType
===
IssueType
.
PerformanceIssue
)
{
if
(
this
.
_data
.
includeExperiments
&&
this
.
_data
.
experimentInfo
)
{
info
+=
this
.
generateExperimentsInfoMd
();
}
}
return
info
;
}
...
...
@@ -203,6 +212,18 @@ ${this._data.processInfo}
${
this
.
_data
.
workspaceInfo
}
;
\`\`\`
</details>
`
;
}
private
generateExperimentsInfoMd
():
string
{
return
`<details>
<summary>A/B Experiments</summary>
\`\`\`
${
this
.
_data
.
experimentInfo
}
\`\`\`
</details>
`
;
}
...
...
src/vs/code/electron-sandbox/issue/issueReporterPage.ts
浏览文件 @
9c3522ec
...
...
@@ -131,5 +131,15 @@ export default (): string => `
<!-- To be dynamically filled -->
</div>
</div>
<div class="block block-experiments">
<input class="sendData" type="checkbox" id="includeExperiments" checked/>
<label class="caption" for="includeExperiments">
${
escape
(
localize
({
key
:
'
sendExperiments
'
,
comment
:
[
'
{0} is either "show" or "hide" and is a button to toggle the visibility of the current experiment information
'
]
},
"
Include A/B experiment info ({0})
"
)).
replace
(
'
{0}
'
,
`<a href="#" class="showInfo">
${
escape
(
localize
(
'
show
'
,
"
show
"
))}
</a>`
)}
</label>
<pre class="block-info hidden">
<!-- To be dynamically filled -->
</pre>
</div>
</div>
</div>`
;
src/vs/code/electron-sandbox/issue/test/testReporterModel.test.ts
浏览文件 @
9c3522ec
...
...
@@ -20,6 +20,7 @@ suite('IssueReporter', () => {
includeExtensions
:
true
,
includeSearchedExtensions
:
true
,
includeSettingsSearchDetails
:
true
,
includeExperiments
:
true
,
issueType
:
0
});
});
...
...
@@ -78,6 +79,58 @@ OS version: undefined
|Screen Reader|no|
|VM|0%|
</details>Extensions: none
<!-- generated by issue reporter -->`
);
});
test
(
'
serializes experiment info when data is provided
'
,
()
=>
{
const
issueReporterModel
=
new
IssueReporterModel
({
issueType
:
0
,
systemInfo
:
{
os
:
'
Darwin
'
,
cpus
:
'
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 x 2800)
'
,
memory
:
'
16.00GB
'
,
vmHint
:
'
0%
'
,
processArgs
:
''
,
screenReader
:
'
no
'
,
remoteData
:
[],
gpuStatus
:
{
'
2d_canvas
'
:
'
enabled
'
,
'
checker_imaging
'
:
'
disabled_off
'
}
},
experimentInfo
:
'
vsliv695:30137379
\n
vsins829:30139715
'
});
assert
.
equal
(
issueReporterModel
.
serialize
(),
`
Issue Type: <b>Bug</b>
undefined
VS Code version: undefined
OS version: undefined
<details>
<summary>System Info</summary>
|Item|Value|
|---|---|
|CPUs|Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 x 2800)|
|GPU Status|2d_canvas: enabled<br>checker_imaging: disabled_off|
|Load (avg)|undefined|
|Memory (System)|16.00GB|
|Process Argv||
|Screen Reader|no|
|VM|0%|
</details>Extensions: none<details>
<summary>A/B Experiments</summary>
\`\`\`
vsliv695:30137379
vsins829:30139715
\`\`\`
</details>
<!-- generated by issue reporter -->`
);
});
...
...
src/vs/platform/issue/common/issue.ts
浏览文件 @
9c3522ec
...
...
@@ -55,6 +55,7 @@ export interface IssueReporterData extends WindowData {
enabledExtensions
:
IssueReporterExtensionData
[];
issueType
?:
IssueType
;
extensionId
?:
string
;
experiments
?:
string
;
readonly
issueTitle
?:
string
;
readonly
issueBody
?:
string
;
}
...
...
src/vs/workbench/contrib/issue/electron-sandbox/issueService.ts
浏览文件 @
9c3522ec
...
...
@@ -16,6 +16,7 @@ import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/enviro
import
{
ExtensionType
}
from
'
vs/platform/extensions/common/extensions
'
;
import
{
process
}
from
'
vs/base/parts/sandbox/electron-sandbox/globals
'
;
import
{
IProductService
}
from
'
vs/platform/product/common/productService
'
;
import
{
ITASExperimentService
}
from
'
vs/workbench/services/experiment/common/experimentService
'
;
export
class
WorkbenchIssueService
implements
IWorkbenchIssueService
{
declare
readonly
_serviceBrand
:
undefined
;
...
...
@@ -26,7 +27,8 @@ export class WorkbenchIssueService implements IWorkbenchIssueService {
@
IExtensionManagementService
private
readonly
extensionManagementService
:
IExtensionManagementService
,
@
IWorkbenchExtensionEnablementService
private
readonly
extensionEnablementService
:
IWorkbenchExtensionEnablementService
,
@
INativeWorkbenchEnvironmentService
private
readonly
environmentService
:
INativeWorkbenchEnvironmentService
,
@
IProductService
private
readonly
productService
:
IProductService
@
IProductService
private
readonly
productService
:
IProductService
,
@
ITASExperimentService
private
readonly
experimentService
:
ITASExperimentService
)
{
}
async
openReporter
(
dataOverrides
:
Partial
<
IssueReporterData
>
=
{}):
Promise
<
void
>
{
...
...
@@ -49,11 +51,13 @@ export class WorkbenchIssueService implements IWorkbenchIssueService {
isBuiltin
,
};
});
const
experiments
=
await
this
.
experimentService
.
getCurrentExperiments
();
const
theme
=
this
.
themeService
.
getColorTheme
();
const
issueReporterData
:
IssueReporterData
=
Object
.
assign
({
styles
:
getIssueReporterStyles
(
theme
),
zoomLevel
:
getZoomLevel
(),
enabledExtensions
:
extensionData
,
experiments
:
experiments
?.
join
(
'
\n
'
)
},
dataOverrides
);
return
this
.
issueService
.
openReporter
(
issueReporterData
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录