Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
824743d7
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 搜索 >>
提交
824743d7
编写于
8月 22, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor getReadme()
上级
79187508
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
39 addition
and
29 deletion
+39
-29
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
...ench/parts/extensions/electron-browser/extensionEditor.ts
+5
-7
src/vs/workbench/parts/extensions/electron-browser/extensions.ts
...workbench/parts/extensions/electron-browser/extensions.ts
+3
-3
src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
...extensions/electron-browser/extensionsWorkbenchService.ts
+31
-19
未找到文件。
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
浏览文件 @
824743d7
...
@@ -242,15 +242,9 @@ export class ExtensionEditor extends BaseEditor {
...
@@ -242,15 +242,9 @@ export class ExtensionEditor extends BaseEditor {
}
}
private
openReadme
(
extension
:
IExtension
)
{
private
openReadme
(
extension
:
IExtension
)
{
if
(
!
extension
.
readmeUrl
)
{
const
p
=
append
(
this
.
content
,
$
(
'
p
'
));
p
.
textContent
=
localize
(
'
noReadme
'
,
"
No README available.
"
);
return
;
}
addClass
(
this
.
content
,
'
loading
'
);
addClass
(
this
.
content
,
'
loading
'
);
const
promise
=
this
.
extensionsWorkbenchService
.
getReadmeContents
(
extension
)
const
promise
=
extension
.
getReadme
(
)
.
then
(
marked
.
parse
)
.
then
(
marked
.
parse
)
.
then
<
void
>
(
body
=>
{
.
then
<
void
>
(
body
=>
{
const
webview
=
new
WebView
(
const
webview
=
new
WebView
(
...
@@ -265,6 +259,10 @@ export class ExtensionEditor extends BaseEditor {
...
@@ -265,6 +259,10 @@ export class ExtensionEditor extends BaseEditor {
const
themeListener
=
this
.
themeService
.
onDidColorThemeChange
(
themeId
=>
webview
.
style
(
themeId
));
const
themeListener
=
this
.
themeService
.
onDidColorThemeChange
(
themeId
=>
webview
.
style
(
themeId
));
this
.
contentDisposables
.
push
(
webview
,
linkListener
,
themeListener
);
this
.
contentDisposables
.
push
(
webview
,
linkListener
,
themeListener
);
})
})
.
then
(
null
,
()
=>
{
const
p
=
append
(
this
.
content
,
$
(
'
p
'
));
p
.
textContent
=
localize
(
'
noReadme
'
,
"
No README available.
"
);
})
.
then
(
null
,
()
=>
null
)
.
then
(
null
,
()
=>
null
)
.
then
(()
=>
removeClass
(
this
.
content
,
'
loading
'
));
.
then
(()
=>
removeClass
(
this
.
content
,
'
loading
'
));
...
...
src/vs/workbench/parts/extensions/electron-browser/extensions.ts
浏览文件 @
824743d7
...
@@ -8,7 +8,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'
...
@@ -8,7 +8,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'
import
Event
from
'
vs/base/common/event
'
;
import
Event
from
'
vs/base/common/event
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IPager
}
from
'
vs/base/common/paging
'
;
import
{
IPager
}
from
'
vs/base/common/paging
'
;
import
{
IQueryOptions
}
from
'
vs/platform/extensionManagement/common/extensionManagement
'
;
import
{
IQueryOptions
,
IExtensionManifest
}
from
'
vs/platform/extensionManagement/common/extensionManagement
'
;
export
const
VIEWLET_ID
=
'
workbench.view.extensions
'
;
export
const
VIEWLET_ID
=
'
workbench.view.extensions
'
;
...
@@ -32,7 +32,6 @@ export interface IExtension {
...
@@ -32,7 +32,6 @@ export interface IExtension {
version
:
string
;
version
:
string
;
latestVersion
:
string
;
latestVersion
:
string
;
description
:
string
;
description
:
string
;
readmeUrl
:
string
;
iconUrl
:
string
;
iconUrl
:
string
;
licenseUrl
:
string
;
licenseUrl
:
string
;
installCount
:
number
;
installCount
:
number
;
...
@@ -40,6 +39,8 @@ export interface IExtension {
...
@@ -40,6 +39,8 @@ export interface IExtension {
ratingCount
:
number
;
ratingCount
:
number
;
outdated
:
boolean
;
outdated
:
boolean
;
telemetryData
:
any
;
telemetryData
:
any
;
getManifest
():
TPromise
<
IExtensionManifest
>
;
getReadme
():
TPromise
<
string
>
;
}
}
export
const
SERVICE_ID
=
'
extensionsWorkbenchService
'
;
export
const
SERVICE_ID
=
'
extensionsWorkbenchService
'
;
...
@@ -56,5 +57,4 @@ export interface IExtensionsWorkbenchService {
...
@@ -56,5 +57,4 @@ export interface IExtensionsWorkbenchService {
canInstall
(
extension
:
IExtension
):
boolean
;
canInstall
(
extension
:
IExtension
):
boolean
;
install
(
extension
:
IExtension
):
TPromise
<
void
>
;
install
(
extension
:
IExtension
):
TPromise
<
void
>
;
uninstall
(
extension
:
IExtension
):
TPromise
<
void
>
;
uninstall
(
extension
:
IExtension
):
TPromise
<
void
>
;
getReadmeContents
(
extension
:
IExtension
):
TPromise
<
string
>
;
}
}
\ No newline at end of file
src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
浏览文件 @
824743d7
...
@@ -14,7 +14,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
...
@@ -14,7 +14,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
IPager
,
mapPager
,
singlePagePager
}
from
'
vs/base/common/paging
'
;
import
{
IPager
,
mapPager
,
singlePagePager
}
from
'
vs/base/common/paging
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
IExtensionManagementService
,
IExtensionGalleryService
,
IExtensionTipsService
,
ILocalExtension
,
IGalleryExtension
,
IQueryOptions
}
from
'
vs/platform/extensionManagement/common/extensionManagement
'
;
import
{
IExtensionManagementService
,
IExtensionGalleryService
,
IExtensionTipsService
,
ILocalExtension
,
IGalleryExtension
,
IQueryOptions
,
IExtensionManifest
}
from
'
vs/platform/extensionManagement/common/extensionManagement
'
;
import
{
getGalleryExtensionTelemetryData
,
getLocalExtensionTelemetryData
}
from
'
vs/platform/extensionManagement/common/extensionTelemetry
'
;
import
{
getGalleryExtensionTelemetryData
,
getLocalExtensionTelemetryData
}
from
'
vs/platform/extensionManagement/common/extensionTelemetry
'
;
import
*
as
semver
from
'
semver
'
;
import
*
as
semver
from
'
semver
'
;
import
*
as
path
from
'
path
'
;
import
*
as
path
from
'
path
'
;
...
@@ -32,6 +32,7 @@ class Extension implements IExtension {
...
@@ -32,6 +32,7 @@ class Extension implements IExtension {
public
needsRestart
=
false
;
public
needsRestart
=
false
;
constructor
(
constructor
(
private
galleryService
:
IExtensionGalleryService
,
private
stateProvider
:
IExtensionStateProvider
,
private
stateProvider
:
IExtensionStateProvider
,
public
local
:
ILocalExtension
,
public
local
:
ILocalExtension
,
public
gallery
:
IGalleryExtension
=
null
public
gallery
:
IGalleryExtension
=
null
...
@@ -126,6 +127,32 @@ class Extension implements IExtension {
...
@@ -126,6 +127,32 @@ class Extension implements IExtension {
return
getLocalExtensionTelemetryData
(
local
);
return
getLocalExtensionTelemetryData
(
local
);
}
}
}
}
getManifest
():
TPromise
<
IExtensionManifest
>
{
if
(
this
.
local
)
{
return
TPromise
.
as
(
this
.
local
.
manifest
);
}
return
this
.
galleryService
.
getAsset
(
this
.
gallery
.
assets
.
manifest
)
.
then
(
asText
)
.
then
(
raw
=>
JSON
.
parse
(
raw
)
as
IExtensionManifest
);
}
getReadme
():
TPromise
<
string
>
{
const
readmeUrl
=
this
.
local
&&
this
.
local
.
readmeUrl
?
this
.
local
.
readmeUrl
:
this
.
gallery
&&
this
.
gallery
.
assets
.
readme
;
if
(
!
readmeUrl
)
{
return
TPromise
.
wrapError
(
'
not available
'
);
}
const
uri
=
URI
.
parse
(
readmeUrl
);
if
(
uri
.
scheme
===
'
file
'
)
{
return
readFile
(
uri
.
fsPath
,
'
utf8
'
);
}
return
this
.
galleryService
.
getAsset
(
readmeUrl
).
then
(
asText
);
}
}
}
function
stripVersion
(
id
:
string
):
string
{
function
stripVersion
(
id
:
string
):
string
{
...
@@ -201,7 +228,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
...
@@ -201,7 +228,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
const
installedById
=
index
(
this
.
installed
,
e
=>
e
.
local
.
id
);
const
installedById
=
index
(
this
.
installed
,
e
=>
e
.
local
.
id
);
this
.
installed
=
result
.
map
(
local
=>
{
this
.
installed
=
result
.
map
(
local
=>
{
const
extension
=
installedById
[
local
.
id
]
||
new
Extension
(
this
.
stateProvider
,
local
);
const
extension
=
installedById
[
local
.
id
]
||
new
Extension
(
this
.
galleryService
,
this
.
stateProvider
,
local
);
extension
.
local
=
local
;
extension
.
local
=
local
;
return
extension
;
return
extension
;
});
});
...
@@ -242,7 +269,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
...
@@ -242,7 +269,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
return
installed
;
return
installed
;
}
}
return
new
Extension
(
this
.
stateProvider
,
null
,
gallery
);
return
new
Extension
(
this
.
galleryService
,
this
.
stateProvider
,
null
,
gallery
);
}
}
private
syncWithGallery
(
immediate
=
false
):
void
{
private
syncWithGallery
(
immediate
=
false
):
void
{
...
@@ -310,7 +337,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
...
@@ -310,7 +337,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
let
extension
=
this
.
installed
.
filter
(
e
=>
(
e
.
local
.
metadata
&&
e
.
local
.
metadata
.
id
)
===
gallery
.
id
)[
0
];
let
extension
=
this
.
installed
.
filter
(
e
=>
(
e
.
local
.
metadata
&&
e
.
local
.
metadata
.
id
)
===
gallery
.
id
)[
0
];
if
(
!
extension
)
{
if
(
!
extension
)
{
extension
=
new
Extension
(
this
.
stateProvider
,
null
,
gallery
);
extension
=
new
Extension
(
this
.
galleryService
,
this
.
stateProvider
,
null
,
gallery
);
}
}
extension
.
gallery
=
gallery
;
extension
.
gallery
=
gallery
;
...
@@ -404,21 +431,6 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
...
@@ -404,21 +431,6 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
this
.
telemetryService
.
publicLog
(
eventName
,
assign
(
data
,
{
success
,
duration
}));
this
.
telemetryService
.
publicLog
(
eventName
,
assign
(
data
,
{
success
,
duration
}));
}
}
getReadmeContents
(
extension
:
IExtension
):
TPromise
<
string
>
{
if
(
!
extension
.
readmeUrl
)
{
return
TPromise
.
as
(
''
);
}
const
uri
=
URI
.
parse
(
extension
.
readmeUrl
);
if
(
uri
.
scheme
===
'
file
'
)
{
return
readFile
(
uri
.
fsPath
,
'
utf8
'
);
}
return
this
.
galleryService
.
getAsset
(
extension
.
readmeUrl
)
.
then
(
asText
);
}
dispose
():
void
{
dispose
():
void
{
this
.
disposables
=
dispose
(
this
.
disposables
);
this
.
disposables
=
dispose
(
this
.
disposables
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录