Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
7fd4a286
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,发现更多精彩内容 >>
提交
7fd4a286
编写于
8月 15, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
show license link only if extension sets one
fixes #10464
上级
1a544350
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
37 addition
and
18 deletion
+37
-18
src/vs/platform/extensionManagement/common/extensionManagement.ts
...latform/extensionManagement/common/extensionManagement.ts
+1
-0
src/vs/platform/extensionManagement/node/extensionGalleryService.ts
...tform/extensionManagement/node/extensionGalleryService.ts
+18
-16
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
...ench/parts/extensions/electron-browser/extensionEditor.ts
+9
-2
src/vs/workbench/parts/extensions/electron-browser/extensions.ts
...workbench/parts/extensions/electron-browser/extensions.ts
+1
-0
src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
...extensions/electron-browser/extensionsWorkbenchService.ts
+8
-0
未找到文件。
src/vs/platform/extensionManagement/common/extensionManagement.ts
浏览文件 @
7fd4a286
...
...
@@ -29,6 +29,7 @@ export interface IGalleryVersion {
readmeUrl
:
string
;
downloadUrl
:
string
;
iconUrl
:
string
;
licenseUrl
:
string
;
downloadHeaders
:
{
[
key
:
string
]:
string
;
};
}
...
...
src/vs/platform/extensionManagement/node/extensionGalleryService.ts
浏览文件 @
7fd4a286
...
...
@@ -68,7 +68,8 @@ const AssetType = {
Icon
:
'
Microsoft.VisualStudio.Services.Icons.Default
'
,
Details
:
'
Microsoft.VisualStudio.Services.Content.Details
'
,
Manifest
:
'
Microsoft.VisualStudio.Code.Manifest
'
,
VSIX
:
'
Microsoft.VisualStudio.Services.VSIXPackage
'
VSIX
:
'
Microsoft.VisualStudio.Services.VSIXPackage
'
,
License
:
'
Microsoft.VisualStudio.Services.Content.License
'
};
interface
ICriterium
{
...
...
@@ -152,21 +153,22 @@ function getStatistic(statistics: IRawGalleryExtensionStatistics[], name: string
return
result
?
result
.
value
:
0
;
}
function
getAssetSource
(
files
:
IRawGalleryExtensionFile
[],
type
:
string
):
string
{
const
result
=
files
.
filter
(
f
=>
f
.
assetType
===
type
)[
0
];
return
result
&&
result
.
source
;
}
function
toExtension
(
galleryExtension
:
IRawGalleryExtension
,
extensionsGalleryUrl
:
string
,
downloadHeaders
:
any
):
IGalleryExtension
{
const
versions
=
galleryExtension
.
versions
.
map
<
IGalleryVersion
>
(
v
=>
{
const
iconFile
=
v
.
files
.
filter
(
f
=>
f
.
assetType
===
AssetType
.
Icon
)[
0
];
const
iconUrl
=
iconFile
?
iconFile
.
source
:
require
.
toUrl
(
'
./media/defaultIcon.png
'
);
return
{
version
:
v
.
version
,
date
:
v
.
lastUpdated
,
downloadHeaders
,
downloadUrl
:
`
${
v
.
assetUri
}
/
${
AssetType
.
VSIX
}
?install=true`
,
manifestUrl
:
`
${
v
.
assetUri
}
/
${
AssetType
.
Manifest
}
`
,
readmeUrl
:
`
${
v
.
assetUri
}
/
${
AssetType
.
Details
}
`
,
iconUrl
};
});
const
versions
=
galleryExtension
.
versions
.
map
<
IGalleryVersion
>
(
v
=>
({
version
:
v
.
version
,
date
:
v
.
lastUpdated
,
downloadHeaders
,
downloadUrl
:
`
${
v
.
assetUri
}
/
${
AssetType
.
VSIX
}
?install=true`
,
manifestUrl
:
`
${
v
.
assetUri
}
/
${
AssetType
.
Manifest
}
`
,
readmeUrl
:
`
${
v
.
assetUri
}
/
${
AssetType
.
Details
}
`
,
iconUrl
:
getAssetSource
(
v
.
files
,
AssetType
.
Icon
)
||
require
.
toUrl
(
'
./media/defaultIcon.png
'
),
licenseUrl
:
getAssetSource
(
v
.
files
,
AssetType
.
License
)
}));
return
{
id
:
galleryExtension
.
extensionId
,
...
...
@@ -222,7 +224,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
.
withFlags
(
Flags
.
IncludeVersions
,
Flags
.
IncludeCategoryAndTags
,
Flags
.
IncludeAssetUri
,
Flags
.
IncludeStatistics
,
Flags
.
IncludeFiles
)
.
withPage
(
1
,
pageSize
)
.
withFilter
(
FilterType
.
Target
,
'
Microsoft.VisualStudio.Code
'
)
.
withAssetTypes
(
AssetType
.
Icon
);
.
withAssetTypes
(
AssetType
.
Icon
,
AssetType
.
License
);
if
(
text
)
{
query
=
query
.
withFilter
(
FilterType
.
SearchText
,
text
).
withSortBy
(
SortBy
.
NoneOrRelevance
);
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
浏览文件 @
7fd4a286
...
...
@@ -109,6 +109,7 @@ export class ExtensionEditor extends BaseEditor {
this
.
license
=
append
(
subtitle
,
$
<
HTMLAnchorElement
>
(
'
a.license
'
));
this
.
license
.
href
=
'
#
'
;
this
.
license
.
textContent
=
localize
(
'
license
'
,
'
License
'
);
this
.
license
.
style
.
display
=
'
none
'
;
this
.
description
=
append
(
details
,
$
(
'
.description
'
));
...
...
@@ -131,16 +132,22 @@ export class ExtensionEditor extends BaseEditor {
if
(
product
.
extensionsGallery
)
{
const
extensionUrl
=
`
${
product
.
extensionsGallery
.
itemUrl
}
?itemName=
${
extension
.
publisher
}
.
${
extension
.
name
}
`
;
const
licenseUrl
=
`
${
product
.
extensionsGallery
.
itemUrl
}
/
${
extension
.
publisher
}
.
${
extension
.
name
}
/license`
;
this
.
name
.
onclick
=
finalHandler
(()
=>
shell
.
openExternal
(
extensionUrl
));
this
.
license
.
onclick
=
finalHandler
(()
=>
shell
.
openExternal
(
licenseUrl
));
this
.
rating
.
onclick
=
finalHandler
(()
=>
shell
.
openExternal
(
`
${
extensionUrl
}
#review-details`
));
this
.
publisher
.
onclick
=
finalHandler
(()
=>
{
this
.
viewletService
.
openViewlet
(
VIEWLET_ID
,
true
)
.
then
(
viewlet
=>
viewlet
as
IExtensionsViewlet
)
.
done
(
viewlet
=>
viewlet
.
search
(
`publisher:"
${
extension
.
publisherDisplayName
}
"`
,
true
));
});
if
(
extension
.
licenseUrl
)
{
this
.
license
.
onclick
=
finalHandler
(()
=>
shell
.
openExternal
(
extension
.
licenseUrl
));
this
.
license
.
style
.
display
=
'
initial
'
;
}
else
{
this
.
license
.
onclick
=
null
;
this
.
license
.
style
.
display
=
'
none
'
;
}
}
const
install
=
this
.
instantiationService
.
createInstance
(
InstallWidget
,
this
.
installCount
,
{
extension
});
...
...
src/vs/workbench/parts/extensions/electron-browser/extensions.ts
浏览文件 @
7fd4a286
...
...
@@ -34,6 +34,7 @@ export interface IExtension {
description
:
string
;
readmeUrl
:
string
;
iconUrl
:
string
;
licenseUrl
:
string
;
installCount
:
number
;
rating
:
number
;
ratingCount
:
number
;
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
浏览文件 @
7fd4a286
...
...
@@ -98,6 +98,14 @@ class Extension implements IExtension {
return
require
.
toUrl
(
'
./media/defaultIcon.png
'
);
}
get
licenseUrl
():
string
{
if
(
this
.
gallery
)
{
return
this
.
gallery
.
versions
[
0
].
licenseUrl
;
}
return
null
;
}
get
state
():
ExtensionState
{
return
this
.
stateProvider
(
this
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录