Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
297ac839
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,发现更多精彩内容 >>
未验证
提交
297ac839
编写于
4月 19, 2021
作者:
R
rebornix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
replaceNotebookCells with range.
上级
ef0942ba
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
45 addition
and
7 deletion
+45
-7
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+1
-4
src/vs/workbench/api/common/extHostTypes.ts
src/vs/workbench/api/common/extHostTypes.ts
+44
-3
未找到文件。
src/vs/vscode.proposed.d.ts
浏览文件 @
297ac839
...
...
@@ -1421,11 +1421,8 @@ declare module 'vscode' {
export
interface
WorkspaceEdit
{
replaceNotebookMetadata
(
uri
:
Uri
,
value
:
NotebookDocumentMetadata
):
void
;
// todo@API use NotebookCellRange
replaceNotebookCells
(
uri
:
Uri
,
start
:
number
,
end
:
number
,
cells
:
NotebookCellData
[],
metadata
?:
WorkspaceEditEntryMetadata
):
void
;
replaceNotebookCells
(
uri
:
Uri
,
range
:
NotebookRange
,
cells
:
NotebookCellData
[],
metadata
?:
WorkspaceEditEntryMetadata
):
void
;
replaceNotebookCellMetadata
(
uri
:
Uri
,
index
:
number
,
cellMetadata
:
NotebookCellMetadata
,
metadata
?:
WorkspaceEditEntryMetadata
):
void
;
replaceNotebookCellOutput
(
uri
:
Uri
,
index
:
number
,
outputs
:
NotebookCellOutput
[],
metadata
?:
WorkspaceEditEntryMetadata
):
void
;
appendNotebookCellOutput
(
uri
:
Uri
,
index
:
number
,
outputs
:
NotebookCellOutput
[],
metadata
?:
WorkspaceEditEntryMetadata
):
void
;
...
...
src/vs/workbench/api/common/extHostTypes.ts
浏览文件 @
297ac839
...
...
@@ -677,9 +677,32 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit {
this
.
_edits
.
push
({
_type
:
FileEditType
.
Cell
,
metadata
,
uri
,
edit
:
{
editType
:
CellEditType
.
DocumentMetadata
,
metadata
:
value
},
notebookMetadata
:
value
});
}
replaceNotebookCells
(
uri
:
URI
,
start
:
number
,
end
:
number
,
cells
:
vscode
.
NotebookCellData
[],
metadata
?:
vscode
.
WorkspaceEditEntryMetadata
):
void
{
if
(
start
!==
end
||
cells
.
length
>
0
)
{
this
.
_edits
.
push
({
_type
:
FileEditType
.
CellReplace
,
uri
,
index
:
start
,
count
:
end
-
start
,
cells
,
metadata
});
replaceNotebookCells
(
uri
:
URI
,
range
:
vscode
.
NotebookRange
,
cells
:
vscode
.
NotebookCellData
[],
metadata
?:
vscode
.
WorkspaceEditEntryMetadata
):
void
;
replaceNotebookCells
(
uri
:
URI
,
start
:
number
,
end
:
number
,
cells
:
vscode
.
NotebookCellData
[],
metadata
?:
vscode
.
WorkspaceEditEntryMetadata
):
void
;
replaceNotebookCells
(
uri
:
URI
,
startOrRange
:
number
|
vscode
.
NotebookRange
,
endOrCells
:
number
|
vscode
.
NotebookCellData
[],
cellsOrMetadata
?:
vscode
.
NotebookCellData
[]
|
vscode
.
WorkspaceEditEntryMetadata
,
metadata
?:
vscode
.
WorkspaceEditEntryMetadata
):
void
{
let
start
:
number
|
undefined
;
let
end
:
number
|
undefined
;
let
cellData
:
vscode
.
NotebookCellData
[]
=
[];
let
workspaceEditMetadata
:
vscode
.
WorkspaceEditEntryMetadata
|
undefined
;
if
(
NotebookRange
.
isNotebookRange
(
startOrRange
)
&&
NotebookCellData
.
isNotebookCellDataArray
(
endOrCells
)
&&
!
NotebookCellData
.
isNotebookCellDataArray
(
cellsOrMetadata
))
{
start
=
startOrRange
.
start
;
end
=
startOrRange
.
end
;
cellData
=
endOrCells
;
workspaceEditMetadata
=
cellsOrMetadata
;
}
else
if
(
typeof
startOrRange
===
'
number
'
&&
typeof
endOrCells
===
'
number
'
&&
NotebookCellData
.
isNotebookCellDataArray
(
cellsOrMetadata
))
{
start
=
startOrRange
;
end
=
endOrCells
;
cellData
=
cellsOrMetadata
;
workspaceEditMetadata
=
metadata
;
}
if
(
start
===
undefined
||
end
===
undefined
)
{
throw
new
Error
(
'
Invalid arguments
'
);
}
if
(
start
!==
end
||
cellData
.
length
>
0
)
{
this
.
_edits
.
push
({
_type
:
FileEditType
.
CellReplace
,
uri
,
index
:
start
,
count
:
end
-
start
,
cells
:
cellData
,
metadata
:
workspaceEditMetadata
});
}
}
...
...
@@ -2897,6 +2920,16 @@ export enum ColorThemeKind {
//#region Notebook
export
class
NotebookRange
{
static
isNotebookRange
(
thing
:
any
):
thing
is
vscode
.
NotebookRange
{
if
(
thing
instanceof
NotebookRange
)
{
return
true
;
}
if
(
!
thing
)
{
return
false
;
}
return
typeof
(
<
NotebookRange
>
thing
).
start
===
'
number
'
&&
typeof
(
<
NotebookRange
>
thing
).
end
===
'
number
'
;
}
private
_start
:
number
;
private
_end
:
number
;
...
...
@@ -3063,6 +3096,14 @@ export class NotebookDocumentMetadata {
export
class
NotebookCellData
{
static
isNotebookCellDataArray
(
value
:
unknown
):
value
is
vscode
.
NotebookCellData
[]
{
return
Array
.
isArray
(
value
)
&&
(
<
unknown
[]
>
value
).
every
(
elem
=>
NotebookCellData
.
isNotebookCellData
(
elem
));
}
static
isNotebookCellData
(
value
:
unknown
):
value
is
vscode
.
NotebookCellData
{
return
value
instanceof
NotebookCellData
;
}
kind
:
NotebookCellKind
;
source
:
string
;
language
:
string
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录