Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
dbfe5613
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,发现更多精彩内容 >>
提交
dbfe5613
编写于
4月 22, 2020
作者:
R
rebornix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
notebook.activeNotebookEditor
上级
bbe5ac36
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
36 addition
and
10 deletion
+36
-10
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+2
-0
src/vs/workbench/api/common/extHost.api.impl.ts
src/vs/workbench/api/common/extHost.api.impl.ts
+4
-0
src/vs/workbench/api/common/extHostNotebook.ts
src/vs/workbench/api/common/extHostNotebook.ts
+7
-0
src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel.ts
...h/contrib/notebook/browser/viewModel/notebookViewModel.ts
+20
-10
src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts
...kbench/contrib/notebook/common/model/notebookTextModel.ts
+3
-0
未找到文件。
src/vs/vscode.proposed.d.ts
浏览文件 @
dbfe5613
...
...
@@ -1750,6 +1750,8 @@ declare module 'vscode' {
export
let
activeNotebookDocument
:
NotebookDocument
|
undefined
;
export
let
activeNotebookEditor
:
NotebookEditor
|
undefined
;
// export const onDidChangeNotebookDocument: Event<NotebookDocumentChangeEvent>;
/**
...
...
src/vs/workbench/api/common/extHost.api.impl.ts
浏览文件 @
dbfe5613
...
...
@@ -913,6 +913,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
checkProposedApiEnabled
(
extension
);
return
extHostNotebook
.
activeNotebookDocument
;
},
get
activeNotebookEditor
():
vscode
.
NotebookEditor
|
undefined
{
checkProposedApiEnabled
(
extension
);
return
extHostNotebook
.
activeNotebookEditor
;
},
createConcatTextDocument
(
notebook
,
selector
)
{
checkProposedApiEnabled
(
extension
);
return
new
ExtHostNotebookConcatDocument
(
extHostNotebook
,
extHostDocuments
,
notebook
,
selector
);
...
...
src/vs/workbench/api/common/extHostNotebook.ts
浏览文件 @
dbfe5613
...
...
@@ -613,6 +613,12 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
return
this
.
_activeNotebookDocument
;
}
private
_activeNotebookEditor
:
ExtHostNotebookEditor
|
undefined
;
get
activeNotebookEditor
()
{
return
this
.
_activeNotebookEditor
;
}
constructor
(
mainContext
:
IMainContext
,
commands
:
ExtHostCommands
,
private
_documentsAndEditors
:
ExtHostDocumentsAndEditors
)
{
this
.
_proxy
=
mainContext
.
getProxy
(
MainContext
.
MainThreadNotebook
);
...
...
@@ -746,6 +752,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
async
$updateActiveEditor
(
viewType
:
string
,
uri
:
UriComponents
):
Promise
<
void
>
{
this
.
_activeNotebookDocument
=
this
.
_documents
.
get
(
URI
.
revive
(
uri
).
toString
());
this
.
_activeNotebookEditor
=
this
.
_editors
.
get
(
URI
.
revive
(
uri
).
toString
())?.
editor
;
}
async
$destoryNotebookDocument
(
viewType
:
string
,
uri
:
UriComponents
):
Promise
<
boolean
>
{
...
...
src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel.ts
浏览文件 @
dbfe5613
...
...
@@ -220,16 +220,26 @@ export class NotebookViewModel extends Disposable implements EditorFoldingStateD
this
.
id
=
'
$notebookViewModel
'
+
MODEL_ID
;
this
.
_instanceId
=
strings
.
singleLetterHash
(
MODEL_ID
);
// this._register(this._model.onDidChangeCells(e => {
// this._onDidChangeViewCells.fire({
// synchronous: true,
// splices: e.map(splice => {
// return [splice[0], splice[1], splice[2].map(cell => {
// return createCellViewModel(this.instantiationService, this, cell as NotebookCellTextModel);
// })];
// })
// });
// }));
this
.
_register
(
this
.
_model
.
onDidChangeCells
(
e
=>
{
const
diffs
=
e
.
map
(
splice
=>
{
return
[
splice
[
0
],
splice
[
1
],
splice
[
2
].
map
(
cell
=>
{
return
createCellViewModel
(
this
.
instantiationService
,
this
,
cell
as
NotebookCellTextModel
);
})]
as
[
number
,
number
,
CellViewModel
[]];
});
diffs
.
reverse
().
forEach
(
diff
=>
{
this
.
_viewCells
.
splice
(
diff
[
0
],
diff
[
1
],
...
diff
[
2
]);
diff
[
2
].
forEach
(
cell
=>
{
this
.
_handleToViewCellMapping
.
set
(
cell
.
handle
,
cell
);
this
.
_localStore
.
add
(
cell
);
});
});
this
.
_onDidChangeViewCells
.
fire
({
synchronous
:
true
,
splices
:
diffs
});
}));
this
.
_register
(
this
.
_model
.
notebook
.
onDidChangeMetadata
(
e
=>
{
this
.
eventDispatcher
.
emit
([
new
NotebookMetadataChangedEvent
(
e
)]);
...
...
src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts
浏览文件 @
dbfe5613
...
...
@@ -147,6 +147,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
]
]
});
this
.
_onDidChangeCells
.
fire
([[
0
,
0
,
[
cell
]]]);
return
;
}
...
...
@@ -183,6 +184,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
]
]
});
this
.
_onDidChangeCells
.
fire
([[
index
,
0
,
cells
]]);
return
;
}
...
...
@@ -198,6 +200,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
this
.
_increaseVersionId
();
this
.
_onDidModelChange
.
fire
({
versionId
:
this
.
_versionId
,
changes
:
[[
index
,
1
,
[]]]
});
this
.
_onDidChangeCells
.
fire
([[
index
,
1
,
[]]]);
}
// TODO@rebornix should this trigger content change event?
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录