Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
fca71078
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,发现更多精彩内容 >>
提交
fca71078
编写于
11月 06, 2020
作者:
R
rebornix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix #105901.
上级
35bad702
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
43 addition
and
4 deletion
+43
-4
src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts
...workbench/contrib/notebook/browser/contrib/coreActions.ts
+3
-3
src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts
...rkbench/contrib/notebook/browser/view/notebookCellList.ts
+11
-1
src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.ts
...h/contrib/notebook/browser/viewModel/baseCellViewModel.ts
+28
-0
src/vs/workbench/contrib/notebook/common/notebookCommon.ts
src/vs/workbench/contrib/notebook/common/notebookCommon.ts
+1
-0
未找到文件。
src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts
浏览文件 @
fca71078
...
...
@@ -23,7 +23,7 @@ import { IQuickInputService, IQuickPickItem, QuickPickInput } from 'vs/platform/
import
{
CATEGORIES
}
from
'
vs/workbench/common/actions
'
;
import
{
BaseCellRenderTemplate
,
CellEditState
,
CellFocusMode
,
EXPAND_CELL_CONTENT_COMMAND_ID
,
ICellViewModel
,
INotebookEditor
,
NOTEBOOK_CELL_EDITABLE
,
NOTEBOOK_CELL_EDITOR_FOCUSED
,
NOTEBOOK_CELL_HAS_OUTPUTS
,
NOTEBOOK_CELL_INPUT_COLLAPSED
,
NOTEBOOK_CELL_LIST_FOCUSED
,
NOTEBOOK_CELL_MARKDOWN_EDIT_MODE
,
NOTEBOOK_CELL_OUTPUT_COLLAPSED
,
NOTEBOOK_CELL_TYPE
,
NOTEBOOK_EDITOR_EDITABLE
,
NOTEBOOK_EDITOR_EXECUTING_NOTEBOOK
,
NOTEBOOK_EDITOR_FOCUSED
,
NOTEBOOK_EDITOR_RUNNABLE
,
NOTEBOOK_IS_ACTIVE_EDITOR
,
NOTEBOOK_OUTPUT_FOCUSED
}
from
'
vs/workbench/contrib/notebook/browser/notebookBrowser
'
;
import
{
CellViewModel
}
from
'
vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel
'
;
import
{
CellEditType
,
CellKind
,
ICellEditOperation
,
ICellRange
,
isDocumentExcludePattern
,
NotebookCellMetadata
,
NotebookCellRunState
,
NOTEBOOK_EDITOR_CURSOR_BOUNDARY
,
TransientMetadata
}
from
'
vs/workbench/contrib/notebook/common/notebookCommon
'
;
import
{
CellEditType
,
CellKind
,
ICellEditOperation
,
ICellRange
,
isDocumentExcludePattern
,
NotebookCellMetadata
,
NotebookCellRunState
,
NOTEBOOK_EDITOR_CURSOR_B
EGIN_END
,
NOTEBOOK_EDITOR_CURSOR_B
OUNDARY
,
TransientMetadata
}
from
'
vs/workbench/contrib/notebook/common/notebookCommon
'
;
import
{
INotebookService
}
from
'
vs/workbench/contrib/notebook/common/notebookService
'
;
import
{
IEditorGroupsService
}
from
'
vs/workbench/services/editor/common/editorGroupsService
'
;
import
{
IEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
...
...
@@ -1609,7 +1609,7 @@ registerAction2(class extends NotebookCellAction {
title
:
localize
(
'
notebookActions.splitCell
'
,
"
Split Cell
"
),
menu
:
{
id
:
MenuId
.
NotebookCellTitle
,
when
:
ContextKeyExpr
.
and
(
NOTEBOOK_EDITOR_FOCUSED
,
NOTEBOOK_EDITOR_EDITABLE
,
NOTEBOOK_CELL_EDITABLE
,
NOTEBOOK_CELL_EDITOR_FOCUSED
),
when
:
ContextKeyExpr
.
and
(
NOTEBOOK_EDITOR_FOCUSED
,
NOTEBOOK_EDITOR_EDITABLE
,
NOTEBOOK_CELL_EDITABLE
,
NOTEBOOK_CELL_EDITOR_FOCUSED
,
NOTEBOOK_EDITOR_CURSOR_BEGIN_END
.
toNegated
()
),
order
:
CellToolbarOrder
.
SplitCell
,
group
:
CELL_TITLE_CELL_GROUP_ID
,
// alt: {
...
...
@@ -1619,7 +1619,7 @@ registerAction2(class extends NotebookCellAction {
},
icon
:
{
id
:
'
codicon/split-vertical
'
},
keybinding
:
{
when
:
ContextKeyExpr
.
and
(
NOTEBOOK_EDITOR_FOCUSED
,
NOTEBOOK_EDITOR_EDITABLE
,
NOTEBOOK_CELL_EDITABLE
,
NOTEBOOK_CELL_EDITOR_FOCUSED
),
when
:
ContextKeyExpr
.
and
(
NOTEBOOK_EDITOR_FOCUSED
,
NOTEBOOK_EDITOR_EDITABLE
,
NOTEBOOK_CELL_EDITABLE
,
NOTEBOOK_CELL_EDITOR_FOCUSED
,
NOTEBOOK_EDITOR_CURSOR_BEGIN_END
.
toNegated
()
),
primary
:
KeyChord
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_K
,
KeyMod
.
CtrlCmd
|
KeyMod
.
Shift
|
KeyCode
.
US_BACKSLASH
),
weight
:
KeybindingWeight
.
WorkbenchContrib
},
...
...
src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts
浏览文件 @
fca71078
...
...
@@ -21,7 +21,7 @@ import { IListService, IWorkbenchListOptions, WorkbenchList } from 'vs/platform/
import
{
IThemeService
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
CellRevealPosition
,
CellRevealType
,
CursorAtBoundary
,
getVisibleCells
,
ICellViewModel
,
INotebookCellList
,
reduceCellRanges
,
CellEditState
,
CellFocusMode
,
BaseCellRenderTemplate
,
NOTEBOOK_CELL_LIST_FOCUSED
,
cellRangesEqual
}
from
'
vs/workbench/contrib/notebook/browser/notebookBrowser
'
;
import
{
CellViewModel
,
NotebookViewModel
}
from
'
vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel
'
;
import
{
diff
,
IProcessedOutput
,
NOTEBOOK_EDITOR_CURSOR_BOUNDARY
,
CellKind
,
ICellRange
}
from
'
vs/workbench/contrib/notebook/common/notebookCommon
'
;
import
{
diff
,
IProcessedOutput
,
NOTEBOOK_EDITOR_CURSOR_BOUNDARY
,
CellKind
,
ICellRange
,
NOTEBOOK_EDITOR_CURSOR_BEGIN_END
}
from
'
vs/workbench/contrib/notebook/common/notebookCommon
'
;
import
{
clamp
}
from
'
vs/base/common/numbers
'
;
import
{
SCROLLABLE_ELEMENT_PADDING_TOP
}
from
'
vs/workbench/contrib/notebook/browser/constants
'
;
...
...
@@ -115,6 +115,9 @@ export class NotebookCellList extends WorkbenchList<CellViewModel> implements ID
const
notebookEditorCursorAtBoundaryContext
=
NOTEBOOK_EDITOR_CURSOR_BOUNDARY
.
bindTo
(
contextKeyService
);
notebookEditorCursorAtBoundaryContext
.
set
(
'
none
'
);
const
notebookEditorCursorAtBeginEndContext
=
NOTEBOOK_EDITOR_CURSOR_BEGIN_END
.
bindTo
(
contextKeyService
);
notebookEditorCursorAtBeginEndContext
.
set
(
false
);
let
cursorSelectionListener
:
IDisposable
|
null
=
null
;
let
textEditorAttachListener
:
IDisposable
|
null
=
null
;
...
...
@@ -133,6 +136,13 @@ export class NotebookCellList extends WorkbenchList<CellViewModel> implements ID
notebookEditorCursorAtBoundaryContext
.
set
(
'
none
'
);
break
;
}
if
(
element
.
cursorAtBeginEnd
())
{
notebookEditorCursorAtBeginEndContext
.
set
(
true
);
}
else
{
notebookEditorCursorAtBeginEndContext
.
set
(
false
);
}
return
;
};
...
...
src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.ts
浏览文件 @
fca71078
...
...
@@ -352,6 +352,34 @@ export abstract class BaseCellViewModel extends Disposable {
return
this
.
_textEditor
.
getTopForPosition
(
line
,
column
)
+
EDITOR_TOP_PADDING
;
}
cursorAtBeginEnd
():
boolean
{
if
(
!
this
.
_textEditor
)
{
return
false
;
}
if
(
!
this
.
textModel
)
{
return
false
;
}
// only validate primary cursor
const
selection
=
this
.
_textEditor
.
getSelection
();
// only validate empty cursor
if
(
!
selection
||
!
selection
.
isEmpty
())
{
return
false
;
}
if
(
selection
.
startLineNumber
===
1
&&
selection
.
startColumn
===
1
)
{
return
true
;
}
if
(
selection
.
startLineNumber
===
this
.
_textModel
?.
getLineCount
()
&&
selection
.
startColumn
===
this
.
_textModel
?.
getLineMaxColumn
(
selection
.
startLineNumber
))
{
return
true
;
}
return
false
;
}
cursorAtBoundary
():
CursorAtBoundary
{
if
(
!
this
.
_textEditor
)
{
return
CursorAtBoundary
.
None
;
...
...
src/vs/workbench/contrib/notebook/common/notebookCommon.ts
浏览文件 @
fca71078
...
...
@@ -681,6 +681,7 @@ export interface ICellEditorViewState {
}
export
const
NOTEBOOK_EDITOR_CURSOR_BOUNDARY
=
new
RawContextKey
<
'
none
'
|
'
top
'
|
'
bottom
'
|
'
both
'
>
(
'
notebookEditorCursorAtBoundary
'
,
'
none
'
);
export
const
NOTEBOOK_EDITOR_CURSOR_BEGIN_END
=
new
RawContextKey
<
boolean
>
(
'
notebookEditorCursorAtEditorBeginEnd
'
,
false
);
export
interface
INotebookEditorModel
extends
IEditorModel
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录