Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
daefb813
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,发现更多精彩内容 >>
提交
daefb813
编写于
10月 29, 2018
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remote disable action from viewlet and show it verbose in editor
上级
1abad0e0
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
66 addition
and
48 deletion
+66
-48
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
...ench/parts/extensions/electron-browser/extensionEditor.ts
+1
-1
src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts
...ch/parts/extensions/electron-browser/extensionsActions.ts
+48
-32
src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts
...bench/parts/extensions/electron-browser/extensionsList.ts
+3
-5
src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts
...ench/parts/extensions/electron-browser/extensionsViews.ts
+7
-8
src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css
...ts/extensions/electron-browser/media/extensionActions.css
+7
-2
未找到文件。
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
浏览文件 @
daefb813
...
...
@@ -379,7 +379,7 @@ export class ExtensionEditor extends BaseEditor {
reloadAction
.
extension
=
extension
;
this
.
extensionActionBar
.
clear
();
this
.
extensionActionBar
.
push
([
disabledStatusAction
,
reloadAction
,
updateAction
,
enableAction
,
disableAction
,
installAction
,
malicious
StatusAction
],
{
icon
:
true
,
label
:
true
});
this
.
extensionActionBar
.
push
([
reloadAction
,
updateAction
,
enableAction
,
disableAction
,
installAction
,
maliciousStatusAction
,
disabled
StatusAction
],
{
icon
:
true
,
label
:
true
});
this
.
transientDisposables
.
push
(
enableAction
,
updateAction
,
reloadAction
,
disableAction
,
installAction
,
maliciousStatusAction
,
disabledStatusAction
);
const
ignoreAction
=
this
.
instantiationService
.
createInstance
(
IgnoreExtensionRecommendationAction
);
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts
浏览文件 @
daefb813
...
...
@@ -572,7 +572,7 @@ export class EnableForWorkspaceAction extends Action implements IExtensionAction
private
update
():
void
{
this
.
enabled
=
false
;
if
(
this
.
extension
)
{
this
.
enabled
=
(
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
||
this
.
extension
.
enablementState
===
EnablementState
.
WorkspaceDisabled
)
&&
this
.
extension
.
local
&&
this
.
extensionEnablementService
.
canChangeEnablement
(
this
.
extension
.
local
);
this
.
enabled
=
this
.
extension
.
state
===
ExtensionState
.
Installed
&&
(
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
||
this
.
extension
.
enablementState
===
EnablementState
.
WorkspaceDisabled
)
&&
this
.
extension
.
local
&&
this
.
extensionEnablementService
.
canChangeEnablement
(
this
.
extension
.
local
);
}
}
...
...
@@ -609,7 +609,7 @@ export class EnableGloballyAction extends Action implements IExtensionAction {
private
update
():
void
{
this
.
enabled
=
false
;
if
(
this
.
extension
)
{
this
.
enabled
=
(
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
||
this
.
extension
.
enablementState
===
EnablementState
.
WorkspaceDisabled
)
&&
this
.
extension
.
local
&&
this
.
extensionEnablementService
.
canChangeEnablement
(
this
.
extension
.
local
);
this
.
enabled
=
this
.
extension
.
state
===
ExtensionState
.
Installed
&&
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
&&
this
.
extension
.
local
&&
this
.
extensionEnablementService
.
canChangeEnablement
(
this
.
extension
.
local
);
}
}
...
...
@@ -626,13 +626,11 @@ export class EnableGloballyAction extends Action implements IExtensionAction {
export
class
EnableAction
extends
Action
{
static
readonly
ID
=
'
extensions.enable
'
;
private
static
readonly
EnabledClass
=
'
extension-action prominent enable
'
;
private
static
readonly
EnabledClass
=
'
extension-action enable
'
;
private
static
readonly
EnabledDropDownClass
=
'
extension-action dropdown enable
'
;
private
static
readonly
DisabledClass
=
`
${
EnableAction
.
EnabledClass
}
disabled`
;
private
disposables
:
IDisposable
[]
=
[];
private
_enableActions
:
IExtensionAction
[];
private
_actionItem
:
DropDownMenuActionItem
;
get
actionItem
():
IActionItem
{
return
this
.
_actionItem
;
}
...
...
@@ -640,18 +638,16 @@ export class EnableAction extends Action {
get
extension
():
IExtension
{
return
this
.
_extension
;
}
set
extension
(
extension
:
IExtension
)
{
this
.
_extension
=
extension
;
this
.
update
();
}
constructor
(
@
IInstantiationService
private
instantiationService
:
IInstantiationService
,
@
IExtensionsWorkbenchService
private
extensionsWorkbenchService
:
IExtensionsWorkbenchService
)
{
super
(
EnableAction
.
ID
,
localize
(
'
enableAction
'
,
"
Enable
"
),
EnableAction
.
DisabledClass
,
false
);
this
.
_
enableActions
=
[
this
.
_
actionItem
=
this
.
instantiationService
.
createInstance
(
DropDownMenuActionItem
,
this
,
[
[
instantiationService
.
createInstance
(
EnableGloballyAction
,
EnableGloballyAction
.
LABEL
),
instantiationService
.
createInstance
(
EnableForWorkspaceAction
,
EnableForWorkspaceAction
.
LABEL
)
];
this
.
_actionItem
=
this
.
instantiationService
.
createInstance
(
DropDownMenuActionItem
,
this
,
[
this
.
_enableActions
],
false
);
]],
false
);
this
.
disposables
.
push
(
this
.
_actionItem
);
this
.
disposables
.
push
(
this
.
extensionsWorkbenchService
.
onChange
(
extension
=>
{
...
...
@@ -673,18 +669,27 @@ export class EnableAction extends Action {
}
}
if
(
!
this
.
extension
)
{
this
.
enabled
=
false
;
const
enabledActions
=
this
.
_actionItem
.
getActions
().
filter
(
a
=>
a
.
enabled
);
this
.
enabled
=
enabledActions
.
length
>
0
;
if
(
this
.
enabled
)
{
if
(
enabledActions
.
length
===
1
)
{
this
.
label
=
enabledActions
[
0
].
label
;
this
.
class
=
EnableAction
.
EnabledClass
;
}
else
{
this
.
class
=
EnableAction
.
EnabledDropDownClass
;
}
}
else
{
this
.
class
=
EnableAction
.
DisabledClass
;
return
;
}
this
.
enabled
=
this
.
extension
.
state
===
ExtensionState
.
Installed
&&
this
.
_enableActions
.
some
(
e
=>
e
.
enabled
);
this
.
class
=
this
.
enabled
?
EnableAction
.
EnabledClass
:
EnableAction
.
DisabledClass
;
}
public
run
():
Promise
<
any
>
{
this
.
_actionItem
.
showMenu
();
const
enabledActions
=
this
.
_actionItem
.
getActions
().
filter
(
a
=>
a
.
enabled
);
if
(
enabledActions
.
length
===
1
)
{
enabledActions
[
0
].
run
();
}
else
{
this
.
_actionItem
.
showMenu
();
}
return
Promise
.
resolve
(
null
);
}
...
...
@@ -776,10 +781,10 @@ export class DisableAction extends Action {
static
readonly
ID
=
'
extensions.disable
'
;
private
static
readonly
EnabledClass
=
'
extension-action disable
'
;
private
static
readonly
EnabledDropDownClass
=
'
extension-action dropdown enable
'
;
private
static
readonly
DisabledClass
=
`
${
DisableAction
.
EnabledClass
}
disabled`
;
private
disposables
:
IDisposable
[]
=
[];
private
_disableActions
:
IExtensionAction
[];
private
_actionItem
:
DropDownMenuActionItem
;
get
actionItem
():
IActionItem
{
return
this
.
_actionItem
;
}
...
...
@@ -787,17 +792,16 @@ export class DisableAction extends Action {
get
extension
():
IExtension
{
return
this
.
_extension
;
}
set
extension
(
extension
:
IExtension
)
{
this
.
_extension
=
extension
;
this
.
update
();
}
constructor
(
@
IInstantiationService
private
instantiationService
:
IInstantiationService
,
@
IExtensionsWorkbenchService
private
extensionsWorkbenchService
:
IExtensionsWorkbenchService
,
)
{
super
(
DisableAction
.
ID
,
localize
(
'
disableAction
'
,
"
Disable
"
),
DisableAction
.
DisabledClass
,
false
);
this
.
_disableActions
=
[
this
.
_actionItem
=
this
.
instantiationService
.
createInstance
(
DropDownMenuActionItem
,
this
,
[[
instantiationService
.
createInstance
(
DisableGloballyAction
,
DisableGloballyAction
.
LABEL
),
instantiationService
.
createInstance
(
DisableForWorkspaceAction
,
DisableForWorkspaceAction
.
LABEL
)
];
this
.
_actionItem
=
this
.
instantiationService
.
createInstance
(
DropDownMenuActionItem
,
this
,
[
this
.
_disableActions
],
false
);
]],
false
);
this
.
disposables
.
push
(
this
.
_actionItem
);
this
.
disposables
.
push
(
this
.
extensionsWorkbenchService
.
onChange
(
extension
=>
{
...
...
@@ -819,18 +823,27 @@ export class DisableAction extends Action {
}
}
if
(
!
this
.
extension
)
{
this
.
enabled
=
false
;
const
enabledActions
=
this
.
_actionItem
.
getActions
().
filter
(
a
=>
a
.
enabled
);
this
.
enabled
=
enabledActions
.
length
>
0
;
if
(
this
.
enabled
)
{
if
(
enabledActions
.
length
===
1
)
{
this
.
label
=
enabledActions
[
0
].
label
;
this
.
class
=
DisableAction
.
EnabledClass
;
}
else
{
this
.
class
=
DisableAction
.
EnabledDropDownClass
;
}
}
else
{
this
.
class
=
DisableAction
.
DisabledClass
;
return
;
}
this
.
enabled
=
this
.
extension
.
state
===
ExtensionState
.
Installed
&&
this
.
_disableActions
.
some
(
a
=>
a
.
enabled
);
this
.
class
=
this
.
enabled
?
DisableAction
.
EnabledClass
:
DisableAction
.
DisabledClass
;
}
public
run
():
Promise
<
any
>
{
this
.
_actionItem
.
showMenu
();
const
enabledActions
=
this
.
_actionItem
.
getActions
().
filter
(
a
=>
a
.
enabled
);
if
(
enabledActions
.
length
===
1
)
{
enabledActions
[
0
].
run
();
}
else
{
this
.
_actionItem
.
showMenu
();
}
return
Promise
.
resolve
(
null
);
}
...
...
@@ -2179,10 +2192,13 @@ export class DisabledStatusLabelAction extends Action {
.
then
(
runningExtensions
=>
{
this
.
class
=
`
${
DisabledStatusLabelAction
.
Class
}
hide`
;
this
.
tooltip
=
''
;
if
(
this
.
extension
&&
!
this
.
extension
.
isMalicious
&&
!
runningExtensions
.
some
(
e
=>
e
.
id
===
this
.
extension
.
id
))
{
if
(
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
||
this
.
extension
.
enablementState
===
EnablementState
.
WorkspaceDisabled
)
{
if
(
this
.
extension
&&
this
.
extension
.
local
&&
!
this
.
extension
.
isMalicious
&&
!
runningExtensions
.
some
(
e
=>
e
.
id
===
this
.
extension
.
id
))
{
if
(
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
)
{
this
.
class
=
`
${
DisabledStatusLabelAction
.
Class
}
`
;
this
.
label
=
localize
(
'
disabled globally
'
,
"
Disabled for all Windows.
"
);
}
else
if
(
this
.
extension
.
enablementState
===
EnablementState
.
WorkspaceDisabled
)
{
this
.
class
=
`
${
DisabledStatusLabelAction
.
Class
}
`
;
this
.
tooltip
=
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
?
localize
(
'
disabled globally
'
,
"
Disabled
"
)
:
localize
(
'
disabled workspace
'
,
"
Disabled for this Workspace
"
);
this
.
label
=
localize
(
'
disabled workspace
'
,
"
Disabled for this Workspace.
"
);
}
}
}));
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts
浏览文件 @
daefb813
...
...
@@ -14,7 +14,7 @@ import { IPagedRenderer } from 'vs/base/browser/ui/list/listPaging';
import
{
once
,
Emitter
,
Event
}
from
'
vs/base/common/event
'
;
import
{
domEvent
}
from
'
vs/base/browser/event
'
;
import
{
IExtension
,
IExtensionsWorkbenchService
}
from
'
vs/workbench/parts/extensions/common/extensions
'
;
import
{
InstallAction
,
UpdateAction
,
ManageExtensionAction
,
ReloadAction
,
extensionButtonProminentBackground
,
extensionButtonProminentForeground
,
MaliciousStatusLabelAction
,
DisabledStatusLabelAction
,
ExtensionActionItem
}
from
'
vs/workbench/parts/extensions/electron-browser/extensionsActions
'
;
import
{
InstallAction
,
UpdateAction
,
ManageExtensionAction
,
ReloadAction
,
extensionButtonProminentBackground
,
extensionButtonProminentForeground
,
MaliciousStatusLabelAction
,
ExtensionActionItem
}
from
'
vs/workbench/parts/extensions/electron-browser/extensionsActions
'
;
import
{
areSameExtensions
}
from
'
vs/platform/extensionManagement/common/extensionManagementUtil
'
;
import
{
Label
,
RatingsWidget
,
InstallCountWidget
}
from
'
vs/workbench/parts/extensions/browser/extensionsWidgets
'
;
import
{
IExtensionService
}
from
'
vs/workbench/services/extensions/common/extensions
'
;
...
...
@@ -103,14 +103,13 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
const
ratingsWidget
=
this
.
instantiationService
.
createInstance
(
RatingsWidget
,
ratings
,
{
small
:
true
});
const
maliciousStatusAction
=
this
.
instantiationService
.
createInstance
(
MaliciousStatusLabelAction
,
false
);
const
disabledStatusAction
=
this
.
instantiationService
.
createInstance
(
DisabledStatusLabelAction
);
const
installAction
=
this
.
instantiationService
.
createInstance
(
InstallAction
);
const
updateAction
=
this
.
instantiationService
.
createInstance
(
UpdateAction
);
const
reloadAction
=
this
.
instantiationService
.
createInstance
(
ReloadAction
,
false
);
const
manageAction
=
this
.
instantiationService
.
createInstance
(
ManageExtensionAction
);
actionbar
.
push
([
updateAction
,
reloadAction
,
installAction
,
disabledStatusAction
,
maliciousStatusAction
,
manageAction
],
actionOptions
);
const
disposables
=
[
versionWidget
,
installCountWidget
,
ratingsWidget
,
maliciousStatusAction
,
disabledStatusAction
,
updateAction
,
installAction
,
reloadAction
,
manageAction
,
actionbar
,
bookmarkStyler
];
actionbar
.
push
([
updateAction
,
reloadAction
,
installAction
,
maliciousStatusAction
,
manageAction
],
actionOptions
);
const
disposables
=
[
versionWidget
,
installCountWidget
,
ratingsWidget
,
maliciousStatusAction
,
updateAction
,
installAction
,
reloadAction
,
manageAction
,
actionbar
,
bookmarkStyler
];
return
{
root
,
element
,
icon
,
name
,
installCount
,
ratings
,
author
,
description
,
disposables
,
actionbar
,
...
...
@@ -120,7 +119,6 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
installCountWidget
.
extension
=
extension
;
ratingsWidget
.
extension
=
extension
;
maliciousStatusAction
.
extension
=
extension
;
disabledStatusAction
.
extension
=
extension
;
installAction
.
extension
=
extension
;
updateAction
.
extension
=
extension
;
reloadAction
.
extension
=
extension
;
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts
浏览文件 @
daefb813
...
...
@@ -9,7 +9,7 @@ import { assign } from 'vs/base/common/objects';
import
{
chain
,
Emitter
}
from
'
vs/base/common/event
'
;
import
{
isPromiseCanceledError
}
from
'
vs/base/common/errors
'
;
import
{
PagedModel
,
IPagedModel
,
IPager
,
DelayedPagedModel
}
from
'
vs/base/common/paging
'
;
import
{
SortBy
,
SortOrder
,
IQueryOptions
,
LocalExtensionType
,
IExtensionTipsService
,
EnablementState
,
IExtensionRecommendation
}
from
'
vs/platform/extensionManagement/common/extensionManagement
'
;
import
{
SortBy
,
SortOrder
,
IQueryOptions
,
LocalExtensionType
,
IExtensionTipsService
,
IExtensionRecommendation
}
from
'
vs/platform/extensionManagement/common/extensionManagement
'
;
import
{
areSameExtensions
}
from
'
vs/platform/extensionManagement/common/extensionManagementUtil
'
;
import
{
IKeybindingService
}
from
'
vs/platform/keybinding/common/keybinding
'
;
import
{
IContextMenuService
}
from
'
vs/platform/contextview/browser/contextView
'
;
...
...
@@ -286,15 +286,14 @@ export class ExtensionsListView extends ViewletPanel {
if
(
/@enabled/i
.
test
(
value
))
{
value
=
value
?
value
.
replace
(
/@enabled/g
,
''
).
replace
(
/@sort:
(\w
+
)(
-
\w
*
)?
/g
,
''
).
trim
().
toLowerCase
()
:
''
;
const
local
=
await
this
.
extensionsWorkbenchService
.
queryLocal
();
const
local
=
(
await
this
.
extensionsWorkbenchService
.
queryLocal
()).
filter
(
e
=>
e
.
type
===
LocalExtensionType
.
User
);
const
runningExtensions
=
await
this
.
extensionService
.
getExtensions
();
le
t
result
=
local
cons
t
result
=
local
.
sort
((
e1
,
e2
)
=>
e1
.
displayName
.
localeCompare
(
e2
.
displayName
))
.
filter
(
e
=>
e
.
type
===
LocalExtensionType
.
User
&&
(
e
.
enablementState
===
EnablementState
.
Enabled
||
e
.
enablementState
===
EnablementState
.
WorkspaceEnabled
)
&&
(
e
.
name
.
toLowerCase
().
indexOf
(
value
)
>
-
1
||
e
.
displayName
.
toLowerCase
().
indexOf
(
value
)
>
-
1
)
&&
(
!
categories
.
length
||
categories
.
some
(
category
=>
(
e
.
local
.
manifest
.
categories
||
[]).
some
(
c
=>
c
.
toLowerCase
()
===
category
)))
);
.
filter
(
e
=>
runningExtensions
.
some
(
r
=>
areSameExtensions
(
r
,
e
))
&&
(
e
.
name
.
toLowerCase
().
indexOf
(
value
)
>
-
1
||
e
.
displayName
.
toLowerCase
().
indexOf
(
value
)
>
-
1
)
&&
(
!
categories
.
length
||
categories
.
some
(
category
=>
(
e
.
local
.
manifest
.
categories
||
[]).
some
(
c
=>
c
.
toLowerCase
()
===
category
))));
return
this
.
getPagedModel
(
this
.
sortExtensions
(
result
,
options
));
}
...
...
src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css
浏览文件 @
daefb813
...
...
@@ -20,8 +20,8 @@
.monaco-action-bar
.action-item
.action-label.extension-action.multiserver.install
:after
,
.monaco-action-bar
.action-item
.action-label.extension-action.multiserver.update
:after
,
.monaco-action-bar
.action-item
.action-label.extension-action.enable
:after
,
.monaco-action-bar
.action-item
.action-label.extension-action.disable
:after
{
.monaco-action-bar
.action-item
.action-label.extension-action.enable
.dropdown
:after
,
.monaco-action-bar
.action-item
.action-label.extension-action.disable
.dropdown
:after
{
content
:
'▼'
;
padding-left
:
2px
;
font-size
:
80%
;
...
...
@@ -54,6 +54,11 @@
font-weight
:
normal
;
}
.extension-editor
>
.header
>
.details
>
.actions
>
.monaco-action-bar
.action-item
.action-label.disable-status
:hover
,
.extension-editor
>
.header
>
.details
>
.actions
>
.monaco-action-bar
.action-item
.action-label.malicious-status
:hover
{
opacity
:
0.9
;
}
.extensions-viewlet
>
.extensions
.extension
>
.details
>
.footer
>
.monaco-action-bar
.action-item
.action-label.extension-action.manage.hide
{
display
:
none
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录