Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
611c4427
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,发现更多精彩内容 >>
提交
611c4427
编写于
11月 03, 2016
作者:
S
Sanders Lauture
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
First attempt
上级
8500a85f
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
144 addition
and
3 deletion
+144
-3
src/vs/code/electron-main/menus.ts
src/vs/code/electron-main/menus.ts
+22
-0
src/vs/test/utils/servicesTestUtils.ts
src/vs/test/utils/servicesTestUtils.ts
+6
-0
src/vs/workbench/browser/actions/toggleActivityBarVisibility.ts
.../workbench/browser/actions/toggleActivityBarVisibility.ts
+49
-0
src/vs/workbench/browser/layout.ts
src/vs/workbench/browser/layout.ts
+11
-3
src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css
...bench/browser/parts/activitybar/media/activitybarpart.css
+5
-0
src/vs/workbench/electron-browser/main.contribution.ts
src/vs/workbench/electron-browser/main.contribution.ts
+5
-0
src/vs/workbench/electron-browser/workbench.ts
src/vs/workbench/electron-browser/workbench.ts
+35
-0
src/vs/workbench/services/part/common/partService.ts
src/vs/workbench/services/part/common/partService.ts
+10
-0
src/vs/workbench/workbench.main.ts
src/vs/workbench/workbench.main.ts
+1
-0
未找到文件。
src/vs/code/electron-main/menus.ts
浏览文件 @
611c4427
...
...
@@ -31,6 +31,9 @@ interface IConfiguration extends IFilesConfiguration {
},
statusBar
:
{
visible
:
boolean
;
},
activityBar
:
{
visible
:
boolean
;
}
};
}
...
...
@@ -44,6 +47,7 @@ export class VSCodeMenu {
private
currentAutoSaveSetting
:
string
;
private
currentSidebarLocation
:
'
left
'
|
'
right
'
;
private
currentStatusbarVisible
:
boolean
;
private
currentActivityBarVisible
:
boolean
;
private
isQuitting
:
boolean
;
private
appMenuInstalled
:
boolean
;
...
...
@@ -151,6 +155,15 @@ export class VSCodeMenu {
this
.
currentStatusbarVisible
=
newStatusbarVisible
;
updateMenu
=
true
;
}
let
newActivityBarVisible
=
config
.
workbench
.
activityBar
&&
config
.
workbench
.
activityBar
.
visible
;
if
(
typeof
newActivityBarVisible
!==
'
boolean
'
)
{
newActivityBarVisible
=
true
;
}
if
(
newActivityBarVisible
!==
this
.
currentActivityBarVisible
)
{
this
.
currentActivityBarVisible
=
newActivityBarVisible
;
updateMenu
=
true
;
}
}
if
(
handleMenu
&&
updateMenu
)
{
...
...
@@ -543,6 +556,14 @@ export class VSCodeMenu {
}
const
toggleStatusbar
=
this
.
createMenuItem
(
statusBarLabel
,
'
workbench.action.toggleStatusbarVisibility
'
);
let
activityBarLabel
:
string
;
if
(
this
.
currentActivityBarVisible
)
{
activityBarLabel
=
'
Show Activity Bar
'
;
}
else
{
activityBarLabel
=
'
Hide Activity Bar
'
;
}
const
toggleActivtyBar
=
this
.
createMenuItem
(
activityBarLabel
,
'
workbench.action.toggleActivityBarVisibility
'
);
const
toggleWordWrap
=
this
.
createMenuItem
(
nls
.
localize
({
key
:
'
miToggleWordWrap
'
,
comment
:
[
'
&& denotes a mnemonic
'
]
},
"
Toggle &&Word Wrap
"
),
'
editor.action.toggleWordWrap
'
);
const
toggleRenderWhitespace
=
this
.
createMenuItem
(
nls
.
localize
({
key
:
'
miToggleRenderWhitespace
'
,
comment
:
[
'
&& denotes a mnemonic
'
]
},
"
Toggle &&Render Whitespace
"
),
'
editor.action.toggleRenderWhitespace
'
);
const
toggleRenderControlCharacters
=
this
.
createMenuItem
(
nls
.
localize
({
key
:
'
miToggleRenderControlCharacters
'
,
comment
:
[
'
&& denotes a mnemonic
'
]
},
"
Toggle &&Control Characters
"
),
'
editor.action.toggleRenderControlCharacter
'
);
...
...
@@ -574,6 +595,7 @@ export class VSCodeMenu {
toggleSidebar
,
togglePanel
,
toggleStatusbar
,
toggleActivtyBar
,
__separator__
(),
toggleWordWrap
,
toggleRenderWhitespace
,
...
...
src/vs/test/utils/servicesTestUtils.ts
浏览文件 @
611c4427
...
...
@@ -240,6 +240,12 @@ export class TestPartService implements IPartService {
return
false
;
}
public
isActivityBarHidden
():
boolean
{
return
false
;
}
public
setActivityBarHidden
(
hidden
:
boolean
):
void
{
}
public
isSideBarHidden
():
boolean
{
return
false
;
}
...
...
src/vs/workbench/browser/actions/toggleActivityBarVisibility.ts
0 → 100644
浏览文件 @
611c4427
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
nls
=
require
(
'
vs/nls
'
);
import
{
Registry
}
from
'
vs/platform/platform
'
;
import
{
Action
}
from
'
vs/base/common/actions
'
;
import
{
SyncActionDescriptor
}
from
'
vs/platform/actions/common/actions
'
;
import
{
IWorkbenchActionRegistry
,
Extensions
}
from
'
vs/workbench/common/actionRegistry
'
;
import
{
IMessageService
,
Severity
}
from
'
vs/platform/message/common/message
'
;
import
{
IConfigurationEditingService
,
ConfigurationTarget
}
from
'
vs/workbench/services/configuration/common/configurationEditing
'
;
import
{
IPartService
}
from
'
vs/workbench/services/part/common/partService
'
;
export
class
ToggleActivityBarVisibilityAction
extends
Action
{
public
static
ID
=
'
workbench.action.toggleActivityBarVisibility
'
;
public
static
LABEL
=
nls
.
localize
(
'
toggleActivityBar
'
,
"
Toggle Activity Bar Visibility
"
);
private
static
activityBarVisibleKey
=
'
workbench.activitybar.visible
'
;
constructor
(
id
:
string
,
label
:
string
,
@
IPartService
private
partService
:
IPartService
,
@
IMessageService
private
messageService
:
IMessageService
,
@
IConfigurationEditingService
private
configurationEditingService
:
IConfigurationEditingService
)
{
super
(
id
,
label
);
this
.
enabled
=
!!
this
.
partService
;
}
public
run
():
TPromise
<
any
>
{
const
visibility
=
!
this
.
partService
.
isActivityBarHidden
();
const
newVisibilityValue
=
!
visibility
;
this
.
configurationEditingService
.
writeConfiguration
(
ConfigurationTarget
.
USER
,
{
key
:
ToggleActivityBarVisibilityAction
.
activityBarVisibleKey
,
value
:
newVisibilityValue
}).
then
(
null
,
error
=>
{
this
.
messageService
.
show
(
Severity
.
Error
,
error
);
});
return
TPromise
.
as
(
null
);
}
}
let
registry
=
<
IWorkbenchActionRegistry
>
Registry
.
as
(
Extensions
.
WorkbenchActions
);
registry
.
registerWorkbenchAction
(
new
SyncActionDescriptor
(
ToggleActivityBarVisibilityAction
,
ToggleActivityBarVisibilityAction
.
ID
,
ToggleActivityBarVisibilityAction
.
LABEL
),
'
View: Toggle Activity Bar Visibility
'
,
nls
.
localize
(
'
view
'
,
"
View
"
));
\ No newline at end of file
src/vs/workbench/browser/layout.ts
浏览文件 @
611c4427
...
...
@@ -343,6 +343,7 @@ export class WorkbenchLayout implements IVerticalSashLayoutProvider, IHorizontal
this
.
workbenchSize
=
this
.
getWorkbenchArea
();
const
isActivityBarHidden
=
this
.
partService
.
isActivityBarHidden
();
const
isSidebarHidden
=
this
.
partService
.
isSideBarHidden
();
const
isPanelHidden
=
this
.
partService
.
isPanelHidden
();
const
sidebarPosition
=
this
.
partService
.
getSideBarPosition
();
...
...
@@ -366,7 +367,13 @@ export class WorkbenchLayout implements IVerticalSashLayoutProvider, IHorizontal
// Activity Bar
let
activityBarMinWidth
=
this
.
computedStyles
.
activitybar
.
minWidth
;
let
activityBarSize
=
new
Dimension
(
activityBarMinWidth
,
sidebarSize
.
height
);
let
activityBarWidth
:
number
;
if
(
isActivityBarHidden
)
{
activityBarWidth
=
0
;
}
else
{
activityBarWidth
=
activityBarMinWidth
;
}
let
activityBarSize
=
new
Dimension
(
activityBarWidth
,
sidebarSize
.
height
);
// Panel part
let
panelHeight
:
number
;
...
...
@@ -399,7 +406,7 @@ export class WorkbenchLayout implements IVerticalSashLayoutProvider, IHorizontal
// Sidebar hidden
if
(
isSidebarHidden
)
{
editorSize
.
width
=
Math
.
min
(
this
.
workbenchSize
.
width
-
activityBarSize
.
width
,
this
.
workbenchSize
.
width
-
activityBarMinWidth
)
;
editorSize
.
width
=
this
.
workbenchSize
.
width
-
activityBarSize
.
width
;
if
(
sidebarPosition
===
Position
.
LEFT
)
{
editorSize
.
remainderLeft
=
Math
.
round
((
this
.
workbenchSize
.
width
-
editorSize
.
width
+
activityBarSize
.
width
)
/
2
);
...
...
@@ -531,7 +538,8 @@ export class WorkbenchLayout implements IVerticalSashLayoutProvider, IHorizontal
public
getVerticalSashLeft
(
sash
:
Sash
):
number
{
let
isSidebarHidden
=
this
.
partService
.
isSideBarHidden
();
let
sidebarPosition
=
this
.
partService
.
getSideBarPosition
();
let
activitybarWidth
=
this
.
computedStyles
.
activitybar
.
minWidth
;
let
isActivityBarHidden
=
this
.
partService
.
isActivityBarHidden
();
let
activitybarWidth
=
!
isActivityBarHidden
?
this
.
computedStyles
.
activitybar
.
minWidth
:
0
;
if
(
sidebarPosition
===
Position
.
LEFT
)
{
return
!
isSidebarHidden
?
this
.
sidebarWidth
+
activitybarWidth
:
activitybarWidth
;
...
...
src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css
浏览文件 @
611c4427
...
...
@@ -13,6 +13,11 @@
height
:
100%
;
}
.monaco-workbench.noactivitybar
>
.activitybar
{
display
:
none
!important
;
visibility
:
hidden
!important
;
}
.monaco-workbench
>
.activitybar
>
.content
.monaco-action-bar
{
text-align
:
left
;
background-color
:
inherit
;
...
...
src/vs/workbench/electron-browser/main.contribution.ts
浏览文件 @
611c4427
...
...
@@ -120,6 +120,11 @@ configurationRegistry.registerConfiguration({
'
type
'
:
'
boolean
'
,
'
default
'
:
true
,
'
description
'
:
nls
.
localize
(
'
statusBarVisibility
'
,
"
Controls the visibility of the status bar at the bottom of the workbench.
"
)
},
'
workbench.activitybar.visible
'
:
{
'
type
'
:
'
boolean
'
,
'
default
'
:
true
,
'
description
'
:
nls
.
localize
(
'
activityBarVisibility
'
,
"
Controls the visibility of the activity bar on the left side of the workbench.
"
)
}
}
});
...
...
src/vs/workbench/electron-browser/workbench.ts
浏览文件 @
611c4427
...
...
@@ -113,6 +113,8 @@ export class Workbench implements IPartService {
private
static
sidebarPositionConfigurationKey
=
'
workbench.sideBar.location
'
;
private
static
statusbarVisibleConfigurationKey
=
'
workbench.statusBar.visible
'
;
private
static
activityBarVisibleConfigurationKey
=
'
workbench.activitybar.visible
'
;
public
_serviceBrand
:
any
;
private
container
:
HTMLElement
;
...
...
@@ -140,6 +142,7 @@ export class Workbench implements IPartService {
private
creationPromiseComplete
:
ValueCallback
;
private
sideBarHidden
:
boolean
;
private
statusBarHidden
:
boolean
;
private
activityBarHidden
:
boolean
;
private
sideBarPosition
:
Position
;
private
panelHidden
:
boolean
;
private
editorBackgroundDelayer
:
Delayer
<
void
>
;
...
...
@@ -452,6 +455,11 @@ export class Workbench implements IPartService {
// Statusbar visibility
const
statusBarVisible
=
this
.
configurationService
.
lookup
<
string
>
(
Workbench
.
statusbarVisibleConfigurationKey
).
value
;
this
.
statusBarHidden
=
!
statusBarVisible
;
// Activity bar visibility
const
activityBarVisible
=
this
.
configurationService
.
lookup
<
string
>
(
Workbench
.
activityBarVisibleConfigurationKey
).
value
;
this
.
activityBarHidden
=
!
activityBarVisible
;
}
/**
...
...
@@ -512,6 +520,8 @@ export class Workbench implements IPartService {
return
!
this
.
panelHidden
;
case
Parts
.
STATUSBAR_PART
:
return
!
this
.
statusBarHidden
;
case
Parts
.
ACTIVITYBAR_PART
:
return
!
this
.
activityBarHidden
;
}
return
true
;
// any other part cannot be hidden
...
...
@@ -530,6 +540,26 @@ export class Workbench implements IPartService {
}
}
public
isActivityBarHidden
():
boolean
{
return
this
.
activityBarHidden
;
}
public
setActivityBarHidden
(
hidden
:
boolean
,
skipLayout
?:
boolean
):
void
{
this
.
activityBarHidden
=
hidden
;
// Adjust CSS
if
(
hidden
)
{
this
.
workbench
.
addClass
(
'
noactivitybar
'
);
}
else
{
this
.
workbench
.
removeClass
(
'
noactivitybar
'
);
}
// Layout
if
(
!
skipLayout
)
{
this
.
workbenchLayout
.
layout
({
forceStyleReCompute
:
true
});
}
}
public
isSideBarHidden
():
boolean
{
return
this
.
sideBarHidden
;
}
...
...
@@ -715,6 +745,11 @@ export class Workbench implements IPartService {
if
(
newStatusbarHiddenValue
!==
this
.
isStatusBarHidden
())
{
this
.
setStatusBarHidden
(
newStatusbarHiddenValue
);
}
const
newActivityBarHiddenValue
=
!
this
.
configurationService
.
lookup
<
boolean
>
(
Workbench
.
activityBarVisibleConfigurationKey
).
value
;
if
(
newActivityBarHiddenValue
!==
this
.
isActivityBarHidden
())
{
this
.
setActivityBarHidden
(
newActivityBarHiddenValue
);
}
}
private
createWorkbenchLayout
():
void
{
...
...
src/vs/workbench/services/part/common/partService.ts
浏览文件 @
611c4427
...
...
@@ -55,6 +55,16 @@ export interface IPartService {
*/
isVisible
(
part
:
Parts
):
boolean
;
/**
* Checks if the activity bar is currently hidden or not
*/
isActivityBarHidden
():
boolean
;
/**
* Set activity bar hidden or not
*/
setActivityBarHidden
(
hidden
:
boolean
):
void
;
/**
* Checks if the statusbar is currently hidden or not
*/
...
...
src/vs/workbench/workbench.main.ts
浏览文件 @
611c4427
...
...
@@ -20,6 +20,7 @@ import 'vs/editor/browser/editor.all';
import
'
vs/platform/actions/browser/menusExtensionPoint
'
;
// Workbench
import
'
vs/workbench/browser/actions/toggleActivityBarVisibility
'
;
import
'
vs/workbench/browser/actions/toggleStatusbarVisibility
'
;
import
'
vs/workbench/browser/actions/toggleSidebarVisibility
'
;
import
'
vs/workbench/browser/actions/toggleSidebarPosition
'
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录