Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
e5dadf5e
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,发现更多精彩内容 >>
提交
e5dadf5e
编写于
2月 18, 2020
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
text files - renaming should preserve mode if new mode is unspecified
上级
b59c3a83
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
12 deletion
+23
-12
src/vs/workbench/common/editor/textEditorModel.ts
src/vs/workbench/common/editor/textEditorModel.ts
+1
-1
src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts
...ch/services/textfile/common/textFileEditorModelManager.ts
+20
-11
src/vs/workbench/services/textfile/common/textfiles.ts
src/vs/workbench/services/textfile/common/textfiles.ts
+2
-0
未找到文件。
src/vs/workbench/common/editor/textEditorModel.ts
浏览文件 @
e5dadf5e
...
...
@@ -141,7 +141,7 @@ export class BaseTextEditorModel extends EditorModel implements ITextEditorModel
/**
* Updates the text editor model with the provided value. If the value is the same as the model has, this is a no-op.
*/
protected
updateTextEditorModel
(
newValue
?:
ITextBufferFactory
,
preferredMode
?:
string
):
void
{
updateTextEditorModel
(
newValue
?:
ITextBufferFactory
,
preferredMode
?:
string
):
void
{
if
(
!
this
.
isResolved
())
{
return
;
}
...
...
src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts
浏览文件 @
e5dadf5e
...
...
@@ -22,10 +22,10 @@ import { SaveReason } from 'vs/workbench/common/editor';
import
{
CancellationToken
}
from
'
vs/base/common/cancellation
'
;
import
{
INotificationService
}
from
'
vs/platform/notification/common/notification
'
;
import
{
IWorkingCopyFileService
,
WorkingCopyFileEvent
}
from
'
vs/workbench/services/workingCopy/common/workingCopyFileService
'
;
import
{
ITextSnapshot
}
from
'
vs/editor/common/model
'
;
import
{
ITextSnapshot
,
ITextBufferFactory
}
from
'
vs/editor/common/model
'
;
import
{
joinPath
,
isEqualOrParent
,
isEqual
}
from
'
vs/base/common/resources
'
;
import
{
createTextBufferFactoryFromSnapshot
}
from
'
vs/editor/common/model/textModel
'
;
import
{
IModelService
}
from
'
vs/editor/common/services/modelService
'
;
import
{
PLAINTEXT_MODE_ID
}
from
'
vs/editor/common/modes/modesRegistry
'
;
export
class
TextFileEditorModelManager
extends
Disposable
implements
ITextFileEditorModelManager
{
...
...
@@ -72,8 +72,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
@
IInstantiationService
private
readonly
instantiationService
:
IInstantiationService
,
@
IFileService
private
readonly
fileService
:
IFileService
,
@
INotificationService
private
readonly
notificationService
:
INotificationService
,
@
IWorkingCopyFileService
private
readonly
workingCopyFileService
:
IWorkingCopyFileService
,
@
IModelService
private
readonly
modelService
:
IModelService
@
IWorkingCopyFileService
private
readonly
workingCopyFileService
:
IWorkingCopyFileService
)
{
super
();
...
...
@@ -123,7 +122,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
}
}
private
readonly
mapCorrelationIdToModelsToRestore
=
new
Map
<
number
,
{
source
:
URI
,
target
:
URI
,
snapshot
?:
ITextSnapshot
;
encoding
?:
string
;
mode
?:
string
}[]
>
();
private
readonly
mapCorrelationIdToModelsToRestore
=
new
Map
<
number
,
{
source
:
URI
,
target
:
URI
,
snapshot
?:
ITextSnapshot
;
mode
?:
string
;
encoding
?:
string
;
}[]
>
();
private
onWillRunWorkingCopyFileOperation
(
e
:
WorkingCopyFileEvent
):
void
{
...
...
@@ -148,7 +147,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
// remember each source model to load again after move is done
// with optional content to restore if it was dirty
const
modelsToRestore
:
{
source
:
URI
,
target
:
URI
,
snapshot
?:
ITextSnapshot
;
encoding
?:
string
;
mode
?:
string
}[]
=
[];
const
modelsToRestore
:
{
source
:
URI
,
target
:
URI
,
snapshot
?:
ITextSnapshot
;
mode
?:
string
;
encoding
?:
string
;
}[]
=
[];
for
(
const
sourceModel
of
sourceModels
)
{
const
sourceModelResource
=
sourceModel
.
resource
;
...
...
@@ -210,12 +209,22 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
// we know the file has changed on disk after the move and the
// model might have still existed with the previous state. this
// ensures we are not tracking a stale state.
const
restoredModel
=
await
this
.
resolve
(
modelToRestore
.
target
,
{
reload
:
{
async
:
false
},
encoding
:
modelToRestore
.
encoding
,
mode
:
modelToRestore
.
mode
});
const
restoredModel
=
await
this
.
resolve
(
modelToRestore
.
target
,
{
reload
:
{
async
:
false
},
encoding
:
modelToRestore
.
encoding
});
// restore previous dirty content if any and ensure to mark
// the model as dirty
if
(
modelToRestore
.
snapshot
&&
restoredModel
.
isResolved
())
{
this
.
modelService
.
updateModel
(
restoredModel
.
textEditorModel
,
createTextBufferFactoryFromSnapshot
(
modelToRestore
.
snapshot
));
// restore previous dirty content if any and ensure to mark the model as dirty
let
textBufferFactory
:
ITextBufferFactory
|
undefined
=
undefined
;
if
(
modelToRestore
.
snapshot
)
{
textBufferFactory
=
createTextBufferFactoryFromSnapshot
(
modelToRestore
.
snapshot
);
}
// restore previous mode only if the mode is now unspecified
let
preferredMode
:
string
|
undefined
=
undefined
;
if
(
restoredModel
.
getMode
()
===
PLAINTEXT_MODE_ID
&&
modelToRestore
.
mode
!==
PLAINTEXT_MODE_ID
)
{
preferredMode
=
modelToRestore
.
mode
;
}
if
(
textBufferFactory
||
preferredMode
)
{
restoredModel
.
updateTextEditorModel
(
textBufferFactory
,
preferredMode
);
}
}));
}
...
...
src/vs/workbench/services/textfile/common/textfiles.ts
浏览文件 @
e5dadf5e
...
...
@@ -390,6 +390,8 @@ export interface ITextFileEditorModel extends ITextEditorModel, IEncodingSupport
updatePreferredEncoding
(
encoding
:
string
|
undefined
):
void
;
updateTextEditorModel
(
newValue
?:
ITextBufferFactory
,
preferredMode
?:
string
):
void
;
save
(
options
?:
ITextFileSaveOptions
):
Promise
<
boolean
>
;
load
(
options
?:
ILoadOptions
):
Promise
<
ITextFileEditorModel
>
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录