Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d40ffa4c
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,发现更多精彩内容 >>
提交
d40ffa4c
编写于
10月 20, 2016
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#14102 Restore state when closed
上级
e0a96252
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
5 deletion
+37
-5
src/vs/workbench/browser/actions/openSettings.ts
src/vs/workbench/browser/actions/openSettings.ts
+37
-5
未找到文件。
src/vs/workbench/browser/actions/openSettings.ts
浏览文件 @
d40ffa4c
...
...
@@ -12,9 +12,10 @@ import * as labels from 'vs/base/common/labels';
import
{
Registry
}
from
'
vs/platform/platform
'
;
import
{
Action
}
from
'
vs/base/common/actions
'
;
import
*
as
strings
from
'
vs/base/common/strings
'
;
import
Event
,
{
Emitter
}
from
'
vs/base/common/event
'
;
import
{
LinkedMap
as
Map
}
from
'
vs/base/common/map
'
;
import
{
IWorkbenchActionRegistry
,
Extensions
}
from
'
vs/workbench/common/actionRegistry
'
;
import
{
IEditorRegistry
,
Extensions
as
EditorExtensions
}
from
'
vs/workbench/common/editor
'
;
import
{
IEditorRegistry
,
Extensions
as
EditorExtensions
,
EditorOptions
}
from
'
vs/workbench/common/editor
'
;
import
{
EditorDescriptor
}
from
'
vs/workbench/browser/parts/editor/baseEditor
'
;
import
{
StringEditorInput
}
from
'
vs/workbench/common/editor/stringEditorInput
'
;
import
{
ICommonCodeEditor
,
IEditorViewState
}
from
'
vs/editor/common/editorCommon
'
;
...
...
@@ -242,6 +243,9 @@ class DefaultSettingsInput extends StringEditorInput {
static
RESOURCE
:
URI
=
URI
.
from
({
scheme
:
network
.
Schemas
.
vscode
,
authority
:
'
defaultsettings
'
,
path
:
'
/settings.json
'
});
// URI is used to register JSON schema support
private
static
INSTANCE
:
DefaultSettingsInput
;
private
_willDispose
=
new
Emitter
<
void
>
();
public
willDispose
:
Event
<
void
>
=
this
.
_willDispose
.
event
;
public
static
getInstance
(
instantiationService
:
IInstantiationService
,
configurationService
:
IWorkspaceConfigurationService
):
DefaultSettingsInput
{
if
(
!
DefaultSettingsInput
.
INSTANCE
)
{
const
editorConfig
=
configurationService
.
getConfiguration
<
any
>
();
...
...
@@ -258,6 +262,12 @@ class DefaultSettingsInput extends StringEditorInput {
protected
getResource
():
URI
{
return
DefaultSettingsInput
.
RESOURCE
;
}
public
dispose
()
{
this
.
_willDispose
.
fire
();
this
.
_willDispose
.
dispose
();
super
.
dispose
();
}
}
class
DefaultKeybindingsInput
extends
StringEditorInput
{
...
...
@@ -285,6 +295,8 @@ export class DefaultSettingsEditor extends StringEditor {
private
static
VIEW_STATE
:
Map
<
URI
,
IEditorViewState
>
=
new
Map
<
URI
,
IEditorViewState
>
();
private
inputDisposeListener
;
constructor
(
@
ITelemetryService
telemetryService
:
ITelemetryService
,
@
IInstantiationService
instantiationService
:
IInstantiationService
,
...
...
@@ -306,8 +318,16 @@ export class DefaultSettingsEditor extends StringEditor {
return
DefaultSettingsEditor
.
ID
;
}
public
setInput
(
input
:
EditorInput
,
options
:
EditorOptions
):
TPromise
<
void
>
{
this
.
listenToInput
(
input
);
return
super
.
setInput
(
input
,
options
);
}
public
clearInput
():
void
{
this
.
saveState
();
if
(
this
.
inputDisposeListener
)
{
this
.
inputDisposeListener
.
dispose
();
}
super
.
clearInput
();
}
...
...
@@ -321,11 +341,14 @@ export class DefaultSettingsEditor extends StringEditor {
}
private
saveState
()
{
const
resource
=
this
.
getResource
();
if
(
DefaultSettingsEditor
.
VIEW_STATE
.
has
(
resource
))
{
DefaultSettingsEditor
.
VIEW_STATE
.
delete
(
resource
);
const
state
=
this
.
getControl
().
saveViewState
();
if
(
state
)
{
const
resource
=
this
.
getResource
();
if
(
DefaultSettingsEditor
.
VIEW_STATE
.
has
(
resource
))
{
DefaultSettingsEditor
.
VIEW_STATE
.
delete
(
resource
);
}
DefaultSettingsEditor
.
VIEW_STATE
.
set
(
resource
,
state
);
}
DefaultSettingsEditor
.
VIEW_STATE
.
set
(
resource
,
this
.
getControl
().
saveViewState
());
}
private
getResource
():
URI
{
...
...
@@ -336,6 +359,15 @@ export class DefaultSettingsEditor extends StringEditor {
const
foldingController
=
(
<
ICommonCodeEditor
>
this
.
getControl
()).
getContribution
<
IFoldingController
>
(
FoldingContributionId
);
foldingController
.
foldAll
();
}
private
listenToInput
(
input
:
EditorInput
)
{
if
(
this
.
inputDisposeListener
)
{
this
.
inputDisposeListener
.
dispose
();
}
if
(
input
instanceof
DefaultSettingsInput
)
{
this
.
inputDisposeListener
=
input
.
willDispose
(()
=>
this
.
saveState
());
}
}
}
(
<
IEditorRegistry
>
Registry
.
as
(
EditorExtensions
.
Editors
)).
registerEditor
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录