Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
3c3395c6
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,发现更多精彩内容 >>
未验证
提交
3c3395c6
编写于
11月 10, 2017
作者:
J
João Moreno
提交者:
GitHub
11月 10, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #31487 from excerebrose/extensions-repository-url
Displaying Repository URL (Git Link) on Extensions Page.
上级
5b702dc0
eed1e3b3
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
48 addition
and
4 deletion
+48
-4
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
+22
-1
src/vs/workbench/parts/extensions/browser/extensionEditor.ts
src/vs/workbench/parts/extensions/browser/extensionEditor.ts
+14
-0
src/vs/workbench/parts/extensions/common/extensions.ts
src/vs/workbench/parts/extensions/common/extensions.ts
+1
-0
src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts
...bench/parts/extensions/node/extensionsWorkbenchService.ts
+4
-0
src/vs/workbench/parts/extensions/test/electron-browser/extensionsWorkbenchService.test.ts
.../test/electron-browser/extensionsWorkbenchService.test.ts
+6
-3
未找到文件。
src/vs/platform/extensionManagement/common/extensionManagement.ts
浏览文件 @
3c3395c6
...
...
@@ -133,6 +133,7 @@ export interface IGalleryExtensionAssets {
download
:
IGalleryExtensionAsset
;
icon
:
IGalleryExtensionAsset
;
license
:
IGalleryExtensionAsset
;
repository
:
IGalleryExtensionAsset
;
}
export
interface
IExtensionIdentifier
{
...
...
src/vs/platform/extensionManagement/node/extensionGalleryService.ts
浏览文件 @
3c3395c6
...
...
@@ -106,6 +106,7 @@ const AssetType = {
Manifest
:
'
Microsoft.VisualStudio.Code.Manifest
'
,
VSIX
:
'
Microsoft.VisualStudio.Services.VSIXPackage
'
,
License
:
'
Microsoft.VisualStudio.Services.Content.License
'
,
Repository
:
'
Microsoft.VisualStudio.Services.Links.Source
'
};
const
PropertyType
=
{
...
...
@@ -199,6 +200,25 @@ function getStatistic(statistics: IRawGalleryExtensionStatistics[], name: string
function
getVersionAsset
(
version
:
IRawGalleryExtensionVersion
,
type
:
string
):
IGalleryExtensionAsset
{
const
result
=
version
.
files
.
filter
(
f
=>
f
.
assetType
===
type
)[
0
];
if
(
type
===
AssetType
.
Repository
)
{
const
results
=
version
.
properties
.
filter
(
p
=>
p
.
key
===
type
);
const
gitRegExp
=
new
RegExp
(
'
((git|ssh|http(s)?)|(git@[
\
w
\
.]+))(:(//)?)([
\
w
\
.@
\
:/
\
-~]+)(
\
.git)(/)?
'
);
const
uri
=
results
.
filter
(
r
=>
gitRegExp
.
test
(
r
.
value
))[
0
];
if
(
!
uri
)
{
return
{
uri
:
null
,
fallbackUri
:
null
};
}
return
{
uri
:
uri
.
value
,
fallbackUri
:
uri
.
value
,
};
}
if
(
!
result
)
{
if
(
type
===
AssetType
.
Icon
)
{
const
uri
=
require
.
toUrl
(
'
./media/defaultIcon.png
'
);
...
...
@@ -240,7 +260,8 @@ function toExtension(galleryExtension: IRawGalleryExtension, extensionsGalleryUr
changelog
:
getVersionAsset
(
version
,
AssetType
.
Changelog
),
download
:
getVersionAsset
(
version
,
AssetType
.
VSIX
),
icon
:
getVersionAsset
(
version
,
AssetType
.
Icon
),
license
:
getVersionAsset
(
version
,
AssetType
.
License
)
license
:
getVersionAsset
(
version
,
AssetType
.
License
),
repository
:
getVersionAsset
(
version
,
AssetType
.
Repository
),
};
return
{
...
...
src/vs/workbench/parts/extensions/browser/extensionEditor.ts
浏览文件 @
3c3395c6
...
...
@@ -157,6 +157,7 @@ export class ExtensionEditor extends BaseEditor {
private
publisher
:
HTMLElement
;
private
installCount
:
HTMLElement
;
private
rating
:
HTMLElement
;
private
repository
:
HTMLElement
;
private
description
:
HTMLElement
;
private
extensionActionBar
:
ActionBar
;
private
navbar
:
NavBar
;
...
...
@@ -222,6 +223,10 @@ export class ExtensionEditor extends BaseEditor {
this
.
rating
=
append
(
subtitle
,
$
(
'
span.rating.clickable
'
,
{
title
:
localize
(
'
rating
'
,
"
Rating
"
)
}));
this
.
repository
=
append
(
subtitle
,
$
(
'
span.repository.clickable
'
));
this
.
repository
.
textContent
=
localize
(
'
repository
'
,
'
Repository
'
);
this
.
repository
.
style
.
display
=
'
none
'
;
this
.
license
=
append
(
subtitle
,
$
(
'
span.license.clickable
'
));
this
.
license
.
textContent
=
localize
(
'
license
'
,
'
License
'
);
this
.
license
.
style
.
display
=
'
none
'
;
...
...
@@ -311,6 +316,15 @@ export class ExtensionEditor extends BaseEditor {
}
}
if
(
extension
.
repository
)
{
this
.
repository
.
onclick
=
finalHandler
(()
=>
window
.
open
(
extension
.
repository
));
this
.
repository
.
style
.
display
=
'
initial
'
;
}
else
{
this
.
repository
.
onclick
=
null
;
this
.
repository
.
style
.
display
=
'
none
'
;
}
const
install
=
this
.
instantiationService
.
createInstance
(
InstallWidget
,
this
.
installCount
,
{
extension
});
this
.
transientDisposables
.
push
(
install
);
...
...
src/vs/workbench/parts/extensions/common/extensions.ts
浏览文件 @
3c3395c6
...
...
@@ -36,6 +36,7 @@ export interface IExtension {
latestVersion
:
string
;
description
:
string
;
url
:
string
;
repository
:
string
;
iconUrl
:
string
;
iconUrlFallback
:
string
;
licenseUrl
:
string
;
...
...
src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts
浏览文件 @
3c3395c6
...
...
@@ -141,6 +141,10 @@ class Extension implements IExtension {
return
require
.
toUrl
(
'
../browser/media/defaultIcon.png
'
);
}
get
repository
():
string
{
return
this
.
gallery
&&
this
.
gallery
.
assets
.
repository
.
uri
;
}
get
licenseUrl
():
string
{
return
this
.
gallery
&&
this
.
gallery
.
assets
.
license
&&
this
.
gallery
.
assets
.
license
.
uri
;
}
...
...
src/vs/workbench/parts/extensions/test/electron-browser/extensionsWorkbenchService.test.ts
浏览文件 @
3c3395c6
...
...
@@ -102,7 +102,8 @@ suite('ExtensionsWorkbenchService Test', () => {
changelog
:
{
uri
:
'
uri:changelog
'
,
fallbackUri
:
'
fallback:changlog
'
},
download
:
{
uri
:
'
uri:download
'
,
fallbackUri
:
'
fallback:download
'
},
icon
:
{
uri
:
'
uri:icon
'
,
fallbackUri
:
'
fallback:icon
'
},
license
:
{
uri
:
'
uri:license
'
,
fallbackUri
:
'
fallback:license
'
}
license
:
{
uri
:
'
uri:license
'
,
fallbackUri
:
'
fallback:license
'
},
repository
:
{
uri
:
'
uri:repository
'
,
fallbackUri
:
'
fallback:repository
'
},
});
testObject
=
instantiationService
.
createInstance
(
ExtensionsWorkbenchService
);
...
...
@@ -250,7 +251,8 @@ suite('ExtensionsWorkbenchService Test', () => {
changelog
:
{
uri
:
'
uri:changelog
'
,
fallbackUri
:
'
fallback:changlog
'
},
download
:
{
uri
:
'
uri:download
'
,
fallbackUri
:
'
fallback:download
'
},
icon
:
{
uri
:
'
uri:icon
'
,
fallbackUri
:
'
fallback:icon
'
},
license
:
{
uri
:
'
uri:license
'
,
fallbackUri
:
'
fallback:license
'
}
license
:
{
uri
:
'
uri:license
'
,
fallbackUri
:
'
fallback:license
'
},
repository
:
{
uri
:
'
uri:repository
'
,
fallbackUri
:
'
fallback:repository
'
},
});
instantiationService
.
stubPromise
(
IExtensionManagementService
,
'
getInstalled
'
,
[
local1
,
local2
]);
instantiationService
.
stubPromise
(
IExtensionGalleryService
,
'
query
'
,
aPage
(
gallery1
));
...
...
@@ -996,7 +998,8 @@ suite('ExtensionsWorkbenchService Test', () => {
icon
:
null
,
license
:
null
,
manifest
:
null
,
readme
:
null
readme
:
null
,
repository
:
null
};
function
aGalleryExtension
(
name
:
string
,
properties
:
any
=
{},
galleryExtensionProperties
:
any
=
{},
assets
:
IGalleryExtensionAssets
=
noAssets
):
IGalleryExtension
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录