Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
eca0690b
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
eca0690b
编写于
3月 05, 2020
作者:
M
Matt Bierner
提交者:
GitHub
3月 05, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow issue reporter to work on built-in extensions (#92040)
Fixes #91029
上级
bab248b5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
26 addition
and
15 deletion
+26
-15
extensions/typescript-language-features/src/typescriptServiceClient.ts
...pescript-language-features/src/typescriptServiceClient.ts
+2
-1
src/vs/code/electron-browser/issue/issueReporterMain.ts
src/vs/code/electron-browser/issue/issueReporterMain.ts
+16
-9
src/vs/platform/issue/node/issue.ts
src/vs/platform/issue/node/issue.ts
+1
-0
src/vs/workbench/contrib/issue/electron-browser/issueService.ts
.../workbench/contrib/issue/electron-browser/issueService.ts
+7
-5
未找到文件。
extensions/typescript-language-features/src/typescriptServiceClient.ts
浏览文件 @
eca0690b
...
...
@@ -872,7 +872,7 @@ export default class TypeScriptServiceClient extends Disposable implements IType
}
}
function
getReportIssueArgsForError
(
error
:
TypeScriptServerError
):
{
issueTitle
:
string
,
issueBody
:
string
}
|
undefined
{
function
getReportIssueArgsForError
(
error
:
TypeScriptServerError
):
{
extensionId
:
string
,
issueTitle
:
string
,
issueBody
:
string
}
|
undefined
{
if
(
!
error
.
serverStack
||
!
error
.
serverMessage
)
{
return
undefined
;
}
...
...
@@ -880,6 +880,7 @@ function getReportIssueArgsForError(error: TypeScriptServerError): { issueTitle:
// Note these strings are intentionally not localized
// as we want users to file issues in english
return
{
extensionId
:
'
vscode.typescript-language-features
'
,
issueTitle
:
`TS Server fatal error:
${
error
.
serverMessage
}
`
,
issueBody
:
`**TypeScript Version:**
${
error
.
version
.
apiVersion
?.
fullVersionString
}
...
...
src/vs/code/electron-browser/issue/issueReporterMain.ts
浏览文件 @
eca0690b
...
...
@@ -81,6 +81,8 @@ export class IssueReporter extends Disposable {
this
.
initServices
(
configuration
);
const
isSnap
=
process
.
platform
===
'
linux
'
&&
process
.
env
.
SNAP
&&
process
.
env
.
SNAP_REVISION
;
const
targetExtension
=
configuration
.
data
.
extensionId
?
configuration
.
data
.
enabledExtensions
.
find
(
extension
=>
extension
.
id
===
configuration
.
data
.
extensionId
)
:
undefined
;
this
.
issueReporterModel
=
new
IssueReporterModel
({
issueType
:
configuration
.
data
.
issueType
||
IssueType
.
Bug
,
versionInfo
:
{
...
...
@@ -88,8 +90,8 @@ export class IssueReporter extends Disposable {
os
:
`
${
os
.
type
()}
${
os
.
arch
()}
${
os
.
release
()}${
isSnap
?
'
snap
'
:
''
}
`
},
extensionsDisabled
:
!!
this
.
environmentService
.
disableExtensions
,
fileOnExtension
:
configuration
.
data
.
extensionId
?
true
:
undefined
,
selectedExtension
:
configuration
.
data
.
extensionId
?
configuration
.
data
.
enabledExtensions
.
filter
(
extension
=>
extension
.
id
===
configuration
.
data
.
extensionId
)[
0
]
:
undefined
fileOnExtension
:
configuration
.
data
.
extensionId
?
!
targetExtension
?.
isBuiltin
:
undefined
,
selectedExtension
:
targetExtension
,
});
const
issueReporterElement
=
this
.
getElementById
(
'
issue-reporter
'
);
...
...
@@ -260,19 +262,20 @@ export class IssueReporter extends Disposable {
}
private
handleExtensionData
(
extensions
:
IssueReporterExtensionData
[])
{
const
{
nonThemes
,
themes
}
=
collections
.
groupBy
(
extensions
,
ext
=>
{
const
installedExtensions
=
extensions
.
filter
(
x
=>
!
x
.
isBuiltin
);
const
{
nonThemes
,
themes
}
=
collections
.
groupBy
(
installedExtensions
,
ext
=>
{
return
ext
.
isTheme
?
'
themes
'
:
'
nonThemes
'
;
});
const
numberOfThemeExtesions
=
themes
&&
themes
.
length
;
this
.
issueReporterModel
.
update
({
numberOfThemeExtesions
,
enabledNonThemeExtesions
:
nonThemes
,
allExtensions
:
e
xtensions
});
this
.
issueReporterModel
.
update
({
numberOfThemeExtesions
,
enabledNonThemeExtesions
:
nonThemes
,
allExtensions
:
installedE
xtensions
});
this
.
updateExtensionTable
(
nonThemes
,
numberOfThemeExtesions
);
if
(
this
.
environmentService
.
disableExtensions
||
e
xtensions
.
length
===
0
)
{
if
(
this
.
environmentService
.
disableExtensions
||
installedE
xtensions
.
length
===
0
)
{
(
<
HTMLButtonElement
>
this
.
getElementById
(
'
disableExtensions
'
)).
disabled
=
true
;
}
this
.
updateExtensionSelector
(
e
xtensions
);
this
.
updateExtensionSelector
(
installedE
xtensions
);
}
private
handleSettingsSearchData
(
data
:
ISettingsSearchIssueReporterData
):
void
{
...
...
@@ -748,10 +751,14 @@ export class IssueReporter extends Disposable {
private
setSourceOptions
():
void
{
const
sourceSelect
=
this
.
getElementById
(
'
issue-source
'
)
!
as
HTMLSelectElement
;
const
{
issueType
,
fileOnExtension
}
=
this
.
issueReporterModel
.
getData
();
const
{
issueType
,
fileOnExtension
,
selectedExtension
}
=
this
.
issueReporterModel
.
getData
();
let
selected
=
sourceSelect
.
selectedIndex
;
if
(
selected
===
-
1
&&
fileOnExtension
!==
undefined
)
{
selected
=
fileOnExtension
?
2
:
1
;
if
(
selected
===
-
1
)
{
if
(
fileOnExtension
!==
undefined
)
{
selected
=
fileOnExtension
?
2
:
1
;
}
else
if
(
selectedExtension
?.
isBuiltin
)
{
selected
=
1
;
}
}
sourceSelect
.
innerHTML
=
''
;
...
...
src/vs/platform/issue/node/issue.ts
浏览文件 @
eca0690b
...
...
@@ -49,6 +49,7 @@ export interface IssueReporterExtensionData {
version
:
string
;
id
:
string
;
isTheme
:
boolean
;
isBuiltin
:
boolean
;
displayName
:
string
|
undefined
;
repositoryUrl
:
string
|
undefined
;
bugsUrl
:
string
|
undefined
;
...
...
src/vs/workbench/contrib/issue/electron-browser/issueService.ts
浏览文件 @
eca0690b
...
...
@@ -12,9 +12,9 @@ import { IWorkbenchExtensionEnablementService } from 'vs/workbench/services/exte
import
{
webFrame
}
from
'
electron
'
;
import
{
assign
}
from
'
vs/base/common/objects
'
;
import
{
IWorkbenchIssueService
}
from
'
vs/workbench/contrib/issue/electron-browser/issue
'
;
import
{
ExtensionType
}
from
'
vs/platform/extensions/common/extensions
'
;
import
{
IWorkbenchEnvironmentService
}
from
'
vs/workbench/services/environment/common/environmentService
'
;
import
{
INativeWorkbenchEnvironmentService
}
from
'
vs/workbench/services/environment/electron-browser/environmentService
'
;
import
{
ExtensionType
}
from
'
vs/platform/extensions/common/extensions
'
;
export
class
WorkbenchIssueService
implements
IWorkbenchIssueService
{
_serviceBrand
:
undefined
;
...
...
@@ -28,12 +28,13 @@ export class WorkbenchIssueService implements IWorkbenchIssueService {
)
{
}
async
openReporter
(
dataOverrides
:
Partial
<
IssueReporterData
>
=
{}):
Promise
<
void
>
{
const
extensions
=
await
this
.
extensionManagementService
.
getInstalled
(
ExtensionType
.
User
);
const
extensions
=
await
this
.
extensionManagementService
.
getInstalled
();
const
enabledExtensions
=
extensions
.
filter
(
extension
=>
this
.
extensionEnablementService
.
isEnabled
(
extension
));
const
extensionData
:
IssueReporterExtensionData
[]
=
enabledExtensions
.
map
(
extension
=>
{
const
extensionData
=
enabledExtensions
.
map
((
extension
):
IssueReporterExtensionData
=>
{
const
{
manifest
}
=
extension
;
const
manifestKeys
=
manifest
.
contributes
?
Object
.
keys
(
manifest
.
contributes
)
:
[];
const
isTheme
=
!
manifest
.
activationEvents
&&
manifestKeys
.
length
===
1
&&
manifestKeys
[
0
]
===
'
themes
'
;
const
isBuiltin
=
extension
.
type
===
ExtensionType
.
System
;
return
{
name
:
manifest
.
name
,
publisher
:
manifest
.
publisher
,
...
...
@@ -42,14 +43,15 @@ export class WorkbenchIssueService implements IWorkbenchIssueService {
bugsUrl
:
manifest
.
bugs
&&
manifest
.
bugs
.
url
,
displayName
:
manifest
.
displayName
,
id
:
extension
.
identifier
.
id
,
isTheme
:
isTheme
isTheme
,
isBuiltin
,
};
});
const
theme
=
this
.
themeService
.
getColorTheme
();
const
issueReporterData
:
IssueReporterData
=
assign
({
styles
:
getIssueReporterStyles
(
theme
),
zoomLevel
:
webFrame
.
getZoomLevel
(),
enabledExtensions
:
extensionData
enabledExtensions
:
extensionData
,
},
dataOverrides
);
return
this
.
issueService
.
openReporter
(
issueReporterData
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录