Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
354c914f
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,发现更多精彩内容 >>
未验证
提交
354c914f
编写于
4月 08, 2021
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add NotebookKernelOptions so that createNotebookKernel is simpler
上级
015d5565
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
30 addition
and
16 deletion
+30
-16
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+18
-3
src/vs/workbench/api/common/extHost.api.impl.ts
src/vs/workbench/api/common/extHost.api.impl.ts
+2
-2
src/vs/workbench/api/common/extHostNotebookKernels.ts
src/vs/workbench/api/common/extHostNotebookKernels.ts
+8
-9
src/vs/workbench/test/browser/api/extHostNotebookKernel2.test.ts
...workbench/test/browser/api/extHostNotebookKernel2.test.ts
+2
-2
未找到文件。
src/vs/vscode.proposed.d.ts
浏览文件 @
354c914f
...
...
@@ -1470,9 +1470,13 @@ declare module 'vscode' {
// select notebook of a type and/or by file-pattern
readonly
selector
:
NotebookSelector
;
// selection is tricky/bogous because a kernel can be selected for
// different notebook documents. A handler-approach might be the better
// fit here, e.g:
// selectionHandler?: (notebook: NotebookDocument, selected: boolean) => void;
// is this kernel selected
readonly
selected
:
boolean
;
// fired when kernel is selected/unselected
readonly
onDidChangeSelection
:
Event
<
boolean
>
;
...
...
@@ -1489,15 +1493,26 @@ declare module 'vscode' {
// optional kernel interrupt command
interruptHandler
?:
(
notebook
:
NotebookDocument
)
=>
void
//
//
kernels can establish IPC channels to (visible) notebook editors
// kernels can establish IPC channels to (visible) notebook editors
// createNotebookCommunication(editor: vscode.NotebookEditor): vscode.NotebookCommunication;
// remove kernel
dispose
():
void
;
}
export
interface
NotebookKernelOptions
{
id
:
string
;
label
:
string
;
description
?:
string
;
selector
:
NotebookSelector
;
supportedLanguages
:
string
[];
hasExecutionOrder
?:
boolean
;
executeHandler
:
(
executions
:
NotebookCellExecutionTask
[])
=>
void
;
interruptHandler
?:
(
notebook
:
NotebookDocument
)
=>
void
}
export
namespace
notebook
{
export
function
createNotebookKernel
(
id
:
string
,
label
:
string
,
selector
:
NotebookSelector
,
executeHandler
:
(
executions
:
NotebookCellExecutionTask
[])
=>
void
):
NotebookKernel2
;
export
function
createNotebookKernel
(
options
:
NotebookKernelOptions
):
NotebookKernel2
;
}
//#endregion
...
...
src/vs/workbench/api/common/extHost.api.impl.ts
浏览文件 @
354c914f
...
...
@@ -1108,9 +1108,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
checkProposedApiEnabled
(
extension
);
return
extHostNotebook
.
createNotebookCellExecution
(
uri
,
index
,
kernelId
);
},
createNotebookKernel
(
id
,
label
,
selector
,
executeCommand
)
{
createNotebookKernel
(
options
)
{
checkProposedApiEnabled
(
extension
);
return
extHostNotebookKernels
.
createKernel
(
extension
,
id
,
label
,
selector
,
executeCommand
);
return
extHostNotebookKernels
.
createKernel
(
extension
,
options
);
}
};
...
...
src/vs/workbench/api/common/extHostNotebookKernels.ts
浏览文件 @
354c914f
...
...
@@ -7,7 +7,6 @@ import { Emitter } from 'vs/base/common/event';
import
{
DisposableStore
}
from
'
vs/base/common/lifecycle
'
;
import
{
ExtHostNotebookKernelsShape
,
IMainContext
,
INotebookKernelDto2
,
MainContext
,
MainThreadNotebookKernelsShape
}
from
'
vs/workbench/api/common/extHost.protocol
'
;
import
*
as
vscode
from
'
vscode
'
;
import
{
NotebookSelector
}
from
'
vs/workbench/contrib/notebook/common/notebookSelector
'
;
import
{
ExtHostNotebookController
}
from
'
vs/workbench/api/common/extHostNotebook
'
;
import
{
IExtensionDescription
}
from
'
vs/platform/extensions/common/extensions
'
;
import
{
URI
,
UriComponents
}
from
'
vs/base/common/uri
'
;
...
...
@@ -31,7 +30,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
this
.
_proxy
=
mainContext
.
getProxy
(
MainContext
.
MainThreadNotebookKernels
);
}
createKernel
(
extension
:
IExtensionDescription
,
id
:
string
,
label
:
string
,
selector
:
NotebookSelector
,
executeHandler
:
ExecuteHandler
):
vscode
.
NotebookKernel2
{
createKernel
(
extension
:
IExtensionDescription
,
options
:
vscode
.
NotebookKernelOptions
):
vscode
.
NotebookKernel2
{
const
handle
=
this
.
_handlePool
++
;
const
that
=
this
;
...
...
@@ -40,16 +39,16 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
const
commandDisposables
=
new
DisposableStore
();
const
emitter
=
new
Emitter
<
boolean
>
();
this
.
_kernelData
.
set
(
handle
,
{
id
,
executeHandler
,
selected
:
false
,
onDidChangeSelection
:
emitter
});
this
.
_kernelData
.
set
(
handle
,
{
id
:
options
.
id
,
executeHandler
:
options
.
executeHandler
,
selected
:
false
,
onDidChangeSelection
:
emitter
});
const
data
:
INotebookKernelDto2
=
{
id
,
selector
,
id
:
options
.
id
,
selector
:
options
.
selector
,
extensionId
:
extension
.
identifier
,
extensionLocation
:
extension
.
extensionLocation
,
label
,
supportedLanguages
:
[]
,
supportsInterrupt
:
false
label
:
options
.
label
,
supportedLanguages
:
options
.
supportedLanguages
,
supportsInterrupt
:
Boolean
(
options
.
interruptHandler
)
};
this
.
_proxy
.
$addKernel
(
handle
,
data
);
...
...
@@ -103,7 +102,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
_update
();
},
get
executeHandler
()
{
return
executeHandler
;
return
that
.
_kernelData
.
get
(
handle
)
!
.
executeHandler
;
},
get
interruptHandler
()
{
return
that
.
_kernelData
.
get
(
handle
)
!
.
interruptHandler
;
...
...
src/vs/workbench/test/browser/api/extHostNotebookKernel2.test.ts
浏览文件 @
354c914f
...
...
@@ -48,7 +48,7 @@ suite('NotebookKernel', function () {
test
(
'
create/dispose kernel
'
,
async
function
()
{
const
kernel
=
extHostNotebookKernels
.
createKernel
(
nullExtensionDescription
,
'
foo
'
,
'
Foo
'
,
'
*
'
,
()
=>
{
});
const
kernel
=
extHostNotebookKernels
.
createKernel
(
nullExtensionDescription
,
{
id
:
'
foo
'
,
label
:
'
Foo
'
,
selector
:
'
*
'
,
executeHandler
:
()
=>
{
},
supportedLanguages
:
[
'
plaintext
'
]
});
assert
.
ok
(
kernel
);
assert
.
strictEqual
(
kernel
.
id
,
'
foo
'
);
...
...
@@ -71,7 +71,7 @@ suite('NotebookKernel', function () {
test
(
'
update kernel
'
,
async
function
()
{
const
kernel
=
extHostNotebookKernels
.
createKernel
(
nullExtensionDescription
,
'
foo
'
,
'
Foo
'
,
'
*
'
,
()
=>
{
});
const
kernel
=
extHostNotebookKernels
.
createKernel
(
nullExtensionDescription
,
{
id
:
'
foo
'
,
label
:
'
Foo
'
,
selector
:
'
*
'
,
executeHandler
:
()
=>
{
},
supportedLanguages
:
[
'
plaintext
'
]
});
await
rpcProtocol
.
sync
();
assert
.
ok
(
kernel
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录