Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
3eb33255
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,发现更多精彩内容 >>
提交
3eb33255
编写于
10月 03, 2018
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#59861 Remove TPromise in Extensions
上级
90171dab
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
89 addition
and
107 deletion
+89
-107
src/vs/workbench/browser/composite.ts
src/vs/workbench/browser/composite.ts
+2
-3
src/vs/workbench/browser/parts/views/panelViewlet.ts
src/vs/workbench/browser/parts/views/panelViewlet.ts
+1
-1
src/vs/workbench/browser/parts/views/viewsViewlet.ts
src/vs/workbench/browser/parts/views/viewsViewlet.ts
+2
-2
src/vs/workbench/parts/debug/browser/debugViewlet.ts
src/vs/workbench/parts/debug/browser/debugViewlet.ts
+1
-2
src/vs/workbench/parts/debug/electron-browser/repl.ts
src/vs/workbench/parts/debug/electron-browser/repl.ts
+4
-4
src/vs/workbench/parts/extensions/browser/extensionsQuickOpen.ts
...workbench/parts/extensions/browser/extensionsQuickOpen.ts
+4
-5
src/vs/workbench/parts/extensions/browser/extensionsViewer.ts
...vs/workbench/parts/extensions/browser/extensionsViewer.ts
+4
-5
src/vs/workbench/parts/extensions/common/extensionsInput.ts
src/vs/workbench/parts/extensions/common/extensionsInput.ts
+2
-3
src/vs/workbench/parts/extensions/electron-browser/extensionsUtils.ts
...ench/parts/extensions/electron-browser/extensionsUtils.ts
+4
-5
src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts
...ch/parts/extensions/electron-browser/extensionsViewlet.ts
+12
-13
src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts
...ench/parts/extensions/electron-browser/extensionsViews.ts
+24
-28
src/vs/workbench/parts/extensions/electron-browser/runtimeExtensionsEditor.ts
...ts/extensions/electron-browser/runtimeExtensionsEditor.ts
+16
-18
src/vs/workbench/parts/extensions/test/electron-browser/extensionsActions.test.ts
...xtensions/test/electron-browser/extensionsActions.test.ts
+1
-2
src/vs/workbench/parts/extensions/test/electron-browser/extensionsTipsService.test.ts
...sions/test/electron-browser/extensionsTipsService.test.ts
+2
-3
src/vs/workbench/parts/extensions/test/electron-browser/extensionsViews.test.ts
.../extensions/test/electron-browser/extensionsViews.test.ts
+3
-4
src/vs/workbench/parts/extensions/test/electron-browser/extensionsWorkbenchService.test.ts
.../test/electron-browser/extensionsWorkbenchService.test.ts
+2
-3
src/vs/workbench/parts/files/electron-browser/explorerViewlet.ts
...workbench/parts/files/electron-browser/explorerViewlet.ts
+2
-3
src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts
src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts
+3
-3
未找到文件。
src/vs/workbench/browser/composite.ts
浏览文件 @
3eb33255
...
...
@@ -3,7 +3,6 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IAction
,
IActionRunner
,
ActionRunner
}
from
'
vs/base/common/actions
'
;
import
{
IActionItem
}
from
'
vs/base/browser/ui/actionbar/actionbar
'
;
import
{
Component
}
from
'
vs/workbench/common/component
'
;
...
...
@@ -89,7 +88,7 @@ export abstract class Composite extends Component implements IComposite {
* Note that DOM-dependent calculations should be performed from the setVisible()
* call. Only then the composite will be part of the DOM.
*/
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
this
.
parent
=
parent
;
return
Promise
.
resolve
(
null
);
...
...
@@ -118,7 +117,7 @@ export abstract class Composite extends Component implements IComposite {
* to do a long running operation from this call. Typically this operation should be
* fast though because setVisible might be called many times during a session.
*/
setVisible
(
visible
:
boolean
):
T
Promise
<
void
>
{
setVisible
(
visible
:
boolean
):
Promise
<
void
>
{
this
.
visible
=
visible
;
return
Promise
.
resolve
(
null
);
...
...
src/vs/workbench/browser/parts/views/panelViewlet.ts
浏览文件 @
3eb33255
...
...
@@ -208,7 +208,7 @@ export class PanelViewlet extends Viewlet {
super
(
id
,
configurationService
,
partService
,
telemetryService
,
themeService
);
}
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
return
super
.
create
(
parent
).
then
(()
=>
{
this
.
panelview
=
this
.
_register
(
new
PanelView
(
parent
,
this
.
options
));
this
.
_register
(
this
.
panelview
.
onDidDrop
(({
from
,
to
})
=>
this
.
movePanel
(
from
as
ViewletPanel
,
to
as
ViewletPanel
)));
...
...
src/vs/workbench/browser/parts/views/viewsViewlet.ts
浏览文件 @
3eb33255
...
...
@@ -144,7 +144,7 @@ export abstract class ViewContainerViewlet extends PanelViewlet implements IView
this
.
_register
(
toDisposable
(()
=>
this
.
viewDisposables
=
dispose
(
this
.
viewDisposables
)));
}
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
return
super
.
create
(
parent
).
then
(()
=>
{
this
.
_register
(
this
.
onDidSashChange
(()
=>
this
.
saveViewSizes
()));
this
.
viewsModel
.
onDidAdd
(
added
=>
this
.
onDidAddViews
(
added
));
...
...
@@ -191,7 +191,7 @@ export abstract class ViewContainerViewlet extends PanelViewlet implements IView
return
result
;
}
setVisible
(
visible
:
boolean
):
T
Promise
<
void
>
{
setVisible
(
visible
:
boolean
):
Promise
<
void
>
{
return
super
.
setVisible
(
visible
)
.
then
(()
=>
Promise
.
all
(
this
.
panels
.
filter
(
view
=>
view
.
isVisible
()
!==
visible
)
.
map
((
view
)
=>
view
.
setVisible
(
visible
))))
...
...
src/vs/workbench/parts/debug/browser/debugViewlet.ts
浏览文件 @
3eb33255
...
...
@@ -7,7 +7,6 @@ import 'vs/css!./media/debugViewlet';
import
*
as
nls
from
'
vs/nls
'
;
import
{
IAction
}
from
'
vs/base/common/actions
'
;
import
*
as
DOM
from
'
vs/base/browser/dom
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IActionItem
}
from
'
vs/base/browser/ui/actionbar/actionbar
'
;
import
{
ViewContainerViewlet
}
from
'
vs/workbench/browser/parts/views/viewsViewlet
'
;
import
{
IDebugService
,
VIEWLET_ID
,
State
,
BREAKPOINTS_VIEW_ID
,
IDebugConfiguration
}
from
'
vs/workbench/parts/debug/common/debug
'
;
...
...
@@ -65,7 +64,7 @@ export class DebugViewlet extends ViewContainerViewlet {
}));
}
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
return
super
.
create
(
parent
).
then
(()
=>
{
DOM
.
addClass
(
parent
,
'
debug-viewlet
'
);
});
...
...
src/vs/workbench/parts/debug/electron-browser/repl.ts
浏览文件 @
3eb33255
...
...
@@ -132,8 +132,8 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
}
}
public
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
super
.
create
(
parent
);
public
async
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
await
super
.
create
(
parent
);
this
.
container
=
dom
.
append
(
parent
,
$
(
'
.repl
'
));
this
.
treeContainer
=
dom
.
append
(
this
.
container
,
$
(
'
.repl-tree
'
));
this
.
createReplInput
(
this
.
container
);
...
...
@@ -149,10 +149,10 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
controller
},
replTreeOptions
);
return
this
.
tree
.
setInput
(
this
.
debugService
.
getModel
());
await
this
.
tree
.
setInput
(
this
.
debugService
.
getModel
());
}
public
setVisible
(
visible
:
boolean
):
T
Promise
<
void
>
{
public
setVisible
(
visible
:
boolean
):
Promise
<
void
>
{
if
(
!
visible
)
{
dispose
(
this
.
model
);
}
else
{
...
...
src/vs/workbench/parts/extensions/browser/extensionsQuickOpen.ts
浏览文件 @
3eb33255
...
...
@@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/
import
*
as
nls
from
'
vs/nls
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IAutoFocus
,
Mode
,
IModel
}
from
'
vs/base/parts/quickopen/common/quickOpen
'
;
import
{
QuickOpenEntry
,
QuickOpenModel
}
from
'
vs/base/parts/quickopen/browser/quickOpenModel
'
;
import
{
QuickOpenHandler
}
from
'
vs/workbench/browser/quickopen
'
;
...
...
@@ -47,7 +46,7 @@ export class ExtensionsHandler extends QuickOpenHandler {
super
();
}
getResults
(
text
:
string
,
token
:
CancellationToken
):
T
Promise
<
IModel
<
any
>>
{
getResults
(
text
:
string
,
token
:
CancellationToken
):
Promise
<
IModel
<
any
>>
{
const
label
=
nls
.
localize
(
'
manage
'
,
"
Press Enter to manage your extensions.
"
);
const
action
=
()
=>
{
this
.
viewletService
.
openViewlet
(
VIEWLET_ID
,
true
)
...
...
@@ -58,7 +57,7 @@ export class ExtensionsHandler extends QuickOpenHandler {
});
};
return
TPromise
.
as
(
new
QuickOpenModel
([
new
SimpleEntry
(
label
,
action
)]));
return
Promise
.
resolve
(
new
QuickOpenModel
([
new
SimpleEntry
(
label
,
action
)]));
}
getEmptyLabel
(
input
:
string
):
string
{
...
...
@@ -83,7 +82,7 @@ export class GalleryExtensionsHandler extends QuickOpenHandler {
super
();
}
getResults
(
text
:
string
,
token
:
CancellationToken
):
T
Promise
<
IModel
<
any
>>
{
getResults
(
text
:
string
,
token
:
CancellationToken
):
Promise
<
IModel
<
any
>>
{
if
(
/
\.
/
.
test
(
text
))
{
return
this
.
galleryService
.
query
({
names
:
[
text
],
pageSize
:
1
})
.
then
(
galleryResult
=>
{
...
...
@@ -127,7 +126,7 @@ export class GalleryExtensionsHandler extends QuickOpenHandler {
entries
.
push
(
new
SimpleEntry
(
label
,
action
));
}
return
TPromise
.
as
(
new
QuickOpenModel
(
entries
));
return
Promise
.
resolve
(
new
QuickOpenModel
(
entries
));
}
getEmptyLabel
(
input
:
string
):
string
{
...
...
src/vs/workbench/parts/extensions/browser/extensionsViewer.ts
浏览文件 @
3eb33255
...
...
@@ -7,7 +7,6 @@ import * as dom from 'vs/base/browser/dom';
import
{
localize
}
from
'
vs/nls
'
;
import
{
IMouseEvent
}
from
'
vs/base/browser/mouseEvent
'
;
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
TPromise
,
Promise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IDataSource
,
ITree
,
IRenderer
}
from
'
vs/base/parts/tree/browser/tree
'
;
import
{
Action
}
from
'
vs/base/common/actions
'
;
import
{
IExtensionsWorkbenchService
,
IExtension
}
from
'
vs/workbench/parts/extensions/common/extensions
'
;
...
...
@@ -50,12 +49,12 @@ export class DataSource implements IDataSource {
return
hasChildren
;
}
public
getChildren
(
tree
:
ITree
,
extensionData
:
IExtensionData
):
Promise
{
public
getChildren
(
tree
:
ITree
,
extensionData
:
IExtensionData
):
Promise
<
any
>
{
return
extensionData
.
getChildren
();
}
public
getParent
(
tree
:
ITree
,
{
parent
}:
IExtensionData
):
Promise
{
return
TPromise
.
as
(
parent
);
public
getParent
(
tree
:
ITree
,
{
parent
}:
IExtensionData
):
Promise
<
any
>
{
return
Promise
.
resolve
(
parent
);
}
}
...
...
@@ -214,7 +213,7 @@ class OpenExtensionAction extends Action {
return
this
.
_extensionData
;
}
run
(
sideByside
:
boolean
):
T
Promise
<
any
>
{
run
(
sideByside
:
boolean
):
Promise
<
any
>
{
return
this
.
extensionsWorkdbenchService
.
open
(
this
.
extensionData
.
extension
,
sideByside
);
}
}
...
...
src/vs/workbench/parts/extensions/common/extensionsInput.ts
浏览文件 @
3eb33255
...
...
@@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/
import
{
localize
}
from
'
vs/nls
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
EditorInput
}
from
'
vs/workbench/common/editor
'
;
import
{
IExtension
}
from
'
vs/workbench/parts/extensions/common/extensions
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
...
...
@@ -39,8 +38,8 @@ export class ExtensionsInput extends EditorInput {
return
this
.
extension
===
otherExtensionInput
.
extension
;
}
resolve
():
T
Promise
<
any
>
{
return
TPromise
.
as
(
null
);
resolve
():
Promise
<
any
>
{
return
Promise
.
resolve
(
null
);
}
supportsSplitEditor
():
boolean
{
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsUtils.ts
浏览文件 @
3eb33255
...
...
@@ -7,7 +7,6 @@ import * as arrays from 'vs/base/common/arrays';
import
{
localize
}
from
'
vs/nls
'
;
import
{
Event
,
chain
,
anyEvent
,
debounceEvent
}
from
'
vs/base/common/event
'
;
import
{
onUnexpectedError
}
from
'
vs/base/common/errors
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
IExtensionManagementService
,
ILocalExtension
,
IExtensionEnablementService
,
IExtensionTipsService
,
IExtensionIdentifier
,
EnablementState
,
InstallOperation
}
from
'
vs/platform/extensionManagement/common/extensionManagement
'
;
...
...
@@ -39,13 +38,13 @@ export class KeymapExtensions implements IWorkbenchContribution {
this
.
disposables
.
push
(
lifecycleService
.
onShutdown
(()
=>
this
.
dispose
()),
instantiationService
.
invokeFunction
(
onExtensionChanged
)((
identifiers
=>
{
TPromise
.
join
(
identifiers
.
map
(
identifier
=>
this
.
checkForOtherKeymaps
(
identifier
)))
Promise
.
all
(
identifiers
.
map
(
identifier
=>
this
.
checkForOtherKeymaps
(
identifier
)))
.
then
(
null
,
onUnexpectedError
);
}))
);
}
private
checkForOtherKeymaps
(
extensionIdentifier
:
IExtensionIdentifier
):
T
Promise
<
void
>
{
private
checkForOtherKeymaps
(
extensionIdentifier
:
IExtensionIdentifier
):
Promise
<
void
>
{
return
this
.
instantiationService
.
invokeFunction
(
getInstalledExtensions
).
then
(
extensions
=>
{
const
keymaps
=
extensions
.
filter
(
extension
=>
isKeymapExtension
(
this
.
tipsService
,
extension
));
const
extension
=
arrays
.
first
(
keymaps
,
extension
=>
stripVersion
(
extension
.
identifier
.
id
)
===
extensionIdentifier
.
id
);
...
...
@@ -75,7 +74,7 @@ export class KeymapExtensions implements IWorkbenchContribution {
*/
this
.
telemetryService
.
publicLog
(
'
disableOtherKeymaps
'
,
telemetryData
);
if
(
confirmed
)
{
TPromise
.
join
(
oldKeymaps
.
map
(
keymap
=>
{
Promise
.
all
(
oldKeymaps
.
map
(
keymap
=>
{
return
this
.
extensionEnablementService
.
setEnablement
(
keymap
.
local
,
EnablementState
.
Disabled
);
}));
}
...
...
@@ -118,7 +117,7 @@ export function onExtensionChanged(accessor: ServicesAccessor): Event<IExtension
});
}
export
function
getInstalledExtensions
(
accessor
:
ServicesAccessor
):
T
Promise
<
IExtensionStatus
[]
>
{
export
function
getInstalledExtensions
(
accessor
:
ServicesAccessor
):
Promise
<
IExtensionStatus
[]
>
{
const
extensionService
=
accessor
.
get
(
IExtensionManagementService
);
const
extensionEnablementService
=
accessor
.
get
(
IExtensionEnablementService
);
return
extensionService
.
getInstalled
().
then
(
extensions
=>
{
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts
浏览文件 @
3eb33255
...
...
@@ -6,7 +6,6 @@
import
'
vs/css!./media/extensionsViewlet
'
;
import
{
localize
}
from
'
vs/nls
'
;
import
{
ThrottledDelayer
,
always
,
timeout
}
from
'
vs/base/common/async
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
isPromiseCanceledError
,
create
as
createError
}
from
'
vs/base/common/errors
'
;
import
{
IWorkbenchContribution
}
from
'
vs/workbench/common/contributions
'
;
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
...
...
@@ -325,7 +324,7 @@ export class ExtensionsViewlet extends ViewContainerViewlet implements IExtensio
},
this
,
this
.
disposables
);
}
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
addClass
(
parent
,
'
extensions-viewlet
'
);
this
.
root
=
parent
;
...
...
@@ -361,7 +360,7 @@ export class ExtensionsViewlet extends ViewContainerViewlet implements IExtensio
return
super
.
create
(
this
.
extensionsBox
);
}
setVisible
(
visible
:
boolean
):
T
Promise
<
void
>
{
setVisible
(
visible
:
boolean
):
Promise
<
void
>
{
const
isVisibilityChanged
=
this
.
isVisible
()
!==
visible
;
return
super
.
setVisible
(
visible
).
then
(()
=>
{
if
(
isVisibilityChanged
)
{
...
...
@@ -444,7 +443,7 @@ export class ExtensionsViewlet extends ViewContainerViewlet implements IExtensio
return
this
.
searchBox
.
getValue
().
replace
(
/@category/g
,
'
category
'
).
replace
(
/@tag:/g
,
'
tag:
'
).
replace
(
/@ext:/g
,
'
ext:
'
);
}
private
doSearch
():
T
Promise
<
any
>
{
private
doSearch
():
Promise
<
any
>
{
const
value
=
this
.
normalizedQuery
();
this
.
searchExtensionsContextKey
.
set
(
!!
value
);
this
.
searchBuiltInExtensionsContextKey
.
set
(
ExtensionsListView
.
isBuiltInExtensionsQuery
(
value
));
...
...
@@ -453,18 +452,18 @@ export class ExtensionsViewlet extends ViewContainerViewlet implements IExtensio
this
.
nonEmptyWorkspaceContextKey
.
set
(
this
.
contextService
.
getWorkbenchState
()
!==
WorkbenchState
.
EMPTY
);
if
(
value
)
{
return
this
.
progress
(
TPromise
.
join
(
this
.
panels
.
map
(
view
=>
{
return
this
.
progress
(
Promise
.
all
(
this
.
panels
.
map
(
view
=>
{
(
<
ExtensionsListView
>
view
).
show
(
this
.
normalizedQuery
()).
then
(
model
=>
{
this
.
alertSearchResult
(
model
.
length
,
view
.
id
);
});
})));
}
return
TPromise
.
as
(
null
);
return
Promise
.
resolve
(
null
);
}
protected
onDidAddViews
(
added
:
IAddedViewDescriptorRef
[]):
ViewletPanel
[]
{
const
addedViews
=
super
.
onDidAddViews
(
added
);
this
.
progress
(
TPromise
.
join
(
addedViews
.
map
(
addedView
=>
{
this
.
progress
(
Promise
.
all
(
addedViews
.
map
(
addedView
=>
{
(
<
ExtensionsListView
>
addedView
).
show
(
this
.
normalizedQuery
()).
then
(
model
=>
{
this
.
alertSearchResult
(
model
.
length
,
addedView
.
id
);
});
...
...
@@ -527,14 +526,14 @@ export class ExtensionsViewlet extends ViewContainerViewlet implements IExtensio
const
editors
=
group
.
editors
.
filter
(
input
=>
input
instanceof
ExtensionsInput
);
const
promises
=
editors
.
map
(
editor
=>
group
.
closeEditor
(
editor
));
return
TPromise
.
join
(
promises
);
return
Promise
.
all
(
promises
);
});
TPromise
.
join
(
promises
);
Promise
.
all
(
promises
);
}
}
private
progress
<
T
>
(
promise
:
TPromise
<
T
>
):
T
Promise
<
T
>
{
private
progress
<
T
>
(
promise
:
Promise
<
T
>
):
Promise
<
T
>
{
const
progressRunner
=
this
.
progressService
.
show
(
true
);
return
always
(
promise
,
()
=>
progressRunner
.
done
());
}
...
...
@@ -619,7 +618,7 @@ export class MaliciousExtensionChecker implements IWorkbenchContribution {
.
then
(()
=>
this
.
loopCheckForMaliciousExtensions
());
}
private
checkForMaliciousExtensions
():
T
Promise
<
any
>
{
private
checkForMaliciousExtensions
():
Promise
<
any
>
{
return
this
.
extensionsManagementService
.
getExtensionsReport
().
then
(
report
=>
{
const
maliciousSet
=
getMaliciousExtensionsSet
(
report
);
...
...
@@ -628,7 +627,7 @@ export class MaliciousExtensionChecker implements IWorkbenchContribution {
.
filter
(
e
=>
maliciousSet
.
has
(
getGalleryExtensionIdFromLocal
(
e
)));
if
(
maliciousExtensions
.
length
)
{
return
TPromise
.
join
(
maliciousExtensions
.
map
(
e
=>
this
.
extensionsManagementService
.
uninstall
(
e
,
true
).
then
(()
=>
{
return
Promise
.
all
(
maliciousExtensions
.
map
(
e
=>
this
.
extensionsManagementService
.
uninstall
(
e
,
true
).
then
(()
=>
{
this
.
notificationService
.
prompt
(
Severity
.
Warning
,
localize
(
'
malicious warning
'
,
"
We have uninstalled '{0}' which was reported to be problematic.
"
,
getGalleryExtensionIdFromLocal
(
e
)),
...
...
@@ -639,7 +638,7 @@ export class MaliciousExtensionChecker implements IWorkbenchContribution {
);
})));
}
else
{
return
TPromise
.
as
(
null
);
return
Promise
.
resolve
(
null
);
}
});
},
err
=>
this
.
logService
.
error
(
err
));
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts
浏览文件 @
3eb33255
...
...
@@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/
import
{
localize
}
from
'
vs/nls
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
assign
}
from
'
vs/base/common/objects
'
;
import
{
chain
}
from
'
vs/base/common/event
'
;
...
...
@@ -172,10 +171,10 @@ export class ExtensionsListView extends ViewletPanel {
return
this
.
list
.
length
;
}
protected
showEmptyModel
():
T
Promise
<
IPagedModel
<
IExtension
>>
{
protected
showEmptyModel
():
Promise
<
IPagedModel
<
IExtension
>>
{
const
emptyModel
=
new
PagedModel
([]);
this
.
setModel
(
emptyModel
);
return
TPromise
.
as
(
emptyModel
);
return
Promise
.
resolve
(
emptyModel
);
}
private
onContextMenu
(
e
:
IListContextMenuEvent
<
IExtension
>
):
void
{
...
...
@@ -185,7 +184,7 @@ export class ExtensionsListView extends ViewletPanel {
if
(
manageExtensionAction
.
enabled
)
{
this
.
contextMenuService
.
showContextMenu
({
getAnchor
:
()
=>
e
.
anchor
,
getActions
:
()
=>
TPromise
.
as
(
manageExtensionAction
.
actionItem
.
getActions
())
getActions
:
()
=>
Promise
.
resolve
(
manageExtensionAction
.
actionItem
.
getActions
())
});
}
}
...
...
@@ -422,7 +421,7 @@ export class ExtensionsListView extends ViewletPanel {
return
extensions
;
}
private
getAllRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
T
Promise
<
IPagedModel
<
IExtension
>>
{
private
getAllRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
Promise
<
IPagedModel
<
IExtension
>>
{
const
value
=
query
.
value
.
replace
(
/@recommended:all/g
,
''
).
replace
(
/@recommended/g
,
''
).
trim
().
toLowerCase
();
return
this
.
extensionsWorkbenchService
.
queryLocal
()
...
...
@@ -432,7 +431,7 @@ export class ExtensionsListView extends ViewletPanel {
const
othersPromise
=
this
.
tipsService
.
getOtherRecommendations
();
const
workspacePromise
=
this
.
tipsService
.
getWorkspaceRecommendations
();
return
TPromise
.
join
([
othersPromise
,
workspacePromise
])
return
Promise
.
all
([
othersPromise
,
workspacePromise
])
.
then
(([
others
,
workspaceRecommendations
])
=>
{
const
names
=
this
.
getTrimmedRecommendations
(
local
,
value
,
fileBasedRecommendations
,
others
,
workspaceRecommendations
);
const
recommendationsWithReason
=
this
.
tipsService
.
getAllRecommendationsWithReason
();
...
...
@@ -452,7 +451,7 @@ export class ExtensionsListView extends ViewletPanel {
})
});
if
(
!
names
.
length
)
{
return
TPromise
.
as
(
new
PagedModel
([]));
return
Promise
.
resolve
(
new
PagedModel
([]));
}
options
.
source
=
'
recommendations-all
'
;
return
this
.
extensionsWorkbenchService
.
queryGallery
(
assign
(
options
,
{
names
,
pageSize
:
names
.
length
}))
...
...
@@ -464,22 +463,19 @@ export class ExtensionsListView extends ViewletPanel {
});
}
private
getCuratedModel
(
query
:
Query
,
options
:
IQueryOptions
):
T
Promise
<
IPagedModel
<
IExtension
>>
{
private
async
getCuratedModel
(
query
:
Query
,
options
:
IQueryOptions
):
Promise
<
IPagedModel
<
IExtension
>>
{
const
value
=
query
.
value
.
replace
(
/curated:/g
,
''
).
trim
();
return
this
.
experimentService
.
getCuratedExtensionsList
(
value
).
then
(
names
=>
{
if
(
Array
.
isArray
(
names
)
&&
names
.
length
)
{
options
.
source
=
`curated:
${
value
}
`
;
return
this
.
extensionsWorkbenchService
.
queryGallery
(
assign
(
options
,
{
names
,
pageSize
:
names
.
length
}))
.
then
(
pager
=>
{
this
.
sortFirstPage
(
pager
,
names
);
return
new
PagedModel
(
pager
||
[]);
});
}
return
TPromise
.
as
(
new
PagedModel
([]));
});
const
names
=
await
this
.
experimentService
.
getCuratedExtensionsList
(
value
);
if
(
Array
.
isArray
(
names
)
&&
names
.
length
)
{
options
.
source
=
`curated:
${
value
}
`
;
const
pager
=
await
this
.
extensionsWorkbenchService
.
queryGallery
(
assign
(
options
,
{
names
,
pageSize
:
names
.
length
}));
this
.
sortFirstPage
(
pager
,
names
);
return
new
PagedModel
(
pager
||
[]);
}
return
new
PagedModel
([]);
}
private
getRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
T
Promise
<
IPagedModel
<
IExtension
>>
{
private
getRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
Promise
<
IPagedModel
<
IExtension
>>
{
const
value
=
query
.
value
.
replace
(
/@recommended/g
,
''
).
trim
().
toLowerCase
();
return
this
.
extensionsWorkbenchService
.
queryLocal
()
...
...
@@ -489,7 +485,7 @@ export class ExtensionsListView extends ViewletPanel {
const
othersPromise
=
this
.
tipsService
.
getOtherRecommendations
();
const
workspacePromise
=
this
.
tipsService
.
getWorkspaceRecommendations
();
return
TPromise
.
join
([
othersPromise
,
workspacePromise
])
return
Promise
.
all
([
othersPromise
,
workspacePromise
])
.
then
(([
others
,
workspaceRecommendations
])
=>
{
fileBasedRecommendations
=
fileBasedRecommendations
.
filter
(
x
=>
workspaceRecommendations
.
every
(({
extensionId
})
=>
x
.
extensionId
!==
extensionId
));
others
=
others
.
filter
(
x
=>
x
=>
workspaceRecommendations
.
every
(({
extensionId
})
=>
x
.
extensionId
!==
extensionId
));
...
...
@@ -514,7 +510,7 @@ export class ExtensionsListView extends ViewletPanel {
});
if
(
!
names
.
length
)
{
return
TPromise
.
as
(
new
PagedModel
([]));
return
Promise
.
resolve
(
new
PagedModel
([]));
}
options
.
source
=
'
recommendations
'
;
return
this
.
extensionsWorkbenchService
.
queryGallery
(
assign
(
options
,
{
names
,
pageSize
:
names
.
length
}))
...
...
@@ -559,7 +555,7 @@ export class ExtensionsListView extends ViewletPanel {
return
installed
.
some
(
i
=>
areSameExtensions
({
id
:
i
.
id
},
{
id
:
recommendation
.
extensionId
}));
}
private
getWorkspaceRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
T
Promise
<
IPagedModel
<
IExtension
>>
{
private
getWorkspaceRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
Promise
<
IPagedModel
<
IExtension
>>
{
const
value
=
query
.
value
.
replace
(
/@recommended:workspace/g
,
''
).
trim
().
toLowerCase
();
return
this
.
tipsService
.
getWorkspaceRecommendations
()
.
then
(
recommendations
=>
{
...
...
@@ -572,7 +568,7 @@ export class ExtensionsListView extends ViewletPanel {
this
.
telemetryService
.
publicLog
(
'
extensionWorkspaceRecommendations:open
'
,
{
count
:
names
.
length
});
if
(
!
names
.
length
)
{
return
TPromise
.
as
(
new
PagedModel
([]));
return
Promise
.
resolve
(
new
PagedModel
([]));
}
options
.
source
=
'
recommendations-workspace
'
;
return
this
.
extensionsWorkbenchService
.
queryGallery
(
assign
(
options
,
{
names
,
pageSize
:
names
.
length
}))
...
...
@@ -580,13 +576,13 @@ export class ExtensionsListView extends ViewletPanel {
});
}
private
getKeymapRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
T
Promise
<
IPagedModel
<
IExtension
>>
{
private
getKeymapRecommendationsModel
(
query
:
Query
,
options
:
IQueryOptions
):
Promise
<
IPagedModel
<
IExtension
>>
{
const
value
=
query
.
value
.
replace
(
/@recommended:keymaps/g
,
''
).
trim
().
toLowerCase
();
const
names
:
string
[]
=
this
.
tipsService
.
getKeymapRecommendations
().
map
(({
extensionId
})
=>
extensionId
)
.
filter
(
extensionId
=>
extensionId
.
toLowerCase
().
indexOf
(
value
)
>
-
1
);
if
(
!
names
.
length
)
{
return
TPromise
.
as
(
new
PagedModel
([]));
return
Promise
.
resolve
(
new
PagedModel
([]));
}
options
.
source
=
'
recommendations-keymaps
'
;
return
this
.
extensionsWorkbenchService
.
queryGallery
(
assign
(
options
,
{
names
,
pageSize
:
names
.
length
}))
...
...
@@ -832,12 +828,12 @@ export class WorkspaceRecommendedExtensionsView extends ExtensionsListView {
this
.
setRecommendationsToInstall
();
}
private
setRecommendationsToInstall
():
T
Promise
<
void
>
{
private
setRecommendationsToInstall
():
Promise
<
void
>
{
return
this
.
getRecommendationsToInstall
()
.
then
(
recommendations
=>
{
this
.
installAllAction
.
recommendations
=
recommendations
;
});
}
private
getRecommendationsToInstall
():
T
Promise
<
IExtensionRecommendation
[]
>
{
private
getRecommendationsToInstall
():
Promise
<
IExtensionRecommendation
[]
>
{
return
this
.
tipsService
.
getWorkspaceRecommendations
()
.
then
(
recommendations
=>
recommendations
.
filter
(({
extensionId
})
=>
!
this
.
extensionsWorkbenchService
.
local
.
some
(
i
=>
areSameExtensions
({
id
:
extensionId
},
{
id
:
i
.
id
}))));
}
...
...
src/vs/workbench/parts/extensions/electron-browser/runtimeExtensionsEditor.ts
浏览文件 @
3eb33255
...
...
@@ -8,7 +8,6 @@ import * as nls from 'vs/nls';
import
*
as
os
from
'
os
'
;
import
product
from
'
vs/platform/node/product
'
;
import
pkg
from
'
vs/platform/node/package
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
Action
,
IAction
}
from
'
vs/base/common/actions
'
;
import
{
BaseEditor
}
from
'
vs/workbench/browser/parts/editor/baseEditor
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
...
...
@@ -424,7 +423,7 @@ export class RuntimeExtensionsEditor extends BaseEditor {
this
.
_contextMenuService
.
showContextMenu
({
getAnchor
:
()
=>
e
.
anchor
,
getActions
:
()
=>
TPromise
.
as
(
actions
)
getActions
:
()
=>
Promise
.
resolve
(
actions
)
});
});
}
...
...
@@ -451,8 +450,8 @@ export class ShowRuntimeExtensionsAction extends Action {
super
(
id
,
label
);
}
public
run
(
e
?:
any
):
T
Promise
<
any
>
{
return
this
.
_editorService
.
openEditor
(
this
.
_instantiationService
.
createInstance
(
RuntimeExtensionsInput
),
{
revealIfOpened
:
true
});
public
async
run
(
e
?:
any
):
Promise
<
any
>
{
await
this
.
_editorService
.
openEditor
(
this
.
_instantiationService
.
createInstance
(
RuntimeExtensionsInput
),
{
revealIfOpened
:
true
});
}
}
...
...
@@ -466,11 +465,11 @@ class ReportExtensionIssueAction extends Action {
super
(
id
,
label
,
'
extension-action report-issue
'
);
}
run
(
extension
:
IRuntimeExtension
):
T
Promise
<
any
>
{
run
(
extension
:
IRuntimeExtension
):
Promise
<
any
>
{
clipboard
.
writeText
(
'
```json
\n
'
+
JSON
.
stringify
(
extension
.
status
,
null
,
'
\t
'
)
+
'
\n
```
'
);
window
.
open
(
this
.
generateNewIssueUrl
(
extension
));
return
TPromise
.
as
(
null
);
return
Promise
.
resolve
(
null
);
}
private
generateNewIssueUrl
(
extension
:
IRuntimeExtension
):
string
{
...
...
@@ -508,21 +507,20 @@ export class DebugExtensionHostAction extends Action {
super
(
DebugExtensionHostAction
.
ID
,
DebugExtensionHostAction
.
LABEL
,
DebugExtensionHostAction
.
CSS_CLASS
);
}
run
():
T
Promise
<
any
>
{
async
run
():
Promise
<
any
>
{
const
inspectPort
=
this
.
_extensionService
.
getInspectPort
();
if
(
!
inspectPort
)
{
return
this
.
_dialogService
.
confirm
({
const
res
=
await
this
.
_dialogService
.
confirm
({
type
:
'
info
'
,
message
:
nls
.
localize
(
'
restart1
'
,
"
Profile Extensions
"
),
detail
:
nls
.
localize
(
'
restart2
'
,
"
In order to profile extensions a restart is required. Do you want to restart '{0}' now?
"
,
product
.
nameLong
),
primaryButton
:
nls
.
localize
(
'
restart3
'
,
"
Restart
"
),
secondaryButton
:
nls
.
localize
(
'
cancel
'
,
"
Cancel
"
)
}).
then
(
res
=>
{
if
(
res
.
confirmed
)
{
this
.
_windowsService
.
relaunch
({
addArgs
:
[
`--inspect-extensions=
${
randomPort
()}
`
]
});
}
});
if
(
res
.
confirmed
)
{
this
.
_windowsService
.
relaunch
({
addArgs
:
[
`--inspect-extensions=
${
randomPort
()}
`
]
});
}
}
return
this
.
_debugService
.
startDebugging
(
null
,
{
...
...
@@ -544,9 +542,9 @@ export class StartExtensionHostProfileAction extends Action {
super
(
id
,
label
);
}
run
():
T
Promise
<
any
>
{
run
():
Promise
<
any
>
{
this
.
_extensionHostProfileService
.
startProfiling
();
return
TPromise
.
as
(
null
);
return
Promise
.
resolve
(
null
);
}
}
...
...
@@ -561,9 +559,9 @@ export class StopExtensionHostProfileAction extends Action {
super
(
id
,
label
);
}
run
():
T
Promise
<
any
>
{
run
():
Promise
<
any
>
{
this
.
_extensionHostProfileService
.
stopProfiling
();
return
TPromise
.
as
(
null
);
return
Promise
.
resolve
(
null
);
}
}
...
...
@@ -584,8 +582,8 @@ export class SaveExtensionHostProfileAction extends Action {
});
}
run
():
T
Promise
<
any
>
{
return
TPromise
.
wrap
(
this
.
_asyncRun
());
run
():
Promise
<
any
>
{
return
Promise
.
resolve
(
this
.
_asyncRun
());
}
private
async
_asyncRun
():
Promise
<
any
>
{
...
...
src/vs/workbench/parts/extensions/test/electron-browser/extensionsActions.test.ts
浏览文件 @
3eb33255
...
...
@@ -6,7 +6,6 @@
import
*
as
assert
from
'
assert
'
;
import
{
assign
}
from
'
vs/base/common/objects
'
;
import
{
generateUuid
}
from
'
vs/base/common/uuid
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IExtensionsWorkbenchService
}
from
'
vs/workbench/parts/extensions/common/extensions
'
;
import
*
as
ExtensionsActions
from
'
vs/workbench/parts/extensions/electron-browser/extensionsActions
'
;
import
{
ExtensionsWorkbenchService
}
from
'
vs/workbench/parts/extensions/node/extensionsWorkbenchService
'
;
...
...
@@ -81,7 +80,7 @@ suite('ExtensionsActions Test', () => {
instantiationService
.
stubPromise
(
IExtensionManagementService
,
'
getInstalled
'
,
[]);
instantiationService
.
stubPromise
(
IExtensionManagementService
,
'
getExtensionsReport
'
,
[]);
instantiationService
.
stubPromise
(
IExtensionGalleryService
,
'
query
'
,
aPage
());
instantiationService
.
stub
(
IExtensionService
,
{
getExtensions
:
()
=>
TPromise
.
wrap
([])
});
instantiationService
.
stub
(
IExtensionService
,
{
getExtensions
:
()
=>
Promise
.
resolve
([])
});
await
(
<
TestExtensionEnablementService
>
instantiationService
.
get
(
IExtensionEnablementService
)).
reset
();
instantiationService
.
set
(
IExtensionsWorkbenchService
,
instantiationService
.
createInstance
(
ExtensionsWorkbenchService
));
...
...
src/vs/workbench/parts/extensions/test/electron-browser/extensionsTipsService.test.ts
浏览文件 @
3eb33255
...
...
@@ -8,7 +8,6 @@ import * as assert from 'assert';
import
*
as
path
from
'
path
'
;
import
*
as
fs
from
'
fs
'
;
import
*
as
os
from
'
os
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
*
as
uuid
from
'
vs/base/common/uuid
'
;
import
{
mkdirp
}
from
'
vs/base/node/pfs
'
;
import
{
...
...
@@ -259,13 +258,13 @@ suite('ExtensionsTipsService Test', () => {
}
});
function
setUpFolderWorkspace
(
folderName
:
string
,
recommendedExtensions
:
string
[],
ignoredRecommendations
:
string
[]
=
[]):
T
Promise
<
void
>
{
function
setUpFolderWorkspace
(
folderName
:
string
,
recommendedExtensions
:
string
[],
ignoredRecommendations
:
string
[]
=
[]):
Promise
<
void
>
{
const
id
=
uuid
.
generateUuid
();
parentResource
=
path
.
join
(
os
.
tmpdir
(),
'
vsctests
'
,
id
);
return
setUpFolder
(
folderName
,
parentResource
,
recommendedExtensions
,
ignoredRecommendations
);
}
function
setUpFolder
(
folderName
:
string
,
parentDir
:
string
,
recommendedExtensions
:
string
[],
ignoredRecommendations
:
string
[]
=
[]):
T
Promise
<
void
>
{
function
setUpFolder
(
folderName
:
string
,
parentDir
:
string
,
recommendedExtensions
:
string
[],
ignoredRecommendations
:
string
[]
=
[]):
Promise
<
void
>
{
const
folderDir
=
path
.
join
(
parentDir
,
folderName
);
const
workspaceSettingsDir
=
path
.
join
(
folderDir
,
'
.vscode
'
);
return
mkdirp
(
workspaceSettingsDir
,
493
).
then
(()
=>
{
...
...
src/vs/workbench/parts/extensions/test/electron-browser/extensionsViews.test.ts
浏览文件 @
3eb33255
...
...
@@ -8,7 +8,6 @@ import { assign } from 'vs/base/common/objects';
import
{
generateUuid
}
from
'
vs/base/common/uuid
'
;
import
{
ExtensionsListView
}
from
'
vs/workbench/parts/extensions/electron-browser/extensionsViews
'
;
import
{
TestInstantiationService
}
from
'
vs/platform/instantiation/test/common/instantiationServiceMock
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IExtensionsWorkbenchService
}
from
'
vs/workbench/parts/extensions/common/extensions
'
;
import
{
ExtensionsWorkbenchService
}
from
'
vs/workbench/parts/extensions/node/extensionsWorkbenchService
'
;
import
{
...
...
@@ -120,7 +119,7 @@ suite('ExtensionsListView Tests', () => {
instantiationService
.
stub
(
IExtensionService
,
{
getExtensions
:
()
=>
{
return
TPromise
.
wrap
([
return
Promise
.
resolve
([
{
id
:
localEnabledTheme
.
galleryIdentifier
.
id
},
{
id
:
localEnabledLanguage
.
galleryIdentifier
.
id
},
{
id
:
localRandom
.
galleryIdentifier
.
id
},
...
...
@@ -203,7 +202,7 @@ suite('ExtensionsListView Tests', () => {
assert
.
equal
(
result
.
get
(
0
).
name
,
builtInTheme
.
manifest
.
name
,
'
Unexpected extension for @builtin query.
'
);
});
return
TPromise
.
join
([
return
Promise
.
all
([
allInstalledCheck
,
installedCheck
,
allDisabledCheck
,
...
...
@@ -270,7 +269,7 @@ suite('ExtensionsListView Tests', () => {
assert
.
equal
(
result
.
get
(
0
).
name
,
localDisabledLanguage
.
manifest
.
name
,
'
Unexpected extension for @disabled query with quoted category including space.
'
);
});
return
TPromise
.
join
([
return
Promise
.
resolve
([
installedCategoryWithoutQuotesCheck
,
installedCategoryWithQuotesCheck
,
installedCategoryWithSpaceCheck
,
...
...
src/vs/workbench/parts/extensions/test/electron-browser/extensionsWorkbenchService.test.ts
浏览文件 @
3eb33255
...
...
@@ -7,7 +7,6 @@ import * as sinon from 'sinon';
import
*
as
assert
from
'
assert
'
;
import
*
as
fs
from
'
fs
'
;
import
{
assign
}
from
'
vs/base/common/objects
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
generateUuid
}
from
'
vs/base/common/uuid
'
;
import
{
IExtensionsWorkbenchService
,
ExtensionState
,
AutoCheckUpdatesConfigurationKey
,
AutoUpdateConfigurationKey
}
from
'
vs/workbench/parts/extensions/common/extensions
'
;
import
{
ExtensionsWorkbenchService
}
from
'
vs/workbench/parts/extensions/node/extensionsWorkbenchService
'
;
...
...
@@ -1215,8 +1214,8 @@ suite('ExtensionsWorkbenchServiceTest', () => {
return
{
firstPage
:
objects
,
total
:
objects
.
length
,
pageSize
:
objects
.
length
,
getPage
:
()
=>
null
};
}
function
eventToPromise
(
event
:
Event
<
any
>
,
count
:
number
=
1
):
T
Promise
<
void
>
{
return
new
T
Promise
<
void
>
(
c
=>
{
function
eventToPromise
(
event
:
Event
<
any
>
,
count
:
number
=
1
):
Promise
<
void
>
{
return
new
Promise
<
void
>
(
c
=>
{
let
counter
=
0
;
event
(()
=>
{
if
(
++
counter
===
count
)
{
...
...
src/vs/workbench/parts/files/electron-browser/explorerViewlet.ts
浏览文件 @
3eb33255
...
...
@@ -6,7 +6,6 @@
import
'
vs/css!./media/explorerviewlet
'
;
import
{
localize
}
from
'
vs/nls
'
;
import
{
IActionRunner
}
from
'
vs/base/common/actions
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
*
as
DOM
from
'
vs/base/browser/dom
'
;
import
{
VIEWLET_ID
,
ExplorerViewletVisibleContext
,
IFilesConfiguration
,
OpenEditorsVisibleContext
,
OpenEditorsVisibleCondition
,
IExplorerViewlet
,
VIEW_CONTAINER
}
from
'
vs/workbench/parts/files/common/files
'
;
import
{
ViewContainerViewlet
,
IViewletViewOptions
}
from
'
vs/workbench/browser/parts/views/viewsViewlet
'
;
...
...
@@ -176,7 +175,7 @@ export class ExplorerViewlet extends ViewContainerViewlet implements IExplorerVi
this
.
_register
(
this
.
contextService
.
onDidChangeWorkspaceName
(
e
=>
this
.
updateTitleArea
()));
}
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
return
super
.
create
(
parent
).
then
(()
=>
{
DOM
.
addClass
(
parent
,
'
explorer-viewlet
'
);
});
...
...
@@ -236,7 +235,7 @@ export class ExplorerViewlet extends ViewContainerViewlet implements IExplorerVi
return
<
EmptyView
>
this
.
getView
(
EmptyView
.
ID
);
}
public
setVisible
(
visible
:
boolean
):
T
Promise
<
void
>
{
public
setVisible
(
visible
:
boolean
):
Promise
<
void
>
{
this
.
viewletVisibleContextKey
.
set
(
visible
);
return
super
.
setVisible
(
visible
);
}
...
...
src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts
浏览文件 @
3eb33255
...
...
@@ -1071,7 +1071,7 @@ export class SCMViewlet extends PanelViewlet implements IViewModel, IViewsViewle
this
.
disposables
.
push
(
this
.
contributedViews
);
}
create
(
parent
:
HTMLElement
):
T
Promise
<
void
>
{
create
(
parent
:
HTMLElement
):
Promise
<
void
>
{
return
super
.
create
(
parent
).
then
(()
=>
{
this
.
el
=
parent
;
addClass
(
this
.
el
,
'
scm-viewlet
'
);
...
...
@@ -1165,7 +1165,7 @@ export class SCMViewlet extends PanelViewlet implements IViewModel, IViewsViewle
return
(
this
.
mainPanel
?
1
:
0
)
+
this
.
repositoryPanels
.
length
;
}
setVisible
(
visible
:
boolean
):
T
Promise
<
void
>
{
setVisible
(
visible
:
boolean
):
Promise
<
void
>
{
const
promises
:
TPromise
<
any
>
[]
=
[];
promises
.
push
(
super
.
setVisible
(
visible
));
...
...
@@ -1182,7 +1182,7 @@ export class SCMViewlet extends PanelViewlet implements IViewModel, IViewsViewle
promises
.
push
(
panel
.
setVisible
(
visible
));
}
return
TPromise
.
join
(
promises
)
as
TPromise
<
any
>
;
return
Promise
.
all
(
promises
).
then
(()
=>
null
)
;
}
getOptimalWidth
():
number
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录