Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
8d66874a
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,发现更多精彩内容 >>
提交
8d66874a
编写于
2月 17, 2020
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debt - use progress service for progress notifications
上级
0f42828c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
27 deletion
+17
-27
src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts
...kbench/services/extensions/browser/extensionUrlHandler.ts
+17
-27
未找到文件。
src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts
浏览文件 @
8d66874a
...
...
@@ -13,7 +13,7 @@ import { IExtensionGalleryService, IExtensionIdentifier, IExtensionManagementSer
import
{
IWorkbenchExtensionEnablementService
,
EnablementState
}
from
'
vs/workbench/services/extensionManagement/common/extensionManagement
'
;
import
{
areSameExtensions
}
from
'
vs/platform/extensionManagement/common/extensionManagementUtil
'
;
import
{
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
INotification
Handle
,
INotification
Service
,
Severity
}
from
'
vs/platform/notification/common/notification
'
;
import
{
INotificationService
,
Severity
}
from
'
vs/platform/notification/common/notification
'
;
import
{
IStorageService
,
StorageScope
}
from
'
vs/platform/storage/common/storage
'
;
import
{
IURLHandler
,
IURLService
,
IOpenURLOptions
}
from
'
vs/platform/url/common/url
'
;
import
{
IHostService
}
from
'
vs/workbench/services/host/browser/host
'
;
...
...
@@ -26,6 +26,7 @@ import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
import
{
IWorkbenchActionRegistry
,
Extensions
as
WorkbenchActionExtensions
}
from
'
vs/workbench/common/actions
'
;
import
{
SyncActionDescriptor
}
from
'
vs/platform/actions/common/actions
'
;
import
{
IQuickInputService
,
IQuickPickItem
}
from
'
vs/platform/quickinput/common/quickInput
'
;
import
{
IProgressService
,
ProgressLocation
}
from
'
vs/platform/progress/common/progress
'
;
const
FIVE_MINUTES
=
5
*
60
*
1000
;
const
THIRTY_SECONDS
=
30
*
1000
;
...
...
@@ -100,7 +101,8 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
@
IHostService
private
readonly
hostService
:
IHostService
,
@
IExtensionGalleryService
private
readonly
galleryService
:
IExtensionGalleryService
,
@
IStorageService
private
readonly
storageService
:
IStorageService
,
@
IConfigurationService
private
readonly
configurationService
:
IConfigurationService
@
IConfigurationService
private
readonly
configurationService
:
IConfigurationService
,
@
IProgressService
private
readonly
progressService
:
IProgressService
)
{
this
.
storage
=
new
ConfirmedExtensionIdStorage
(
storageService
);
...
...
@@ -273,32 +275,20 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
return
;
}
let
notificationHandle
:
INotificationHandle
|
null
=
this
.
notificationService
.
notify
({
severity
:
Severity
.
Info
,
message
:
localize
(
'
Installing
'
,
"
Installing Extension '{0}'...
"
,
galleryExtension
.
displayName
||
galleryExtension
.
name
)
});
notificationHandle
.
progress
.
infinite
();
notificationHandle
.
onDidClose
(()
=>
notificationHandle
=
null
);
try
{
await
this
.
extensionManagementService
.
installFromGallery
(
galleryExtension
);
const
reloadMessage
=
localize
(
'
reload
'
,
"
Would you like to reload the window and open the URL '{0}'?
"
,
uri
.
toString
());
const
reloadActionLabel
=
localize
(
'
Reload
'
,
"
Reload Window and Open
"
);
if
(
notificationHandle
)
{
notificationHandle
.
progress
.
done
();
notificationHandle
.
updateMessage
(
reloadMessage
);
notificationHandle
.
updateActions
({
primary
:
[
new
Action
(
'
reloadWindow
'
,
reloadActionLabel
,
undefined
,
true
,
()
=>
this
.
reloadAndHandle
(
uri
))]
});
}
else
{
this
.
notificationService
.
prompt
(
Severity
.
Info
,
reloadMessage
,
[{
label
:
reloadActionLabel
,
run
:
()
=>
this
.
reloadAndHandle
(
uri
)
}],
{
sticky
:
true
});
}
}
catch
(
e
)
{
if
(
notificationHandle
)
{
notificationHandle
.
progress
.
done
();
notificationHandle
.
updateSeverity
(
Severity
.
Error
);
notificationHandle
.
updateMessage
(
e
);
}
else
{
this
.
notificationService
.
error
(
e
);
}
await
this
.
progressService
.
withProgress
({
location
:
ProgressLocation
.
Notification
,
title
:
localize
(
'
Installing
'
,
"
Installing Extension '{0}'...
"
,
galleryExtension
.
displayName
||
galleryExtension
.
name
)
},
()
=>
this
.
extensionManagementService
.
installFromGallery
(
galleryExtension
));
this
.
notificationService
.
prompt
(
Severity
.
Info
,
localize
(
'
reload
'
,
"
Would you like to reload the window and open the URL '{0}'?
"
,
uri
.
toString
()),
[{
label
:
localize
(
'
Reload
'
,
"
Reload Window and Open
"
),
run
:
()
=>
this
.
reloadAndHandle
(
uri
)
}],
{
sticky
:
true
}
);
}
catch
(
error
)
{
this
.
notificationService
.
error
(
error
);
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录