Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
bfac07cd
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,发现更多精彩内容 >>
提交
bfac07cd
编写于
6月 27, 2021
作者:
R
rebornix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
de-ref interactive input on interactive nb close.
上级
9cb3f15e
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
30 addition
and
4 deletion
+30
-4
src/vs/workbench/api/browser/mainThreadInteractive.ts
src/vs/workbench/api/browser/mainThreadInteractive.ts
+5
-1
src/vs/workbench/api/common/extHost.protocol.ts
src/vs/workbench/api/common/extHost.protocol.ts
+2
-1
src/vs/workbench/api/common/extHostInteractive.ts
src/vs/workbench/api/common/extHostInteractive.ts
+7
-1
src/vs/workbench/contrib/interactive/browser/interactiveDocumentService.ts
...contrib/interactive/browser/interactiveDocumentService.ts
+8
-0
src/vs/workbench/contrib/interactive/browser/interactiveEditor.ts
...orkbench/contrib/interactive/browser/interactiveEditor.ts
+8
-1
未找到文件。
src/vs/workbench/api/browser/mainThreadInteractive.ts
浏览文件 @
bfac07cd
...
...
@@ -21,7 +21,11 @@ export class MainThreadInteractive implements MainThreadInteractiveShape {
this
.
_proxy
=
extHostContext
.
getProxy
(
ExtHostContext
.
ExtHostInteractive
);
this
.
_disposables
.
add
(
interactiveDocumentService
.
onWillAddInteractiveDocument
((
e
)
=>
{
this
.
_proxy
.
$acceptInputDocument
(
e
.
inputUri
,
'
\n
'
,
'
plaintext
'
,
e
.
notebookUri
);
this
.
_proxy
.
$willAddInteractiveDocument
(
e
.
inputUri
,
'
\n
'
,
'
plaintext
'
,
e
.
notebookUri
);
}));
this
.
_disposables
.
add
(
interactiveDocumentService
.
onWillAddInteractiveDocument
((
e
)
=>
{
this
.
_proxy
.
$willRemoveInteractiveDocument
(
e
.
inputUri
,
e
.
notebookUri
);
}));
}
...
...
src/vs/workbench/api/common/extHost.protocol.ts
浏览文件 @
bfac07cd
...
...
@@ -2038,7 +2038,8 @@ export interface ExtHostNotebookKernelsShape {
}
export
interface
ExtHostInteractiveShape
{
$acceptInputDocument
(
uri
:
UriComponents
,
eol
:
string
,
modeId
:
string
,
notebookUri
:
UriComponents
):
void
;
$willAddInteractiveDocument
(
uri
:
UriComponents
,
eol
:
string
,
modeId
:
string
,
notebookUri
:
UriComponents
):
void
;
$willRemoveInteractiveDocument
(
uri
:
UriComponents
,
notebookUri
:
UriComponents
):
void
;
}
export
interface
ExtHostStorageShape
{
...
...
src/vs/workbench/api/common/extHostInteractive.ts
浏览文件 @
bfac07cd
...
...
@@ -16,7 +16,7 @@ export class ExtHostInteractive implements ExtHostInteractiveShape {
)
{
}
$
acceptInput
Document
(
uri
:
UriComponents
,
eol
:
string
,
modeId
:
string
,
notebookUri
:
UriComponents
)
{
$
willAddInteractive
Document
(
uri
:
UriComponents
,
eol
:
string
,
modeId
:
string
,
notebookUri
:
UriComponents
)
{
this
.
_textDocumentsAndEditors
.
acceptDocumentsAndEditorsDelta
({
addedDocuments
:
[{
EOL
:
eol
,
...
...
@@ -29,4 +29,10 @@ export class ExtHostInteractive implements ExtHostInteractiveShape {
}]
});
}
$willRemoveInteractiveDocument
(
uri
:
UriComponents
,
notebookUri
:
UriComponents
)
{
this
.
_textDocumentsAndEditors
.
acceptDocumentsAndEditorsDelta
({
removedDocuments
:
[
uri
]
});
}
}
src/vs/workbench/contrib/interactive/browser/interactiveDocumentService.ts
浏览文件 @
bfac07cd
...
...
@@ -13,13 +13,17 @@ export const IInteractiveDocumentService = createDecorator<IInteractiveDocumentS
export
interface
IInteractiveDocumentService
{
readonly
_serviceBrand
:
undefined
;
onWillAddInteractiveDocument
:
Event
<
{
notebookUri
:
URI
;
inputUri
:
URI
;
languageId
:
string
;
}
>
;
onWillRemoveInteractiveDocument
:
Event
<
{
notebookUri
:
URI
;
inputUri
:
URI
;
}
>
;
willCreateInteractiveDocument
(
notebookUri
:
URI
,
inputUri
:
URI
,
languageId
:
string
):
void
;
willRemoveInteractiveDocument
(
notebookUri
:
URI
,
inputUri
:
URI
):
void
;
}
export
class
InteractiveDocumentService
extends
Disposable
{
declare
readonly
_serviceBrand
:
undefined
;
private
readonly
_onWillAddInteractiveDocument
=
this
.
_register
(
new
Emitter
<
{
notebookUri
:
URI
;
inputUri
:
URI
;
languageId
:
string
;
}
>
());
onWillAddInteractiveDocument
=
this
.
_onWillAddInteractiveDocument
.
event
;
private
readonly
_onWillRemoveInteractiveDocument
=
this
.
_register
(
new
Emitter
<
{
notebookUri
:
URI
;
inputUri
:
URI
;
}
>
());
onWillRemoveInteractiveDocument
=
this
.
_onWillRemoveInteractiveDocument
.
event
;
constructor
()
{
super
();
...
...
@@ -33,4 +37,8 @@ export class InteractiveDocumentService extends Disposable {
});
}
willRemoveInteractiveDocument
(
notebookUri
:
URI
,
inputUri
:
URI
)
{
}
}
src/vs/workbench/contrib/interactive/browser/interactiveEditor.ts
浏览文件 @
bfac07cd
...
...
@@ -173,9 +173,16 @@ export class InteractiveEditor extends EditorPane {
if
(
!
editorModel
)
{
this
.
#
interactiveDocumentService
.
willCreateInteractiveDocument
(
input
.
resource
!
,
input
.
inputResource
,
this
.
#
notebookWidget
.
value
?.
activeKernel
?.
supportedLanguages
[
0
]
??
'
plaintext
'
);
editorModel
=
this
.
#
modelService
.
createModel
(
''
,
null
,
input
.
inputResource
,
false
);
// willCreateInteractiveDocument refs the input model, then we should de-ref it on close.
this
.
#
widgetDisposableStore
.
add
({
dispose
:
()
=>
{
this
.
#
interactiveDocumentService
.
willRemoveInteractiveDocument
(
input
.
resource
!
,
input
.
inputResource
);
editorModel
?.
dispose
();
}
});
}
this
.
#
widgetDisposableStore
.
add
(
editorModel
);
this
.
#
codeEditorWidget
.
setModel
(
editorModel
);
this
.
#
widgetDisposableStore
.
add
(
this
.
#
codeEditorWidget
.
onDidContentSizeChange
(
e
=>
{
if
(
!
e
.
contentHeightChanged
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录