Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
02a90f91
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,发现更多精彩内容 >>
提交
02a90f91
编写于
6月 14, 2018
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use URIs for contributed activity bar icons
上级
b43476e6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
10 deletion
+30
-10
src/vs/workbench/api/browser/viewsContainersExtensionPoint.ts
...vs/workbench/api/browser/viewsContainersExtensionPoint.ts
+11
-5
src/vs/workbench/browser/parts/activitybar/activitybarPart.ts
...vs/workbench/browser/parts/activitybar/activitybarPart.ts
+16
-3
src/vs/workbench/browser/viewlet.ts
src/vs/workbench/browser/viewlet.ts
+3
-2
未找到文件。
src/vs/workbench/api/browser/viewsContainersExtensionPoint.ts
浏览文件 @
02a90f91
...
...
@@ -7,7 +7,7 @@
import
{
localize
}
from
'
vs/nls
'
;
import
{
IJSONSchema
}
from
'
vs/base/common/jsonSchema
'
;
import
{
ExtensionMessageCollector
,
ExtensionsRegistry
,
IExtensionPoint
}
from
'
vs/workbench/services/extensions/common/extensionsRegistry
'
;
import
{
join
}
from
'
vs/base/common/path
s
'
;
import
*
as
resources
from
'
vs/base/common/resource
s
'
;
import
{
createCSSRule
}
from
'
vs/base/browser/dom
'
;
import
{
Registry
}
from
'
vs/platform/registry/common/platform
'
;
import
{
SyncActionDescriptor
}
from
'
vs/platform/actions/common/actions
'
;
...
...
@@ -29,6 +29,7 @@ import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWo
import
{
LifecyclePhase
}
from
'
vs/platform/lifecycle/common/lifecycle
'
;
import
{
IEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
IEditorGroupsService
}
from
'
vs/workbench/services/group/common/editorGroupsService
'
;
import
URI
from
'
vs/base/common/uri
'
;
export
interface
IUserFriendlyViewsContainerDescriptor
{
id
:
string
;
...
...
@@ -36,6 +37,12 @@ export interface IUserFriendlyViewsContainerDescriptor {
icon
:
string
;
}
export
interface
IUserFriendlyViewsContainerDescriptor2
{
id
:
string
;
title
:
string
;
icon
:
URI
;
}
const
viewsContainerSchema
:
IJSONSchema
=
{
type
:
'
object
'
,
properties
:
{
...
...
@@ -81,7 +88,7 @@ class ViewsContainersExtensionHandler implements IWorkbenchContribution {
private
registerTestViewContainer
():
void
{
const
title
=
localize
(
'
test
'
,
"
Test
"
);
const
cssClass
=
`extensionViewlet-test`
;
const
icon
=
require
.
toUrl
(
'
./media/test.svg
'
);
const
icon
=
URI
.
parse
(
require
.
toUrl
(
'
./media/test.svg
'
)
);
this
.
registerCustomViewlet
({
id
:
TEST_VIEW_CONTAINER_ID
,
title
,
icon
},
TEST_VIEW_CONTAINER_ORDER
,
cssClass
);
}
...
...
@@ -135,13 +142,12 @@ class ViewsContainersExtensionHandler implements IWorkbenchContribution {
private
registerCustomViewContainers
(
containers
:
IUserFriendlyViewsContainerDescriptor
[],
extension
:
IExtensionDescription
)
{
containers
.
forEach
((
descriptor
,
index
)
=>
{
const
cssClass
=
`extensionViewlet-
${
descriptor
.
id
}
`
;
// TODO@extensionLocation
const
icon
=
join
(
extension
.
extensionLocation
.
fsPath
,
descriptor
.
icon
);
const
icon
=
resources
.
joinPath
(
extension
.
extensionLocation
,
descriptor
.
icon
);
this
.
registerCustomViewlet
({
id
:
`workbench.view.extension.
${
descriptor
.
id
}
`
,
title
:
descriptor
.
title
,
icon
},
TEST_VIEW_CONTAINER_ORDER
+
index
+
1
,
cssClass
);
});
}
private
registerCustomViewlet
(
descriptor
:
IUserFriendlyViewsContainerDescriptor
,
order
:
number
,
cssClass
:
string
):
void
{
private
registerCustomViewlet
(
descriptor
:
IUserFriendlyViewsContainerDescriptor
2
,
order
:
number
,
cssClass
:
string
):
void
{
const
viewContainersRegistry
=
Registry
.
as
<
IViewContainersRegistry
>
(
ViewContainerExtensions
.
ViewContainersRegistry
);
const
viewletRegistry
=
Registry
.
as
<
ViewletRegistry
>
(
ViewletExtensions
.
Viewlets
);
const
id
=
descriptor
.
id
;
...
...
src/vs/workbench/browser/parts/activitybar/activitybarPart.ts
浏览文件 @
02a90f91
...
...
@@ -33,10 +33,11 @@ import { ViewletDescriptor } from 'vs/workbench/browser/viewlet';
import
{
IStorageService
,
StorageScope
}
from
'
vs/platform/storage/common/storage
'
;
import
{
IExtensionService
}
from
'
vs/workbench/services/extensions/common/extensions
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
URI
from
'
vs/base/common/uri
'
;
interface
IPlaceholderComposite
{
id
:
string
;
iconUrl
:
string
;
iconUrl
:
URI
;
}
export
class
ActivitybarPart
extends
Part
{
...
...
@@ -93,7 +94,19 @@ export class ActivitybarPart extends Part {
overflowActionSize
:
ActivitybarPart
.
ACTION_HEIGHT
});
const
previousState
=
this
.
storageService
.
get
(
ActivitybarPart
.
PLACEHOLDER_VIEWLETS
,
StorageScope
.
GLOBAL
,
void
0
);
this
.
placeholderComposites
=
previousState
?
JSON
.
parse
(
previousState
)
:
this
.
compositeBar
.
getCompositesFromStorage
().
map
(
id
=>
(
<
IPlaceholderComposite
>
{
id
,
iconUrl
:
void
0
}));
if
(
previousState
)
{
let
parsedPreviousState
=
<
IPlaceholderComposite
[]
>
JSON
.
parse
(
previousState
);
parsedPreviousState
.
forEach
((
s
)
=>
{
if
(
typeof
s
.
iconUrl
===
'
object
'
)
{
s
.
iconUrl
=
URI
.
revive
(
s
.
iconUrl
);
}
else
{
s
.
iconUrl
=
void
0
;
}
});
this
.
placeholderComposites
=
parsedPreviousState
;
}
else
{
this
.
placeholderComposites
=
this
.
compositeBar
.
getCompositesFromStorage
().
map
(
id
=>
(
<
IPlaceholderComposite
>
{
id
,
iconUrl
:
void
0
}));
}
this
.
registerListeners
();
this
.
updateCompositebar
();
...
...
@@ -351,7 +364,7 @@ export class ActivitybarPart extends Part {
class
PlaceHolderViewletActivityAction
extends
ViewletActivityAction
{
constructor
(
id
:
string
,
iconUrl
:
string
,
id
:
string
,
iconUrl
:
URI
,
@
IViewletService
viewletService
:
IViewletService
,
@
IPartService
partService
:
IPartService
,
@
ITelemetryService
telemetryService
:
ITelemetryService
...
...
src/vs/workbench/browser/viewlet.ts
浏览文件 @
02a90f91
...
...
@@ -18,6 +18,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import
{
IPartService
}
from
'
vs/workbench/services/part/common/partService
'
;
import
{
IThemeService
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
IEditorGroupsService
}
from
'
vs/workbench/services/group/common/editorGroupsService
'
;
import
URI
from
'
vs/base/common/uri
'
;
export
abstract
class
Viewlet
extends
Composite
implements
IViewlet
{
...
...
@@ -54,12 +55,12 @@ export class ViewletDescriptor extends CompositeDescriptor<Viewlet> {
name
:
string
,
cssClass
?:
string
,
order
?:
number
,
private
_iconUrl
?:
string
private
_iconUrl
?:
URI
)
{
super
(
ctor
,
id
,
name
,
cssClass
,
order
,
id
);
}
public
get
iconUrl
():
string
{
public
get
iconUrl
():
URI
{
return
this
.
_iconUrl
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录