提交 1406eab8 编写于 作者: R Rob Lourens

Remove invokeWithinContext from notebook in favor of PR #104947

上级 545414b6
......@@ -19,25 +19,6 @@ import { MementoObject } from 'vs/workbench/common/memento';
import { joinPath, IExtUri } from 'vs/base/common/resources';
import { indexOfPath } from 'vs/base/common/extpath';
import { IDisposable } from 'vs/base/common/lifecycle';
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
/**
* Should be implemented by editors that have their own ScopedContextKeyService
*/
export interface IEditorWithContext {
/**
* Execute `fn` with the editor's services.
*/
invokeWithinContext<T>(fn: (accessor: ServicesAccessor) => T): T;
}
export function isEditorWithContext(editor: unknown): editor is IEditorWithContext {
return !!(editor && !!(editor as IEditorWithContext).invokeWithinContext);
}
export function getEditorWithContext(thing: unknown): IEditorWithContext | null {
return isEditorWithContext(thing) ? thing : null;
}
/**
* The base class of editors in the workbench. Editors register themselves for specific editor inputs.
......
......@@ -13,7 +13,7 @@ import { IAction, IRunEvent, WorkbenchActionExecutedEvent, WorkbenchActionExecut
import * as arrays from 'vs/base/common/arrays';
import { ResolvedKeybinding } from 'vs/base/common/keyCodes';
import { dispose, DisposableStore } from 'vs/base/common/lifecycle';
import { isCodeEditor } from 'vs/editor/browser/editorBrowser';
import { getCodeEditor, isCodeEditor } from 'vs/editor/browser/editorBrowser';
import { localize } from 'vs/nls';
import { createAndFillInActionBarActions, createAndFillInContextMenuActions, MenuEntryActionViewItem, SubmenuEntryActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem';
import { ExecuteCommandAction, IMenu, IMenuService, MenuId, MenuItemAction, SubmenuItemAction } from 'vs/platform/actions/common/actions';
......@@ -28,7 +28,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { listActiveSelectionBackground, listActiveSelectionForeground } from 'vs/platform/theme/common/colorRegistry';
import { ICssStyleCollector, IColorTheme, IThemeService, registerThemingParticipant, Themable } from 'vs/platform/theme/common/themeService';
import { DraggedEditorGroupIdentifier, DraggedEditorIdentifier, fillResourceDataTransfers, LocalSelectionTransfer } from 'vs/workbench/browser/dnd';
import { EditorPane, getEditorWithContext } from 'vs/workbench/browser/parts/editor/editorPane';
import { EditorPane } from 'vs/workbench/browser/parts/editor/editorPane';
import { BreadcrumbsConfig } from 'vs/workbench/browser/parts/editor/breadcrumbs';
import { BreadcrumbsControl, IBreadcrumbsControlOptions } from 'vs/workbench/browser/parts/editor/breadcrumbsControl';
import { IEditorGroupsAccessor, IEditorGroupView } from 'vs/workbench/browser/parts/editor/editor';
......@@ -237,8 +237,8 @@ export abstract class TitleControl extends Themable {
// Editor actions require the editor control to be there, so we retrieve it via service
const activeEditorPane = this.group.activeEditorPane;
if (activeEditorPane instanceof EditorPane) {
const editorWithContext = getEditorWithContext(activeEditorPane.getControl());
const scopedContextKeyService = editorWithContext?.invokeWithinContext(accessor => accessor.get(IContextKeyService)) || this.contextKeyService;
const codeEditor = getCodeEditor(activeEditorPane.getControl());
const scopedContextKeyService = codeEditor?.invokeWithinContext(accessor => accessor.get(IContextKeyService)) || this.contextKeyService;
const titleBarMenu = this.menuService.createMenu(MenuId.EditorTitle, scopedContextKeyService);
this.editorToolBarMenuDisposables.add(titleBarMenu);
this.editorToolBarMenuDisposables.add(titleBarMenu.onDidChange(() => {
......
......@@ -28,7 +28,7 @@ import { IMenuService, MenuId } from 'vs/platform/actions/common/actions';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
import { ILayoutService } from 'vs/platform/layout/browser/layoutService';
import { IQuickInputService, IQuickPickItem, QuickPickInput } from 'vs/platform/quickinput/common/quickInput';
......@@ -284,10 +284,6 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
return this.viewModel?.selectionHandles || [];
}
invokeWithinContext<T>(fn: (accessor: ServicesAccessor) => T): T {
return this.instantiationService.invokeFunction(fn);
}
hasModel() {
return !!this._notebookViewModel;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册