Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
690d49be
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 搜索 >>
提交
690d49be
编写于
3月 15, 2018
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #44601
上级
61bcfcea
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
60 addition
and
10 deletion
+60
-10
src/vs/workbench/parts/extensions/browser/extensionsActions.ts
...s/workbench/parts/extensions/browser/extensionsActions.ts
+39
-0
src/vs/workbench/parts/extensions/browser/extensionsList.ts
src/vs/workbench/parts/extensions/browser/extensionsList.ts
+5
-3
src/vs/workbench/parts/extensions/browser/media/extensionActions.css
...bench/parts/extensions/browser/media/extensionActions.css
+3
-0
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
...ench/parts/extensions/electron-browser/extensionEditor.ts
+5
-3
src/vs/workbench/parts/extensions/electron-browser/media/extensionsViewlet.css
...s/extensions/electron-browser/media/extensionsViewlet.css
+8
-4
未找到文件。
src/vs/workbench/parts/extensions/browser/extensionsActions.ts
浏览文件 @
690d49be
...
...
@@ -1714,6 +1714,45 @@ export class MaliciousStatusLabelAction extends Action {
}
}
export
class
DisabledStatusLabelAction
extends
Action
{
private
static
readonly
Class
=
'
disable-status
'
;
private
_extension
:
IExtension
;
get
extension
():
IExtension
{
return
this
.
_extension
;
}
set
extension
(
extension
:
IExtension
)
{
this
.
_extension
=
extension
;
this
.
update
();
}
private
disposables
:
IDisposable
[]
=
[];
private
throttler
:
Throttler
=
new
Throttler
();
constructor
(
@
IExtensionsWorkbenchService
private
extensionsWorkbenchService
:
IExtensionsWorkbenchService
,
@
IExtensionService
private
extensionService
:
IExtensionService
)
{
super
(
'
extensions.install
'
,
localize
(
'
disabled
'
,
"
Disabled
"
),
`
${
DisabledStatusLabelAction
.
Class
}
hide`
,
false
);
this
.
disposables
.
push
(
this
.
extensionsWorkbenchService
.
onChange
(()
=>
this
.
update
()));
this
.
update
();
}
private
update
():
void
{
this
.
throttler
.
queue
(()
=>
this
.
extensionService
.
getExtensions
()
.
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
)
{
this
.
class
=
`
${
DisabledStatusLabelAction
.
Class
}
`
;
this
.
tooltip
=
this
.
extension
.
enablementState
===
EnablementState
.
Disabled
?
localize
(
'
disabled globally
'
,
"
Disabled
"
)
:
localize
(
'
disabled workspace
'
,
"
Disabled for this Workspace
"
);
}
}
}));
}
run
():
TPromise
<
any
>
{
return
TPromise
.
as
(
null
);
}
}
export
class
DisableAllAction
extends
Action
{
static
readonly
ID
=
'
workbench.extensions.action.disableAll
'
;
...
...
src/vs/workbench/parts/extensions/browser/extensionsList.ts
浏览文件 @
690d49be
...
...
@@ -15,7 +15,7 @@ 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
,
IExtensionsWorkbenchService
}
from
'
vs/workbench/parts/extensions/common/extensions
'
;
import
{
InstallAction
,
UpdateAction
,
ManageExtensionAction
,
ReloadAction
,
extensionButtonProminentBackground
,
extensionButtonProminentForeground
,
MaliciousStatusLabelAction
}
from
'
vs/workbench/parts/extensions/browser/extensionsActions
'
;
import
{
InstallAction
,
UpdateAction
,
ManageExtensionAction
,
ReloadAction
,
extensionButtonProminentBackground
,
extensionButtonProminentForeground
,
MaliciousStatusLabelAction
,
DisabledStatusLabelAction
}
from
'
vs/workbench/parts/extensions/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
'
;
...
...
@@ -97,13 +97,14 @@ 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
);
const
manageAction
=
this
.
instantiationService
.
createInstance
(
ManageExtensionAction
);
actionbar
.
push
([
reloadAction
,
updateAction
,
install
Action
,
maliciousStatusAction
,
manageAction
],
actionOptions
);
const
disposables
=
[
versionWidget
,
installCountWidget
,
ratingsWidget
,
maliciousStatusAction
,
updateAction
,
reloadAction
,
manageAction
,
actionbar
,
bookmarkStyler
];
actionbar
.
push
([
updateAction
,
reloadAction
,
installAction
,
disabledStatus
Action
,
maliciousStatusAction
,
manageAction
],
actionOptions
);
const
disposables
=
[
versionWidget
,
installCountWidget
,
ratingsWidget
,
maliciousStatusAction
,
disabledStatusAction
,
updateAction
,
reloadAction
,
manageAction
,
actionbar
,
bookmarkStyler
];
return
{
root
,
element
,
icon
,
name
,
installCount
,
ratings
,
author
,
description
,
disposables
,
...
...
@@ -113,6 +114,7 @@ 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/browser/media/extensionActions.css
浏览文件 @
690d49be
...
...
@@ -30,10 +30,12 @@
.monaco-action-bar
.action-item.disabled
.action-label.extension-action.enable
,
.monaco-action-bar
.action-item.disabled
.action-label.extension-action.disable
,
.monaco-action-bar
.action-item.disabled
.action-label.extension-action.reload
,
.monaco-action-bar
.action-item.disabled
.action-label.disable-status.hide
,
.monaco-action-bar
.action-item.disabled
.action-label.malicious-status.not-malicious
{
display
:
none
;
}
.monaco-action-bar
.action-item
.action-label.disable-status
,
.monaco-action-bar
.action-item
.action-label.malicious-status
{
border-radius
:
4px
;
color
:
inherit
;
...
...
@@ -44,6 +46,7 @@
line-height
:
initial
;
}
.extension-editor
>
.header
>
.details
>
.actions
>
.monaco-action-bar
.action-item
.action-label.disable-status
,
.extension-editor
>
.header
>
.details
>
.actions
>
.monaco-action-bar
.action-item
.action-label.malicious-status
{
font-weight
:
normal
;
}
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts
浏览文件 @
690d49be
...
...
@@ -32,7 +32,7 @@ import { Renderer, DataSource, Controller } from 'vs/workbench/parts/extensions/
import
{
RatingsWidget
,
InstallCountWidget
}
from
'
vs/workbench/parts/extensions/browser/extensionsWidgets
'
;
import
{
EditorOptions
}
from
'
vs/workbench/common/editor
'
;
import
{
ActionBar
}
from
'
vs/base/browser/ui/actionbar/actionbar
'
;
import
{
CombinedInstallAction
,
UpdateAction
,
EnableAction
,
DisableAction
,
ReloadAction
,
MaliciousStatusLabelAction
}
from
'
vs/workbench/parts/extensions/browser/extensionsActions
'
;
import
{
CombinedInstallAction
,
UpdateAction
,
EnableAction
,
DisableAction
,
ReloadAction
,
MaliciousStatusLabelAction
,
DisabledStatusLabelAction
}
from
'
vs/workbench/parts/extensions/browser/extensionsActions
'
;
import
{
Webview
}
from
'
vs/workbench/parts/html/electron-browser/webview
'
;
import
{
KeybindingIO
}
from
'
vs/workbench/services/keybinding/common/keybindingIO
'
;
import
{
IKeybindingService
}
from
'
vs/platform/keybinding/common/keybinding
'
;
...
...
@@ -354,6 +354,7 @@ export class ExtensionEditor extends BaseEditor {
this
.
transientDisposables
.
push
(
ratings
);
const
maliciousStatusAction
=
this
.
instantiationService
.
createInstance
(
MaliciousStatusLabelAction
,
true
);
const
disabledStatusAction
=
this
.
instantiationService
.
createInstance
(
DisabledStatusLabelAction
);
const
installAction
=
this
.
instantiationService
.
createInstance
(
CombinedInstallAction
);
const
updateAction
=
this
.
instantiationService
.
createInstance
(
UpdateAction
);
const
enableAction
=
this
.
instantiationService
.
createInstance
(
EnableAction
);
...
...
@@ -362,14 +363,15 @@ export class ExtensionEditor extends BaseEditor {
installAction
.
extension
=
extension
;
maliciousStatusAction
.
extension
=
extension
;
disabledStatusAction
.
extension
=
extension
;
updateAction
.
extension
=
extension
;
enableAction
.
extension
=
extension
;
disableAction
.
extension
=
extension
;
reloadAction
.
extension
=
extension
;
this
.
extensionActionBar
.
clear
();
this
.
extensionActionBar
.
push
([
reloadAction
,
updateAction
,
enableAction
,
disableAction
,
installAction
,
maliciousStatusAction
],
{
icon
:
true
,
label
:
true
});
this
.
transientDisposables
.
push
(
enableAction
,
updateAction
,
reloadAction
,
disableAction
,
installAction
,
maliciousStatusAction
);
this
.
extensionActionBar
.
push
([
disabledStatusAction
,
reloadAction
,
updateAction
,
enableAction
,
disableAction
,
installAction
,
maliciousStatusAction
],
{
icon
:
true
,
label
:
true
});
this
.
transientDisposables
.
push
(
enableAction
,
updateAction
,
reloadAction
,
disableAction
,
installAction
,
maliciousStatusAction
,
disabledStatusAction
);
this
.
content
.
innerHTML
=
''
;
// Clear content before setting navbar actions.
...
...
src/vs/workbench/parts/extensions/electron-browser/media/extensionsViewlet.css
浏览文件 @
690d49be
...
...
@@ -191,10 +191,14 @@
opacity
:
0.9
;
}
.extensions-viewlet
>
.extensions
.extension.disabled
>
.icon
,
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.header-container
,
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.description
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.footer
>
.author
{
.vs
.extensions-viewlet
>
.extensions
.extension.disabled
>
.icon
,
.vs-dark
.extensions-viewlet
>
.extensions
.extension.disabled
>
.icon
,
.vs
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.header-container
,
.vs-dark
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.header-container
,
.vs
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.description
,
.vs-dark
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.description
,
.vs
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.footer
>
.author
,
.vs-dark
.extensions-viewlet
>
.extensions
.extension.disabled
>
.details
>
.footer
>
.author
{
opacity
:
0.5
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录