Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
04f74856
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 搜索 >>
提交
04f74856
编写于
3月 07, 2019
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debt - acitivtybar as declarative service
上级
c056a5da
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
60 addition
and
36 deletion
+60
-36
src/vs/workbench/browser/part.ts
src/vs/workbench/browser/part.ts
+4
-0
src/vs/workbench/browser/parts/activitybar/activitybarPart.ts
...vs/workbench/browser/parts/activitybar/activitybarPart.ts
+6
-1
src/vs/workbench/browser/parts/compositePart.ts
src/vs/workbench/browser/parts/compositePart.ts
+1
-1
src/vs/workbench/browser/parts/editor/editorPart.ts
src/vs/workbench/browser/parts/editor/editorPart.ts
+1
-1
src/vs/workbench/browser/parts/statusbar/statusbarPart.ts
src/vs/workbench/browser/parts/statusbar/statusbarPart.ts
+1
-1
src/vs/workbench/browser/parts/titlebar/titlebarPart.ts
src/vs/workbench/browser/parts/titlebar/titlebarPart.ts
+1
-1
src/vs/workbench/electron-browser/workbench.ts
src/vs/workbench/electron-browser/workbench.ts
+9
-17
src/vs/workbench/services/activity/browser/activityService.ts
...vs/workbench/services/activity/browser/activityService.ts
+8
-7
src/vs/workbench/services/activityBar/browser/activityBarService.ts
...kbench/services/activityBar/browser/activityBarService.ts
+7
-0
src/vs/workbench/services/editor/test/browser/editorGroupsService.test.ts
.../services/editor/test/browser/editorGroupsService.test.ts
+1
-1
src/vs/workbench/services/editor/test/browser/editorService.test.ts
...kbench/services/editor/test/browser/editorService.test.ts
+6
-6
src/vs/workbench/services/panel/common/panelService.ts
src/vs/workbench/services/panel/common/panelService.ts
+7
-0
src/vs/workbench/services/progress/test/progressService.test.ts
.../workbench/services/progress/test/progressService.test.ts
+6
-0
src/vs/workbench/workbench.main.ts
src/vs/workbench/workbench.main.ts
+2
-0
未找到文件。
src/vs/workbench/browser/part.ts
浏览文件 @
04f74856
...
...
@@ -49,6 +49,10 @@ export abstract class Part extends Component implements ISerializableView {
}
}
updateStyles
():
void
{
super
.
updateStyles
();
}
/**
* Note: Clients should not call this method, the workbench calls this
* method. Calling it otherwise may result in unexpected behavior.
...
...
src/vs/workbench/browser/parts/activitybar/activitybarPart.ts
浏览文件 @
04f74856
...
...
@@ -32,6 +32,7 @@ import { IContextKeyService, ContextKeyExpr } from 'vs/platform/contextkey/commo
import
{
IViewlet
}
from
'
vs/workbench/common/viewlet
'
;
import
{
isUndefinedOrNull
}
from
'
vs/base/common/types
'
;
import
{
IActivityBarService
}
from
'
vs/workbench/services/activityBar/browser/activityBarService
'
;
import
{
registerSingleton
}
from
'
vs/platform/instantiation/common/extensions
'
;
const
SCM_VIEWLET_ID
=
'
workbench.view.scm
'
;
...
...
@@ -75,7 +76,7 @@ export class ActivitybarPart extends Part implements IActivityBarService {
@
IStorageService
private
readonly
storageService
:
IStorageService
,
@
IExtensionService
private
readonly
extensionService
:
IExtensionService
,
@
IViewsService
private
readonly
viewsService
:
IViewsService
,
@
IContextKeyService
private
readonly
contextKeyService
:
IContextKeyService
@
IContextKeyService
private
readonly
contextKeyService
:
IContextKeyService
,
)
{
super
(
Parts
.
ACTIVITYBAR_PART
,
{
hasTitle
:
false
},
themeService
,
storageService
);
...
...
@@ -101,6 +102,8 @@ export class ActivitybarPart extends Part implements IActivityBarService {
overflowActionSize
:
ActivitybarPart
.
ACTION_HEIGHT
}));
this
.
layoutService
.
registerPart
(
this
);
this
.
registerListeners
();
this
.
onDidRegisterViewlets
(
viewletService
.
getViewlets
());
}
...
...
@@ -502,3 +505,5 @@ export class ActivitybarPart extends Part implements IActivityBarService {
};
}
}
registerSingleton
(
IActivityBarService
,
ActivitybarPart
);
\ No newline at end of file
src/vs/workbench/browser/parts/compositePart.ts
浏览文件 @
04f74856
...
...
@@ -421,7 +421,7 @@ export abstract class CompositePart<T extends Composite> extends Part {
};
}
protected
updateStyles
():
void
{
updateStyles
():
void
{
super
.
updateStyles
();
// Forward to title label
...
...
src/vs/workbench/browser/parts/editor/editorPart.ts
浏览文件 @
04f74856
...
...
@@ -776,7 +776,7 @@ export class EditorPart extends Part implements IEditorGroupsService, IEditorGro
return
this
.
theme
.
getColor
(
EDITOR_GROUP_BORDER
)
||
this
.
theme
.
getColor
(
contrastBorder
)
||
Color
.
transparent
;
}
protected
updateStyles
():
void
{
updateStyles
():
void
{
this
.
container
.
style
.
backgroundColor
=
this
.
getColor
(
editorBackground
);
const
separatorBorderStyle
=
{
separatorBorder
:
this
.
gridSeparatorBorder
,
background
:
this
.
theme
.
getColor
(
EDITOR_PANE_BACKGROUND
)
||
Color
.
transparent
};
...
...
src/vs/workbench/browser/parts/statusbar/statusbarPart.ts
浏览文件 @
04f74856
...
...
@@ -147,7 +147,7 @@ export class StatusbarPart extends Part implements IStatusbarService {
return
this
.
element
;
}
protected
updateStyles
():
void
{
updateStyles
():
void
{
super
.
updateStyles
();
const
container
=
this
.
getContainer
();
...
...
src/vs/workbench/browser/parts/titlebar/titlebarPart.ts
浏览文件 @
04f74856
...
...
@@ -459,7 +459,7 @@ export class TitlebarPart extends Part implements ITitleService {
this
.
adjustTitleMarginToCenter
();
}
protected
updateStyles
():
void
{
updateStyles
():
void
{
super
.
updateStyles
();
// Part container
...
...
src/vs/workbench/electron-browser/workbench.ts
浏览文件 @
04f74856
...
...
@@ -20,7 +20,6 @@ import { isWindows, isLinux, isMacintosh } from 'vs/base/common/platform';
import
{
IResourceInput
}
from
'
vs/platform/editor/common/editor
'
;
import
{
IWorkbenchContributionsRegistry
,
Extensions
as
WorkbenchExtensions
}
from
'
vs/workbench/common/contributions
'
;
import
{
IEditorInputFactoryRegistry
,
Extensions
as
EditorExtensions
,
IUntitledResourceInput
,
IResourceDiffInput
}
from
'
vs/workbench/common/editor
'
;
import
{
ActivitybarPart
}
from
'
vs/workbench/browser/parts/activitybar/activitybarPart
'
;
import
{
SidebarPart
}
from
'
vs/workbench/browser/parts/sidebar/sidebarPart
'
;
import
{
PanelPart
}
from
'
vs/workbench/browser/parts/panel/panelPart
'
;
import
{
StatusbarPart
}
from
'
vs/workbench/browser/parts/statusbar/statusbarPart
'
;
...
...
@@ -36,7 +35,6 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
import
{
ContextKeyService
}
from
'
vs/platform/contextkey/browser/contextKeyService
'
;
import
{
IKeybindingService
}
from
'
vs/platform/keybinding/common/keybinding
'
;
import
{
IContextKeyService
}
from
'
vs/platform/contextkey/common/contextkey
'
;
import
{
IActivityService
}
from
'
vs/workbench/services/activity/common/activity
'
;
import
{
IViewletService
}
from
'
vs/workbench/services/viewlet/browser/viewlet
'
;
import
{
IFileService
}
from
'
vs/platform/files/common/files
'
;
import
{
IPanelService
}
from
'
vs/workbench/services/panel/common/panelService
'
;
...
...
@@ -49,7 +47,6 @@ import { IWindowService, IWindowConfiguration, IPath, MenuBarVisibility, getTitl
import
{
IStatusbarService
}
from
'
vs/platform/statusbar/common/statusbar
'
;
import
{
IContextMenuService
,
IContextViewService
}
from
'
vs/platform/contextview/browser/contextView
'
;
import
{
IEnvironmentService
}
from
'
vs/platform/environment/common/environment
'
;
import
{
ActivityService
}
from
'
vs/workbench/services/activity/browser/activityService
'
;
import
{
IViewsService
}
from
'
vs/workbench/common/views
'
;
import
{
ViewsService
}
from
'
vs/workbench/browser/parts/views/views
'
;
import
{
INotificationService
}
from
'
vs/platform/notification/common/notification
'
;
...
...
@@ -94,7 +91,6 @@ import { IProductService } from 'vs/platform/product/common/product';
import
{
WorkbenchContextKeysHandler
}
from
'
vs/workbench/browser/contextkeys
'
;
import
{
IDimension
}
from
'
vs/platform/layout/browser/layoutService
'
;
import
{
Part
}
from
'
vs/workbench/browser/part
'
;
import
{
IActivityBarService
}
from
'
vs/workbench/services/activityBar/browser/activityBarService
'
;
// import@node
import
{
getDelayedChannel
}
from
'
vs/base/parts/ipc/node/ipc
'
;
...
...
@@ -176,7 +172,6 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
private
parts
:
Map
<
string
,
Part
>
=
new
Map
<
string
,
Part
>
();
private
activitybarPart
:
ActivitybarPart
;
private
sidebarPart
:
SidebarPart
;
private
panelPart
:
PanelPart
;
private
statusbarPart
:
StatusbarPart
;
...
...
@@ -453,11 +448,6 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
// Views service
serviceCollection
.
set
(
IViewsService
,
new
SyncDescriptor
(
ViewsService
));
// Activity service (activitybar part)
this
.
activitybarPart
=
this
.
instantiationService
.
createInstance
(
ActivitybarPart
);
serviceCollection
.
set
(
IActivityBarService
,
this
.
activitybarPart
);
// TODO@Ben use SyncDescriptor
serviceCollection
.
set
(
IActivityService
,
new
SyncDescriptor
(
ActivityService
,
[
this
.
activitybarPart
,
this
.
panelPart
],
true
));
// Contributed services
const
contributedServices
=
getServices
();
for
(
let
contributedService
of
contributedServices
)
{
...
...
@@ -592,7 +582,7 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
private
createActivityBarPart
():
void
{
const
activitybarPartContainer
=
this
.
createPart
(
Parts
.
ACTIVITYBAR_PART
,
'
navigation
'
,
'
activitybar
'
,
this
.
state
.
sideBar
.
position
===
Position
.
LEFT
?
'
left
'
:
'
right
'
);
this
.
activitybarPart
.
create
(
activitybarPartContainer
);
this
.
parts
.
get
(
Parts
.
ACTIVITYBAR_PART
)
.
create
(
activitybarPartContainer
);
}
private
createSidebarPart
():
void
{
...
...
@@ -946,6 +936,7 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
}
private
setSideBarPosition
(
position
:
Position
):
void
{
const
activityBar
=
this
.
parts
.
get
(
Parts
.
ACTIVITYBAR_PART
);
const
wasHidden
=
this
.
state
.
sideBar
.
hidden
;
if
(
this
.
state
.
sideBar
.
hidden
)
{
...
...
@@ -957,13 +948,13 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
this
.
state
.
sideBar
.
position
=
position
;
// Adjust CSS
removeClass
(
this
.
activitybarPart
.
getContainer
(),
oldPositionValue
);
removeClass
(
activityBar
.
getContainer
(),
oldPositionValue
);
removeClass
(
this
.
sidebarPart
.
getContainer
(),
oldPositionValue
);
addClass
(
this
.
activitybarPart
.
getContainer
(),
newPositionValue
);
addClass
(
activityBar
.
getContainer
(),
newPositionValue
);
addClass
(
this
.
sidebarPart
.
getContainer
(),
newPositionValue
);
// Update Styles
this
.
activitybarPart
.
updateStyles
();
activityBar
.
updateStyles
();
this
.
sidebarPart
.
updateStyles
();
// Layout
...
...
@@ -1164,7 +1155,7 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
case
Parts
.
TITLEBAR_PART
:
return
this
.
parts
.
get
(
Parts
.
TITLEBAR_PART
).
getContainer
();
case
Parts
.
ACTIVITYBAR_PART
:
return
this
.
activitybarPart
.
getContainer
();
return
this
.
parts
.
get
(
Parts
.
ACTIVITYBAR_PART
)
.
getContainer
();
case
Parts
.
SIDEBAR_PART
:
return
this
.
sidebarPart
.
getContainer
();
case
Parts
.
PANEL_PART
:
...
...
@@ -1342,13 +1333,14 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
private
createWorkbenchLayout
():
void
{
const
titlePart
=
this
.
parts
.
get
(
Parts
.
TITLEBAR_PART
);
const
editorPart
=
this
.
parts
.
get
(
Parts
.
EDITOR_PART
);
const
activityBar
=
this
.
parts
.
get
(
Parts
.
ACTIVITYBAR_PART
);
if
(
this
.
configurationService
.
getValue
(
'
workbench.useExperimentalGridLayout
'
))
{
// Create view wrappers for all parts
this
.
titleBarPartView
=
new
View
(
titlePart
);
this
.
sideBarPartView
=
new
View
(
this
.
sidebarPart
);
this
.
activityBarPartView
=
new
View
(
this
.
activitybarPart
);
this
.
activityBarPartView
=
new
View
(
activityBar
);
this
.
editorPartView
=
new
View
(
editorPart
);
this
.
panelPartView
=
new
View
(
this
.
panelPart
);
this
.
statusBarPartView
=
new
View
(
this
.
statusbarPart
);
...
...
@@ -1363,7 +1355,7 @@ export class Workbench extends Disposable implements IWorkbenchLayoutService {
this
.
workbench
,
{
titlebar
:
titlePart
,
activitybar
:
this
.
activitybarPart
,
activitybar
:
activityBar
,
editor
:
editorPart
,
sidebar
:
this
.
sidebarPart
,
panel
:
this
.
panelPart
,
...
...
src/vs/workbench/services/activity/browser/activityService.ts
浏览文件 @
04f74856
...
...
@@ -4,26 +4,27 @@
*--------------------------------------------------------------------------------------------*/
import
{
IPanelService
}
from
'
vs/workbench/services/panel/common/panelService
'
;
import
{
ActivitybarPart
}
from
'
vs/workbench/browser/parts/activitybar/activitybarPart
'
;
import
{
PanelPart
}
from
'
vs/workbench/browser/parts/panel/panelPart
'
;
import
{
IActivityService
,
IBadge
}
from
'
vs/workbench/services/activity/common/activity
'
;
import
{
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
IActivityBarService
}
from
'
vs/workbench/services/activityBar/browser/activityBarService
'
;
import
{
registerSingleton
}
from
'
vs/platform/instantiation/common/extensions
'
;
export
class
ActivityService
implements
IActivityService
{
public
_serviceBrand
:
any
;
constructor
(
private
activitybarPart
:
ActivitybarPart
,
private
panelPart
:
PanelPart
,
@
IPanelService
private
readonly
panelService
:
IPanelService
@
IPanelService
private
readonly
panelService
:
IPanelService
,
@
IActivityBarService
private
readonly
activityBarService
:
IActivityBarService
)
{
}
showActivity
(
compositeOrActionId
:
string
,
badge
:
IBadge
,
clazz
?:
string
,
priority
?:
number
):
IDisposable
{
if
(
this
.
panelService
.
getPanels
().
filter
(
p
=>
p
.
id
===
compositeOrActionId
).
length
)
{
return
this
.
panel
Part
.
showActivity
(
compositeOrActionId
,
badge
,
clazz
);
return
this
.
panel
Service
.
showActivity
(
compositeOrActionId
,
badge
,
clazz
);
}
return
this
.
activity
barPart
.
showActivity
(
compositeOrActionId
,
badge
,
clazz
,
priority
);
return
this
.
activity
BarService
.
showActivity
(
compositeOrActionId
,
badge
,
clazz
,
priority
);
}
}
registerSingleton
(
IActivityService
,
ActivityService
,
true
);
\ No newline at end of file
src/vs/workbench/services/activityBar/browser/activityBarService.ts
浏览文件 @
04f74856
...
...
@@ -4,12 +4,19 @@
*--------------------------------------------------------------------------------------------*/
import
{
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IBadge
}
from
'
vs/workbench/services/activity/common/activity
'
;
import
{
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
export
const
IActivityBarService
=
createDecorator
<
IActivityBarService
>
(
'
activityBarService
'
);
export
interface
IActivityBarService
{
_serviceBrand
:
any
;
/**
* Show an activity in a viewlet.
*/
showActivity
(
viewletOrActionId
:
string
,
badge
:
IBadge
,
clazz
?:
string
,
priority
?:
number
):
IDisposable
;
/**
* Returns id of pinned viewlets following the visual order.
*/
...
...
src/vs/workbench/services/editor/test/browser/editorGroupsService.test.ts
浏览文件 @
04f74856
...
...
@@ -86,7 +86,7 @@ suite('Editor groups service', () => {
function
createPart
():
EditorPart
{
const
instantiationService
=
workbenchInstantiationService
();
const
part
=
instantiationService
.
createInstance
(
EditorPart
,
false
);
const
part
=
instantiationService
.
createInstance
(
EditorPart
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
400
,
300
);
...
...
src/vs/workbench/services/editor/test/browser/editorService.test.ts
浏览文件 @
04f74856
...
...
@@ -76,7 +76,7 @@ suite('Editor service', () => {
test
(
'
basics
'
,
function
()
{
const
partInstantiator
=
workbenchInstantiationService
();
const
part
=
partInstantiator
.
createInstance
(
EditorPart
,
false
);
const
part
=
partInstantiator
.
createInstance
(
EditorPart
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
400
,
300
);
...
...
@@ -149,7 +149,7 @@ suite('Editor service', () => {
test
(
'
openEditors() / replaceEditors()
'
,
function
()
{
const
partInstantiator
=
workbenchInstantiationService
();
const
part
=
partInstantiator
.
createInstance
(
EditorPart
,
false
);
const
part
=
partInstantiator
.
createInstance
(
EditorPart
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
400
,
300
);
...
...
@@ -290,7 +290,7 @@ suite('Editor service', () => {
test
(
'
close editor does not dispose when editor opened in other group
'
,
function
()
{
const
partInstantiator
=
workbenchInstantiationService
();
const
part
=
partInstantiator
.
createInstance
(
EditorPart
,
false
);
const
part
=
partInstantiator
.
createInstance
(
EditorPart
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
400
,
300
);
...
...
@@ -329,7 +329,7 @@ suite('Editor service', () => {
test
(
'
open to the side
'
,
function
()
{
const
partInstantiator
=
workbenchInstantiationService
();
const
part
=
partInstantiator
.
createInstance
(
EditorPart
,
false
);
const
part
=
partInstantiator
.
createInstance
(
EditorPart
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
400
,
300
);
...
...
@@ -363,7 +363,7 @@ suite('Editor service', () => {
test
(
'
active editor change / visible editor change events
'
,
async
function
()
{
const
partInstantiator
=
workbenchInstantiationService
();
const
part
=
partInstantiator
.
createInstance
(
EditorPart
,
false
);
const
part
=
partInstantiator
.
createInstance
(
EditorPart
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
400
,
300
);
...
...
@@ -573,7 +573,7 @@ suite('Editor service', () => {
test
(
'
openEditor returns NULL when opening fails or is inactive
'
,
async
function
()
{
const
partInstantiator
=
workbenchInstantiationService
();
const
part
=
partInstantiator
.
createInstance
(
EditorPart
,
false
);
const
part
=
partInstantiator
.
createInstance
(
EditorPart
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
400
,
300
);
...
...
src/vs/workbench/services/panel/common/panelService.ts
浏览文件 @
04f74856
...
...
@@ -6,6 +6,8 @@
import
{
Event
}
from
'
vs/base/common/event
'
;
import
{
IPanel
}
from
'
vs/workbench/common/panel
'
;
import
{
createDecorator
,
ServiceIdentifier
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IBadge
}
from
'
vs/workbench/services/activity/common/activity
'
;
import
{
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
export
const
IPanelService
=
createDecorator
<
IPanelService
>
(
'
panelService
'
);
...
...
@@ -41,4 +43,9 @@ export interface IPanelService {
* Returns pinned panels following the visual order
*/
getPinnedPanels
():
IPanelIdentifier
[];
/**
* Show an activity in a panel.
*/
showActivity
(
panelId
:
string
,
badge
:
IBadge
,
clazz
?:
string
):
IDisposable
;
}
src/vs/workbench/services/progress/test/progressService.test.ts
浏览文件 @
04f74856
...
...
@@ -13,6 +13,8 @@ import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
import
{
IPanelService
}
from
'
vs/workbench/services/panel/common/panelService
'
;
import
{
IViewlet
}
from
'
vs/workbench/common/viewlet
'
;
import
{
Emitter
}
from
'
vs/base/common/event
'
;
import
{
IBadge
}
from
'
vs/workbench/services/activity/common/activity
'
;
import
{
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
let
activeViewlet
:
Viewlet
=
{}
as
any
;
...
...
@@ -87,6 +89,10 @@ class TestPanelService implements IPanelService {
public
dispose
()
{
}
public
showActivity
(
panelId
:
string
,
badge
:
IBadge
,
clazz
?:
string
):
IDisposable
{
throw
new
Error
(
'
Method not implemented.
'
);
}
}
class
TestViewlet
implements
IViewlet
{
...
...
src/vs/workbench/workbench.main.ts
浏览文件 @
04f74856
...
...
@@ -79,10 +79,12 @@ import 'vs/platform/accessibility/node/accessibilityService';
import
'
vs/workbench/services/editor/browser/editorService
'
;
import
'
vs/workbench/services/history/browser/history
'
;
import
'
vs/workbench/services/files/node/remoteFileService
'
;
import
'
vs/workbench/services/activity/browser/activityService
'
;
import
'
vs/workbench/browser/parts/quickinput/quickInput
'
;
import
'
vs/workbench/browser/parts/quickopen/quickOpenController
'
;
import
'
vs/workbench/browser/parts/titlebar/titlebarPart
'
;
import
'
vs/workbench/browser/parts/editor/editorPart
'
;
import
'
vs/workbench/browser/parts/activitybar/activitybarPart
'
;
registerSingleton
(
IMenuService
,
MenuService
,
true
);
registerSingleton
(
IListService
,
ListService
,
true
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录