Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
55d26729
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,发现更多精彩内容 >>
提交
55d26729
编写于
2月 11, 2021
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
have a clear separation between KernelProvider and Kernel
上级
6f1cfdba
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
58 addition
and
61 deletion
+58
-61
src/vs/workbench/api/browser/mainThreadNotebook.ts
src/vs/workbench/api/browser/mainThreadNotebook.ts
+52
-27
src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts
...workbench/contrib/notebook/browser/contrib/coreActions.ts
+1
-1
src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts
...orkbench/contrib/notebook/browser/notebookEditorWidget.ts
+1
-1
src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts
...workbench/contrib/notebook/browser/notebookServiceImpl.ts
+2
-27
src/vs/workbench/contrib/notebook/common/notebookCommon.ts
src/vs/workbench/contrib/notebook/common/notebookCommon.ts
+1
-4
src/vs/workbench/contrib/notebook/common/notebookService.ts
src/vs/workbench/contrib/notebook/common/notebookService.ts
+1
-1
未找到文件。
src/vs/workbench/api/browser/mainThreadNotebook.ts
浏览文件 @
55d26729
...
...
@@ -23,7 +23,7 @@ import { INotebookEditor } from 'vs/workbench/contrib/notebook/browser/notebookB
import
{
NotebookCellTextModel
}
from
'
vs/workbench/contrib/notebook/common/model/notebookCellTextModel
'
;
import
{
NotebookTextModel
}
from
'
vs/workbench/contrib/notebook/common/model/notebookTextModel
'
;
import
{
INotebookCellStatusBarService
}
from
'
vs/workbench/contrib/notebook/common/notebookCellStatusBarService
'
;
import
{
ACCESSIBLE_NOTEBOOK_DISPLAY_ORDER
,
CellEditType
,
DisplayOrderKey
,
ICellEditOperation
,
ICellRange
,
IEditor
,
IMainCellDto
,
INotebookDecorationRenderOptions
,
INotebookDocumentFilter
,
INotebookEditorModel
,
INotebookExclusiveDocumentFilter
,
NotebookCellsChangeType
,
NOTEBOOK_DISPLAY_ORDER
,
TransientMetadata
}
from
'
vs/workbench/contrib/notebook/common/notebookCommon
'
;
import
{
ACCESSIBLE_NOTEBOOK_DISPLAY_ORDER
,
CellEditType
,
DisplayOrderKey
,
ICellEditOperation
,
ICellRange
,
IEditor
,
IMainCellDto
,
INotebookDecorationRenderOptions
,
INotebookDocumentFilter
,
INotebookEditorModel
,
INotebookExclusiveDocumentFilter
,
INotebookKernelInfo2
,
NotebookCellsChangeType
,
NOTEBOOK_DISPLAY_ORDER
,
TransientMetadata
}
from
'
vs/workbench/contrib/notebook/common/notebookCommon
'
;
import
{
INotebookEditorModelResolverService
}
from
'
vs/workbench/contrib/notebook/common/notebookEditorModelResolverService
'
;
import
{
IMainNotebookController
,
INotebookService
}
from
'
vs/workbench/contrib/notebook/common/notebookService
'
;
import
{
IEditorGroup
,
IEditorGroupsService
,
preferredSideBySideGroupDirection
}
from
'
vs/workbench/services/editor/common/editorGroupsService
'
;
...
...
@@ -140,6 +140,21 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
this
.
registerListeners
();
}
dispose
():
void
{
super
.
dispose
();
// remove all notebook providers
for
(
let
item
of
this
.
_notebookProviders
.
values
())
{
item
.
disposable
.
dispose
();
}
// remove all kernel providers
for
(
let
item
of
this
.
_notebookKernelProviders
.
values
())
{
item
.
emitter
.
dispose
();
item
.
provider
.
dispose
();
}
}
async
$tryApplyEdits
(
_viewType
:
string
,
resource
:
UriComponents
,
modelVersionId
:
number
,
cellEdits
:
ICellEditOperation
[]):
Promise
<
boolean
>
{
const
textModel
=
this
.
_notebookService
.
getNotebookTextModel
(
URI
.
from
(
resource
));
if
(
!
textModel
)
{
...
...
@@ -512,38 +527,48 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
async
$registerNotebookKernelProvider
(
extension
:
NotebookExtensionDescription
,
handle
:
number
,
documentFilter
:
INotebookDocumentFilter
):
Promise
<
void
>
{
const
emitter
=
new
Emitter
<
URI
|
undefined
>
();
const
that
=
this
;
const
provider
=
this
.
_notebookService
.
registerNotebookKernelProvider
({
providerExtensionId
:
extension
.
id
.
value
,
providerDescription
:
extension
.
description
,
onDidChangeKernels
:
emitter
.
event
,
selector
:
documentFilter
,
provideKernels
:
async
(
uri
:
URI
,
token
:
CancellationToken
)
=>
{
const
kernels
=
await
that
.
_proxy
.
$provideNotebookKernels
(
handle
,
uri
,
token
);
return
kernels
.
map
(
kernel
=>
{
return
{
...
kernel
,
providerHandle
:
handle
};
});
},
resolveKernel
:
(
editorId
:
string
,
uri
:
URI
,
kernelId
:
string
,
token
:
CancellationToken
)
=>
{
return
that
.
_proxy
.
$resolveNotebookKernel
(
handle
,
editorId
,
uri
,
kernelId
,
token
);
},
executeNotebook
:
(
uri
:
URI
,
kernelId
:
string
,
cellHandle
:
number
|
undefined
)
=>
{
this
.
logService
.
debug
(
'
MainthreadNotebooks.registerNotebookKernelProvider#executeNotebook
'
,
uri
.
path
,
kernelId
,
cellHandle
);
return
that
.
_proxy
.
$executeNotebookKernelFromProvider
(
handle
,
uri
,
kernelId
,
cellHandle
);
},
cancelNotebook
:
(
uri
:
URI
,
kernelId
:
string
,
cellHandle
:
number
|
undefined
)
=>
{
this
.
logService
.
debug
(
'
MainthreadNotebooks.registerNotebookKernelProvider#cancelNotebook
'
,
uri
.
path
,
kernelId
,
cellHandle
);
return
that
.
_proxy
.
$cancelNotebookKernelFromProvider
(
handle
,
uri
,
kernelId
,
cellHandle
);
},
});
this
.
_notebookKernelProviders
.
set
(
handle
,
{
extension
,
emitter
,
provider
provideKernels
:
async
(
uri
:
URI
,
token
:
CancellationToken
):
Promise
<
INotebookKernelInfo2
[]
>
=>
{
const
result
:
INotebookKernelInfo2
[]
=
[];
const
kernelsDto
=
await
that
.
_proxy
.
$provideNotebookKernels
(
handle
,
uri
,
token
);
for
(
const
dto
of
kernelsDto
)
{
result
.
push
({
id
:
dto
.
id
,
friendlyId
:
dto
.
friendlyId
,
label
:
dto
.
label
,
extension
:
dto
.
extension
,
extensionLocation
:
dto
.
extensionLocation
,
providerHandle
:
dto
.
providerHandle
,
description
:
dto
.
description
,
detail
:
dto
.
detail
,
isPreferred
:
dto
.
isPreferred
,
preloads
:
dto
.
preloads
,
supportedLanguages
:
dto
.
supportedLanguages
,
resolve
:
(
uri
:
URI
,
editorId
:
string
,
token
:
CancellationToken
):
Promise
<
void
>
=>
{
this
.
logService
.
debug
(
'
MainthreadNotebooks.resolveNotebookKernel
'
,
uri
.
path
,
dto
.
friendlyId
);
return
this
.
_proxy
.
$resolveNotebookKernel
(
handle
,
editorId
,
uri
,
dto
.
friendlyId
,
token
);
},
executeNotebookCell
:
(
uri
:
URI
,
cellHandle
:
number
|
undefined
):
Promise
<
void
>
=>
{
this
.
logService
.
debug
(
'
MainthreadNotebooks.executeNotebookCell
'
,
uri
.
path
,
dto
.
friendlyId
,
cellHandle
);
return
this
.
_proxy
.
$executeNotebookKernelFromProvider
(
handle
,
uri
,
dto
.
friendlyId
,
cellHandle
);
},
cancelNotebookCell
:
(
uri
:
URI
,
cellHandle
:
number
|
undefined
):
Promise
<
void
>
=>
{
this
.
logService
.
debug
(
'
MainthreadNotebooks.cancelNotebookCell
'
,
uri
.
path
,
dto
.
friendlyId
,
cellHandle
);
return
this
.
_proxy
.
$cancelNotebookKernelFromProvider
(
handle
,
uri
,
dto
.
friendlyId
,
cellHandle
);
}
});
}
return
result
;
}
});
this
.
_notebookKernelProviders
.
set
(
handle
,
{
extension
,
emitter
,
provider
});
return
;
}
...
...
src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts
浏览文件 @
55d26729
...
...
@@ -2108,7 +2108,7 @@ CommandsRegistry.registerCommand('_resolveNotebookKernels', async (accessor, arg
const
notebookService
=
accessor
.
get
<
INotebookService
>
(
INotebookService
);
const
uri
=
URI
.
revive
(
args
.
uri
as
UriComponents
);
const
source
=
new
CancellationTokenSource
();
const
kernels
=
await
notebookService
.
get
Contributed
NotebookKernels
(
args
.
viewType
,
uri
,
source
.
token
);
const
kernels
=
await
notebookService
.
getNotebookKernels
(
args
.
viewType
,
uri
,
source
.
token
);
source
.
dispose
();
return
kernels
.
map
(
provider
=>
({
...
...
src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts
浏览文件 @
55d26729
...
...
@@ -774,7 +774,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
}
this
.
_contributedKernelsComputePromise
=
createCancelablePromise
(
token
=>
{
return
this
.
notebookService
.
get
Contributed
NotebookKernels
(
this
.
viewModel
!
.
viewType
,
this
.
viewModel
!
.
uri
,
token
);
return
this
.
notebookService
.
getNotebookKernels
(
this
.
viewModel
!
.
viewType
,
this
.
viewModel
!
.
uri
,
token
);
});
const
result
=
await
this
.
_contributedKernelsComputePromise
;
...
...
src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts
浏览文件 @
55d26729
...
...
@@ -695,39 +695,14 @@ export class NotebookService extends Disposable implements INotebookService, ICu
});
}
async
get
Contributed
NotebookKernels
(
viewType
:
string
,
resource
:
URI
,
token
:
CancellationToken
):
Promise
<
INotebookKernelInfo2
[]
>
{
async
getNotebookKernels
(
viewType
:
string
,
resource
:
URI
,
token
:
CancellationToken
):
Promise
<
INotebookKernelInfo2
[]
>
{
const
filteredProvider
=
this
.
notebookKernelProviderInfoStore
.
get
(
viewType
,
resource
);
const
result
=
new
Array
<
INotebookKernelInfo2
[]
>
(
filteredProvider
.
length
);
const
promises
=
filteredProvider
.
map
(
async
(
provider
,
index
)
=>
{
const
data
=
await
provider
.
provideKernels
(
resource
,
token
);
result
[
index
]
=
data
.
map
(
dto
=>
{
return
{
id
:
dto
.
id
,
extension
:
dto
.
extension
,
extensionLocation
:
URI
.
revive
(
dto
.
extensionLocation
),
friendlyId
:
dto
.
friendlyId
,
label
:
dto
.
label
,
description
:
dto
.
description
,
detail
:
dto
.
detail
,
isPreferred
:
dto
.
isPreferred
,
preloads
:
dto
.
preloads
,
providerHandle
:
dto
.
providerHandle
,
resolve
:
async
(
uri
:
URI
,
editorId
:
string
,
token
:
CancellationToken
)
=>
{
return
provider
.
resolveKernel
(
editorId
,
uri
,
dto
.
friendlyId
,
token
);
},
executeNotebookCell
:
async
(
uri
:
URI
,
handle
:
number
|
undefined
)
=>
{
return
provider
.
executeNotebook
(
uri
,
dto
.
friendlyId
,
handle
);
},
cancelNotebookCell
:
(
uri
:
URI
,
handle
:
number
|
undefined
):
Promise
<
void
>
=>
{
return
provider
.
cancelNotebook
(
uri
,
dto
.
friendlyId
,
handle
);
}
};
});
result
[
index
]
=
data
;
});
await
Promise
.
all
(
promises
);
return
flatten
(
result
);
}
...
...
src/vs/workbench/contrib/notebook/common/notebookCommon.ts
浏览文件 @
55d26729
...
...
@@ -738,10 +738,7 @@ export interface INotebookKernelProvider {
providerDescription
?:
string
;
selector
:
INotebookDocumentFilter
;
onDidChangeKernels
:
Event
<
URI
|
undefined
>
;
provideKernels
(
uri
:
URI
,
token
:
CancellationToken
):
Promise
<
INotebookKernelInfoDto2
[]
>
;
resolveKernel
(
editorId
:
string
,
uri
:
UriComponents
,
kernelId
:
string
,
token
:
CancellationToken
):
Promise
<
void
>
;
executeNotebook
(
uri
:
URI
,
kernelId
:
string
,
handle
:
number
|
undefined
):
Promise
<
void
>
;
cancelNotebook
(
uri
:
URI
,
kernelId
:
string
,
handle
:
number
|
undefined
):
Promise
<
void
>
;
provideKernels
(
uri
:
URI
,
token
:
CancellationToken
):
Promise
<
INotebookKernelInfo2
[]
>
;
}
export
class
CellSequence
implements
ISequence
{
...
...
src/vs/workbench/contrib/notebook/common/notebookService.ts
浏览文件 @
55d26729
...
...
@@ -52,7 +52,7 @@ export interface INotebookService {
getMimeTypeInfo
(
textModel
:
NotebookTextModel
,
output
:
IOutputDto
):
readonly
IOrderedMimeType
[];
registerNotebookKernelProvider
(
provider
:
INotebookKernelProvider
):
IDisposable
;
get
Contributed
NotebookKernels
(
viewType
:
string
,
resource
:
URI
,
token
:
CancellationToken
):
Promise
<
INotebookKernelInfo2
[]
>
;
getNotebookKernels
(
viewType
:
string
,
resource
:
URI
,
token
:
CancellationToken
):
Promise
<
INotebookKernelInfo2
[]
>
;
getContributedNotebookKernelProviders
():
Promise
<
INotebookKernelProvider
[]
>
;
getContributedNotebookOutputRenderers
(
id
:
string
):
NotebookOutputRendererInfo
|
undefined
;
getRendererInfo
(
id
:
string
):
INotebookRendererInfo
|
undefined
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录