Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
52dfde3e
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,发现更多精彩内容 >>
提交
52dfde3e
编写于
7月 23, 2020
作者:
R
rebornix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
save kernel selection to memento if there is no isPreferred.
上级
3bd820b1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
2 deletion
+25
-2
src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts
...orkbench/contrib/notebook/browser/notebookEditorWidget.ts
+25
-2
未找到文件。
src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts
浏览文件 @
52dfde3e
...
...
@@ -69,6 +69,8 @@ export class NotebookEditorOptions extends EditorOptions {
}
}
const
NotebookEditorActiveKernelCache
=
'
workbench.editor.notebook.activeKernel
'
;
export
class
NotebookEditorWidget
extends
Disposable
implements
INotebookEditor
{
static
readonly
ID
:
string
=
'
workbench.editor.notebook
'
;
private
static
readonly
EDITOR_MEMENTOS
=
new
Map
<
string
,
EditorMemento
<
unknown
>>
();
...
...
@@ -98,6 +100,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
protected
readonly
_contributions
:
{
[
key
:
string
]:
INotebookEditorContribution
;
};
private
_scrollBeyondLastLine
:
boolean
;
private
readonly
_memento
:
Memento
;
private
readonly
_activeKernelMemento
:
Memento
;
private
readonly
_onDidFocusEmitter
=
this
.
_register
(
new
Emitter
<
void
>
());
public
readonly
onDidFocus
=
this
.
_onDidFocusEmitter
.
event
;
private
_cellContextKeyManager
:
CellContextKeyManager
|
null
=
null
;
...
...
@@ -150,6 +153,10 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
}
this
.
_activeKernel
=
kernel
;
const
memento
=
this
.
_activeKernelMemento
.
getMemento
(
StorageScope
.
GLOBAL
);
memento
[
this
.
viewModel
!
.
viewType
]
=
this
.
_activeKernel
?.
id
;
this
.
_activeKernelMemento
.
saveMemento
();
this
.
_onDidChangeKernel
.
fire
();
}
...
...
@@ -196,6 +203,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
)
{
super
();
this
.
_memento
=
new
Memento
(
NotebookEditorWidget
.
ID
,
storageService
);
this
.
_activeKernelMemento
=
new
Memento
(
NotebookEditorActiveKernelCache
,
storageService
);
this
.
_outputRenderer
=
new
OutputRenderer
(
this
,
this
.
instantiationService
);
this
.
_contributions
=
{};
...
...
@@ -612,12 +620,17 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
private
async
_setKernelsFromProviders
(
provider
:
NotebookProviderInfo
,
kernels
:
INotebookKernelInfo2
[],
tokenSource
:
CancellationTokenSource
)
{
const
rawAssociations
=
this
.
configurationService
.
getValue
<
NotebookKernelProviderAssociations
>
(
notebookKernelProviderAssociationsSettingId
)
||
[];
const
userSetKernelProvider
=
rawAssociations
.
filter
(
e
=>
e
.
viewType
===
this
.
viewModel
?.
viewType
)[
0
]?.
kernelProvider
;
const
memento
=
this
.
_activeKernelMemento
.
getMemento
(
StorageScope
.
GLOBAL
);
if
(
userSetKernelProvider
)
{
const
filteredKernels
=
kernels
.
filter
(
kernel
=>
kernel
.
extension
.
value
===
userSetKernelProvider
);
if
(
filteredKernels
.
length
)
{
this
.
activeKernel
=
filteredKernels
.
find
(
kernel
=>
kernel
.
isPreferred
)
||
filteredKernels
[
0
];
const
cachedKernelId
=
memento
[
provider
.
id
];
this
.
activeKernel
=
filteredKernels
.
find
(
kernel
=>
kernel
.
isPreferred
)
||
filteredKernels
.
find
(
kernel
=>
kernel
.
id
===
cachedKernelId
)
||
filteredKernels
[
0
];
}
else
{
this
.
activeKernel
=
undefined
;
}
...
...
@@ -627,6 +640,9 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
await
this
.
activeKernel
.
resolve
(
this
.
viewModel
!
.
uri
,
this
.
getId
(),
tokenSource
.
token
);
}
memento
[
provider
.
id
]
=
this
.
_activeKernel
?.
id
;
this
.
_activeKernelMemento
.
saveMemento
();
tokenSource
.
dispose
();
return
;
}
...
...
@@ -634,10 +650,17 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
// choose a preferred kernel
const
kernelsFromSameExtension
=
kernels
.
filter
(
kernel
=>
kernel
.
extension
.
value
===
provider
.
providerExtensionId
);
if
(
kernelsFromSameExtension
.
length
)
{
const
preferedKernel
=
kernelsFromSameExtension
.
find
(
kernel
=>
kernel
.
isPreferred
)
||
kernelsFromSameExtension
[
0
];
const
cachedKernelId
=
memento
[
provider
.
id
];
const
preferedKernel
=
kernelsFromSameExtension
.
find
(
kernel
=>
kernel
.
isPreferred
)
||
kernelsFromSameExtension
.
find
(
kernel
=>
kernel
.
id
===
cachedKernelId
)
||
kernelsFromSameExtension
[
0
];
this
.
activeKernel
=
preferedKernel
;
await
this
.
_loadKernelPreloads
(
this
.
activeKernel
.
extensionLocation
,
this
.
activeKernel
);
await
preferedKernel
.
resolve
(
this
.
viewModel
!
.
uri
,
this
.
getId
(),
tokenSource
.
token
);
memento
[
provider
.
id
]
=
this
.
_activeKernel
?.
id
;
this
.
_activeKernelMemento
.
saveMemento
();
tokenSource
.
dispose
();
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录