提交 1d7ff4c7 编写于 作者: R rebornix

emit notebook editor selection change.

上级 b4b67b8e
...@@ -1464,6 +1464,11 @@ declare module 'vscode' { ...@@ -1464,6 +1464,11 @@ declare module 'vscode' {
readonly cell: NotebookCell; readonly cell: NotebookCell;
} }
export interface NotebookEditorSelectionChangeEvent {
readonly notebookEditor: NotebookEditor;
readonly selection?: NotebookCell;
}
export interface NotebookCellData { export interface NotebookCellData {
readonly cellKind: CellKind; readonly cellKind: CellKind;
readonly source: string; readonly source: string;
...@@ -1680,11 +1685,12 @@ declare module 'vscode' { ...@@ -1680,11 +1685,12 @@ declare module 'vscode' {
*/ */
export const notebookDocuments: ReadonlyArray<NotebookDocument>; export const notebookDocuments: ReadonlyArray<NotebookDocument>;
export let visibleNotebookEditors: NotebookEditor[]; export const visibleNotebookEditors: NotebookEditor[];
export const onDidChangeVisibleNotebookEditors: Event<NotebookEditor[]>; export const onDidChangeVisibleNotebookEditors: Event<NotebookEditor[]>;
export let activeNotebookEditor: NotebookEditor | undefined; export const activeNotebookEditor: NotebookEditor | undefined;
export const onDidChangeActiveNotebookEditor: Event<NotebookEditor | undefined>; export const onDidChangeActiveNotebookEditor: Event<NotebookEditor | undefined>;
export const onDidChangeNotebookEditorSelection: Event<NotebookEditorSelectionChangeEvent>;
export const onDidChangeNotebookCells: Event<NotebookCellsChangeEvent>; export const onDidChangeNotebookCells: Event<NotebookCellsChangeEvent>;
export const onDidChangeCellOutputs: Event<NotebookCellOutputsChangeEvent>; export const onDidChangeCellOutputs: Event<NotebookCellOutputsChangeEvent>;
export const onDidChangeCellLanguage: Event<NotebookCellLanguageChangeEvent>; export const onDidChangeCellLanguage: Event<NotebookCellLanguageChangeEvent>;
......
...@@ -977,6 +977,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I ...@@ -977,6 +977,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
checkProposedApiEnabled(extension); checkProposedApiEnabled(extension);
return extHostNotebook.onDidChangeNotebookCells(listener, thisArgs, disposables); return extHostNotebook.onDidChangeNotebookCells(listener, thisArgs, disposables);
}, },
onDidChangeNotebookEditorSelection(listener, thisArgs?, disposables?) {
checkProposedApiEnabled(extension);
return extHostNotebook.onDidChangeNotebookEditorSelection(listener, thisArgs, disposables);
},
onDidChangeCellOutputs(listener, thisArgs?, disposables?) { onDidChangeCellOutputs(listener, thisArgs?, disposables?) {
checkProposedApiEnabled(extension); checkProposedApiEnabled(extension);
return extHostNotebook.onDidChangeCellOutputs(listener, thisArgs, disposables); return extHostNotebook.onDidChangeCellOutputs(listener, thisArgs, disposables);
......
...@@ -870,6 +870,8 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN ...@@ -870,6 +870,8 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
private readonly _editors = new Map<string, { editor: ExtHostNotebookEditor; }>(); private readonly _editors = new Map<string, { editor: ExtHostNotebookEditor; }>();
private readonly _webviewComm = new Map<string, ExtHostWebviewCommWrapper>(); private readonly _webviewComm = new Map<string, ExtHostWebviewCommWrapper>();
private readonly _commandsConverter: CommandsConverter; private readonly _commandsConverter: CommandsConverter;
private readonly _onDidChangeNotebookEditorSelection = new Emitter<vscode.NotebookEditorSelectionChangeEvent>();
readonly onDidChangeNotebookEditorSelection = this._onDidChangeNotebookEditorSelection.event;
private readonly _onDidChangeNotebookCells = new Emitter<vscode.NotebookCellsChangeEvent>(); private readonly _onDidChangeNotebookCells = new Emitter<vscode.NotebookCellsChangeEvent>();
readonly onDidChangeNotebookCells = this._onDidChangeNotebookCells.event; readonly onDidChangeNotebookCells = this._onDidChangeNotebookCells.event;
private readonly _onDidChangeCellOutputs = new Emitter<vscode.NotebookCellOutputsChangeEvent>(); private readonly _onDidChangeCellOutputs = new Emitter<vscode.NotebookCellOutputsChangeEvent>();
...@@ -1285,6 +1287,11 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN ...@@ -1285,6 +1287,11 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
} else { } else {
editor.editor.selection = undefined; editor.editor.selection = undefined;
} }
this._onDidChangeNotebookEditorSelection.fire({
notebookEditor: editor.editor,
selection: editor.editor.selection
});
} }
if (data.metadata) { if (data.metadata) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册