Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
54a2a821
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
54a2a821
编写于
10月 05, 2020
作者:
R
rebornix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
join cells through workspaceEdits
上级
bb7b1ef6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
55 deletion
+27
-55
src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel.ts
...h/contrib/notebook/browser/viewModel/notebookViewModel.ts
+27
-55
未找到文件。
src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel.ts
浏览文件 @
54a2a821
...
...
@@ -29,8 +29,6 @@ import { NotebookTextModel } from 'vs/workbench/contrib/notebook/common/model/no
import
{
MarkdownRenderer
}
from
'
vs/workbench/contrib/notebook/browser/view/renderers/mdRenderer
'
;
import
{
dirname
}
from
'
vs/base/common/resources
'
;
import
{
IPosition
,
Position
}
from
'
vs/editor/common/core/position
'
;
import
{
JoinCellEdit
}
from
'
vs/workbench/contrib/notebook/browser/viewModel/cellEdit
'
;
import
{
PieceTreeTextBuffer
}
from
'
vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer
'
;
import
{
MultiModelEditStackElement
,
SingleModelEditStackElement
}
from
'
vs/editor/common/model/editStack
'
;
import
{
ResourceNotebookCellEdit
}
from
'
vs/workbench/contrib/bulkEdit/browser/bulkCellEdits
'
;
...
...
@@ -879,33 +877,20 @@ export class NotebookViewModel extends Disposable implements EditorFoldingStateD
const
insertContent
=
(
cell
.
textModel
?.
getEOL
()
??
''
)
+
cell
.
getText
();
const
aboveCellLineCount
=
above
.
textModel
.
getLineCount
();
const
aboveCellLastLineEndColumn
=
above
.
textModel
.
getLineLength
(
aboveCellLineCount
);
const
editOperation
=
{
range
:
new
Range
(
aboveCellLineCount
,
aboveCellLastLineEndColumn
+
1
,
aboveCellLineCount
,
aboveCellLastLineEndColumn
+
1
),
text
:
insertContent
};
const
editorSelections
=
above
.
getSelections
();
above
.
textModel
.
applyEdits
([
editOperation
]);
const
inverseRange
=
PieceTreeTextBuffer
.
_getInverseEditRange
(
editOperation
.
range
,
editOperation
.
text
);
await
this
.
deleteCell
(
index
,
true
,
false
);
this
.
_undoService
.
pushElement
(
new
JoinCellEdit
(
this
.
uri
,
index
,
direction
,
above
,
editorSelections
,
inverseRange
,
insertContent
,
cell
,
{
insertCell
:
(
index
:
number
,
cell
:
NotebookCellTextModel
,
endSelections
?:
number
[])
=>
{
this
.
createCell
(
index
,
cell
.
getValue
(),
cell
.
language
,
cell
.
cellKind
,
cell
.
metadata
,
cell
.
outputs
,
true
,
false
);
},
deleteCell
:
(
index
:
number
)
=>
{
this
.
deleteCell
(
index
,
true
,
false
);
},
createCellViewModel
:
(
cell
:
NotebookCellTextModel
)
=>
{
return
createCellViewModel
(
this
.
_instantiationService
,
this
,
cell
);
}
})
await
this
.
_bulkEditService
.
apply
(
[
new
ResourceTextEdit
(
above
.
uri
,
{
range
:
new
Range
(
aboveCellLineCount
,
aboveCellLastLineEndColumn
+
1
,
aboveCellLineCount
,
aboveCellLastLineEndColumn
+
1
),
text
:
insertContent
}),
new
ResourceNotebookCellEdit
(
this
.
_notebook
.
uri
,
{
editType
:
CellEditType
.
Replace
,
index
:
index
,
count
:
1
,
cells
:
[]
}
)
],
{
quotableLabel
:
'
Join Notebook Cells
'
}
);
this
.
selectionHandles
=
endSelections
;
...
...
@@ -930,33 +915,20 @@ export class NotebookViewModel extends Disposable implements EditorFoldingStateD
const
cellLineCount
=
cell
.
textModel
.
getLineCount
();
const
cellLastLineEndColumn
=
cell
.
textModel
.
getLineLength
(
cellLineCount
);
const
editOperation
=
{
range
:
new
Range
(
cellLineCount
,
cellLastLineEndColumn
+
1
,
cellLineCount
,
cellLastLineEndColumn
+
1
),
text
:
insertContent
};
const
editorSelections
=
cell
.
getSelections
();
cell
.
textModel
.
applyEdits
([
editOperation
]);
const
inverseRange
=
PieceTreeTextBuffer
.
_getInverseEditRange
(
editOperation
.
range
,
editOperation
.
text
);
await
this
.
deleteCell
(
index
+
1
,
true
,
false
);
this
.
_undoService
.
pushElement
(
new
JoinCellEdit
(
this
.
uri
,
index
+
1
,
direction
,
cell
,
editorSelections
,
inverseRange
,
insertContent
,
below
,
{
insertCell
:
(
index
:
number
,
cell
:
NotebookCellTextModel
,
endSelections
?:
number
[])
=>
{
this
.
createCell
(
index
,
cell
.
getValue
(),
cell
.
language
,
cell
.
cellKind
,
cell
.
metadata
,
cell
.
outputs
,
true
,
false
);
},
deleteCell
:
(
index
:
number
)
=>
{
this
.
deleteCell
(
index
,
true
,
false
);
},
createCellViewModel
:
(
cell
:
NotebookCellTextModel
)
=>
{
return
createCellViewModel
(
this
.
_instantiationService
,
this
,
cell
);
}
})
await
this
.
_bulkEditService
.
apply
(
[
new
ResourceTextEdit
(
cell
.
uri
,
{
range
:
new
Range
(
cellLineCount
,
cellLastLineEndColumn
+
1
,
cellLineCount
,
cellLastLineEndColumn
+
1
),
text
:
insertContent
}),
new
ResourceNotebookCellEdit
(
this
.
_notebook
.
uri
,
{
editType
:
CellEditType
.
Replace
,
index
:
index
+
1
,
count
:
1
,
cells
:
[]
}
)
],
{
quotableLabel
:
'
Join Notebook Cells
'
}
);
return
{
cell
,
deletedCells
:
[
below
]
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录