Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
4f22d447
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 搜索 >>
提交
4f22d447
编写于
8月 23, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
galleryExtension.iconUrlFallback related to #10180
上级
8e4b3e0a
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
58 addition
and
12 deletion
+58
-12
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
+15
-1
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
...ench/parts/extensions/electron-browser/extensionEditor.ts
+8
-3
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/extensionsList.ts
...bench/parts/extensions/electron-browser/extensionsList.ts
+11
-0
src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
...extensions/electron-browser/extensionsWorkbenchService.ts
+21
-4
src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css
...rts/extensions/electron-browser/media/extensionEditor.css
+1
-4
未找到文件。
src/vs/platform/extensionManagement/common/extensionManagement.ts
浏览文件 @
4f22d447
...
...
@@ -33,6 +33,7 @@ export interface IGalleryExtensionAssets {
readme
:
string
;
download
:
string
;
icon
:
string
;
iconFallback
:
string
;
license
:
string
;
}
...
...
src/vs/platform/extensionManagement/node/extensionGalleryService.ts
浏览文件 @
4f22d447
...
...
@@ -181,11 +181,25 @@ function getAssetSource(files: IRawGalleryExtensionFile[], type: string): string
function
toExtension
(
galleryExtension
:
IRawGalleryExtension
,
extensionsGalleryUrl
:
string
,
downloadHeaders
:
{
[
key
:
string
]:
string
;
}):
IGalleryExtension
{
const
[
version
]
=
galleryExtension
.
versions
;
let
iconFallback
=
getAssetSource
(
version
.
files
,
AssetType
.
Icon
);
let
icon
:
string
;
if
(
iconFallback
)
{
const
parsedUrl
=
url
.
parse
(
iconFallback
,
true
);
parsedUrl
.
search
=
undefined
;
parsedUrl
.
query
[
'
redirect
'
]
=
'
true
'
;
icon
=
url
.
format
(
parsedUrl
);
}
else
{
iconFallback
=
icon
=
require
.
toUrl
(
'
./media/defaultIcon.png
'
);
}
const
assets
=
{
manifest
:
getAssetSource
(
version
.
files
,
AssetType
.
Manifest
),
readme
:
getAssetSource
(
version
.
files
,
AssetType
.
Details
),
download
:
`
${
getAssetSource
(
version
.
files
,
AssetType
.
VSIX
)
}
?install=true`
,
icon
:
getAssetSource
(
version
.
files
,
AssetType
.
Icon
)
||
require
.
toUrl
(
'
./media/defaultIcon.png
'
),
icon
,
iconFallback
,
license
:
getAssetSource
(
version
.
files
,
AssetType
.
License
)
};
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
浏览文件 @
4f22d447
...
...
@@ -12,6 +12,8 @@ import { marked } from 'vs/base/common/marked/marked';
import
{
onUnexpectedError
}
from
'
vs/base/common/errors
'
;
import
{
IDisposable
,
empty
,
dispose
,
toDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
Builder
}
from
'
vs/base/browser/builder
'
;
import
{
once
}
from
'
vs/base/common/event
'
;
import
{
domEvent
}
from
'
vs/base/browser/event
'
;
import
{
append
,
emmet
as
$
,
addClass
,
removeClass
,
finalHandler
}
from
'
vs/base/browser/dom
'
;
import
{
BaseEditor
}
from
'
vs/workbench/browser/parts/editor/baseEditor
'
;
import
{
IViewlet
}
from
'
vs/workbench/common/viewlet
'
;
...
...
@@ -48,7 +50,7 @@ export class ExtensionEditor extends BaseEditor {
static
ID
:
string
=
'
workbench.editor.extension
'
;
private
icon
:
HTMLElement
;
private
icon
:
HTML
Image
Element
;
private
name
:
HTMLAnchorElement
;
private
license
:
HTMLAnchorElement
;
private
publisher
:
HTMLAnchorElement
;
...
...
@@ -88,7 +90,7 @@ export class ExtensionEditor extends BaseEditor {
const
root
=
append
(
container
,
$
(
'
.extension-editor
'
));
const
header
=
append
(
root
,
$
(
'
.header
'
));
this
.
icon
=
append
(
header
,
$
(
'
.icon
'
));
this
.
icon
=
append
(
header
,
$
<
HTMLImageElement
>
(
'
img
.icon
'
));
const
details
=
append
(
header
,
$
(
'
.details
'
));
const
title
=
append
(
details
,
$
(
'
.title
'
));
...
...
@@ -124,7 +126,10 @@ export class ExtensionEditor extends BaseEditor {
const
extension
=
input
.
extension
;
this
.
telemetryService
.
publicLog
(
'
extensionGallery:openExtension
'
,
extension
.
telemetryData
);
this
.
icon
.
style
.
backgroundImage
=
`url("
${
extension
.
iconUrl
}
")`
;
const
onError
=
once
(
domEvent
(
this
.
icon
,
'
error
'
));
onError
(()
=>
this
.
icon
.
src
=
extension
.
iconUrlFallback
,
null
,
this
.
transientDisposables
);
this
.
icon
.
src
=
extension
.
iconUrl
;
this
.
name
.
textContent
=
extension
.
displayName
;
this
.
publisher
.
textContent
=
extension
.
publisherDisplayName
;
this
.
description
.
textContent
=
extension
.
description
;
...
...
src/vs/workbench/parts/extensions/electron-browser/extensions.ts
浏览文件 @
4f22d447
...
...
@@ -34,6 +34,7 @@ export interface IExtension {
description
:
string
;
readmeUrl
:
string
;
iconUrl
:
string
;
iconUrlFallback
:
string
;
licenseUrl
:
string
;
installCount
:
number
;
rating
:
number
;
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts
浏览文件 @
4f22d447
...
...
@@ -12,6 +12,8 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import
{
IMessageService
,
Severity
}
from
'
vs/platform/message/common/message
'
;
import
{
IDelegate
}
from
'
vs/base/browser/ui/list/list
'
;
import
{
IPagedRenderer
}
from
'
vs/base/browser/ui/list/listPaging
'
;
import
{
once
}
from
'
vs/base/common/event
'
;
import
{
domEvent
}
from
'
vs/base/browser/event
'
;
import
{
IExtension
}
from
'
./extensions
'
;
import
{
CombinedInstallAction
,
UpdateAction
,
EnableAction
}
from
'
./extensionsActions
'
;
import
{
Label
,
RatingsWidget
,
InstallWidget
}
from
'
./extensionsWidgets
'
;
...
...
@@ -27,6 +29,7 @@ export interface ITemplateData {
description
:
HTMLElement
;
extension
:
IExtension
;
disposables
:
IDisposable
[];
extensionDisposables
:
IDisposable
[];
}
export
class
Delegate
implements
IDelegate
<
IExtension
>
{
...
...
@@ -74,6 +77,7 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
return
{
element
,
icon
,
name
,
installCount
,
ratings
,
author
,
description
,
disposables
,
extensionDisposables
:
[],
set
extension
(
extension
:
IExtension
)
{
versionWidget
.
extension
=
extension
;
installCountWidget
.
extension
=
extension
;
...
...
@@ -87,6 +91,8 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
renderPlaceholder
(
index
:
number
,
data
:
ITemplateData
):
void
{
addClass
(
data
.
element
,
'
loading
'
);
data
.
extensionDisposables
=
dispose
(
data
.
extensionDisposables
);
data
.
icon
.
src
=
''
;
data
.
name
.
textContent
=
''
;
data
.
author
.
textContent
=
''
;
...
...
@@ -98,6 +104,11 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
renderElement
(
extension
:
IExtension
,
index
:
number
,
data
:
ITemplateData
):
void
{
removeClass
(
data
.
element
,
'
loading
'
);
data
.
extensionDisposables
=
dispose
(
data
.
extensionDisposables
);
const
onError
=
once
(
domEvent
(
data
.
icon
,
'
error
'
));
onError
(()
=>
data
.
icon
.
src
=
extension
.
iconUrlFallback
,
null
,
data
.
extensionDisposables
);
data
.
icon
.
src
=
extension
.
iconUrl
;
if
(
!
data
.
icon
.
complete
)
{
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
浏览文件 @
4f22d447
...
...
@@ -86,11 +86,28 @@ class Extension implements IExtension {
}
get
iconUrl
():
string
{
if
(
this
.
local
&&
this
.
local
.
manifest
.
icon
)
{
return
URI
.
file
(
path
.
join
(
this
.
local
.
path
,
this
.
local
.
manifest
.
icon
)).
toString
();
}
return
this
.
localIconUrl
||
this
.
galleryIconUrl
||
this
.
defaultIconUrl
;
}
get
iconUrlFallback
():
string
{
return
this
.
localIconUrl
||
this
.
galleryIconUrlFallback
||
this
.
defaultIconUrl
;
}
private
get
localIconUrl
():
string
{
return
this
.
local
&&
this
.
local
.
manifest
.
icon
&&
URI
.
file
(
path
.
join
(
this
.
local
.
path
,
this
.
local
.
manifest
.
icon
)).
toString
();
}
private
get
galleryIconUrl
():
string
{
return
this
.
gallery
&&
this
.
gallery
.
assets
.
icon
;
}
private
get
galleryIconUrlFallback
():
string
{
return
this
.
gallery
&&
this
.
gallery
.
assets
.
iconFallback
;
}
return
this
.
gallery
?
this
.
gallery
.
assets
.
icon
:
require
.
toUrl
(
'
./media/defaultIcon.png
'
);
private
get
defaultIconUrl
():
string
{
return
require
.
toUrl
(
'
./media/defaultIcon.png
'
);
}
get
licenseUrl
():
string
{
...
...
src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css
浏览文件 @
4f22d447
...
...
@@ -24,10 +24,7 @@
.extension-editor
>
.header
>
.icon
{
height
:
128px
;
width
:
128px
;
min-width
:
128px
;
background-size
:
128px
;
background-repeat
:
no-repeat
;
background-position
:
center
center
;
object-fit
:
contain
;
}
.extension-editor
>
.header
>
.details
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录