From e647ce00548e9fd369e41792c6e854b3d6e6d497 Mon Sep 17 00:00:00 2001 From: Andrew Pareles Date: Sat, 21 Dec 2024 18:46:45 -0800 Subject: [PATCH] fix + mount sidebar on init --- .../browser/helpers/reactServicesHelper.ts | 54 ------------------- .../contrib/void/browser/sidebarActions.ts | 33 +----------- .../contrib/void/browser/sidebarPane.ts | 30 +++++++++++ .../void/browser/sidebarStateService.ts | 2 +- .../contrib/void/browser/voidSettingsPane.ts | 4 +- 5 files changed, 33 insertions(+), 90 deletions(-) delete mode 100644 src/vs/workbench/contrib/void/browser/helpers/reactServicesHelper.ts diff --git a/src/vs/workbench/contrib/void/browser/helpers/reactServicesHelper.ts b/src/vs/workbench/contrib/void/browser/helpers/reactServicesHelper.ts deleted file mode 100644 index 08ad3fdb..00000000 --- a/src/vs/workbench/contrib/void/browser/helpers/reactServicesHelper.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { ServicesAccessor } from '../../../../../editor/browser/editorExtensions.js'; -import { IModelService } from '../../../../../editor/common/services/model.js'; -import { IClipboardService } from '../../../../../platform/clipboard/common/clipboardService.js'; -import { IContextViewService, IContextMenuService } from '../../../../../platform/contextview/browser/contextView.js'; -import { IFileService } from '../../../../../platform/files/common/files.js'; -import { IHoverService } from '../../../../../platform/hover/browser/hover.js'; -import { IThemeService } from '../../../../../platform/theme/common/themeService.js'; -import { ILLMMessageService } from '../../../../../platform/void/common/llmMessageService.js'; -import { IRefreshModelService } from '../../../../../platform/void/common/refreshModelService.js'; -import { IVoidSettingsService } from '../../../../../platform/void/common/voidSettingsService.js'; -import { IInlineDiffsService } from '../inlineDiffsService.js'; -import { IQuickEditStateService } from '../quickEditStateService.js'; -import { ISidebarStateService } from '../sidebarStateService.js'; -import { IThreadHistoryService } from '../threadHistoryService.js'; - -export type ReactServicesType = { - quickEditStateService: IQuickEditStateService; - sidebarStateService: ISidebarStateService; - settingsStateService: IVoidSettingsService; - threadsStateService: IThreadHistoryService; - fileService: IFileService; - modelService: IModelService; - inlineDiffService: IInlineDiffsService; - llmMessageService: ILLMMessageService; - clipboardService: IClipboardService; - refreshModelService: IRefreshModelService; - - themeService: IThemeService, - hoverService: IHoverService, - - contextViewService: IContextViewService; - contextMenuService: IContextMenuService; -} - - -export const getReactServices = (accessor: ServicesAccessor): ReactServicesType => { - return { - quickEditStateService: accessor.get(IQuickEditStateService), - settingsStateService: accessor.get(IVoidSettingsService), - sidebarStateService: accessor.get(ISidebarStateService), - threadsStateService: accessor.get(IThreadHistoryService), - fileService: accessor.get(IFileService), - modelService: accessor.get(IModelService), - inlineDiffService: accessor.get(IInlineDiffsService), - llmMessageService: accessor.get(ILLMMessageService), - clipboardService: accessor.get(IClipboardService), - themeService: accessor.get(IThemeService), - hoverService: accessor.get(IHoverService), - refreshModelService: accessor.get(IRefreshModelService), - contextViewService: accessor.get(IContextViewService), - contextMenuService: accessor.get(IContextMenuService), - } -} - diff --git a/src/vs/workbench/contrib/void/browser/sidebarActions.ts b/src/vs/workbench/contrib/void/browser/sidebarActions.ts index 7939a46f..7f61c729 100644 --- a/src/vs/workbench/contrib/void/browser/sidebarActions.ts +++ b/src/vs/workbench/contrib/void/browser/sidebarActions.ts @@ -18,13 +18,11 @@ import { IEditorService } from '../../../services/editor/common/editorService.js import { ICodeEditorService } from '../../../../editor/browser/services/codeEditorService.js'; import { IRange } from '../../../../editor/common/core/range.js'; import { ITextModel } from '../../../../editor/common/model.js'; -import { VOID_VIEW_CONTAINER_ID, VOID_VIEW_ID } from './sidebarPane.js'; +import { VOID_VIEW_ID } from './sidebarPane.js'; import { IMetricsService } from '../../../../platform/void/common/metricsService.js'; import { ISidebarStateService } from './sidebarStateService.js'; import { ICommandService } from '../../../../platform/commands/common/commands.js'; import { OPEN_VOID_SETTINGS_ACTION_ID } from './voidSettingsPane.js'; -import { IWorkbenchContribution, registerWorkbenchContribution2, WorkbenchPhase } from '../../../common/contributions.js'; -import { IViewsService } from '../../../services/views/common/viewsService.js'; // ---------- Register commands and keybindings ---------- @@ -182,32 +180,3 @@ registerAction2(class extends Action2 { commandService.executeCommand(OPEN_VOID_SETTINGS_ACTION_ID) } }) - - -export const VOID_OPEN_SIDEBAR_ACTION_ID = 'void.openSidebar' -registerAction2(class extends Action2 { - constructor() { - super({ - id: VOID_OPEN_SIDEBAR_ACTION_ID, - title: 'Open Void Sidebar', - }) - } - run(accessor: ServicesAccessor): void { - const viewsService = accessor.get(IViewsService) - viewsService.openViewContainer(VOID_VIEW_CONTAINER_ID); - viewsService.openView(VOID_VIEW_ID); - } -}); - -// mount at start - - -export class SidebarStartContribution implements IWorkbenchContribution { - static readonly ID = 'workbench.contrib.startupVoidSidebar'; - constructor( - @ICommandService private readonly commandService: ICommandService, - ) { - this.commandService.executeCommand(VOID_OPEN_SIDEBAR_ACTION_ID) - } -} -registerWorkbenchContribution2(SidebarStartContribution.ID, SidebarStartContribution, WorkbenchPhase.BlockRestore); diff --git a/src/vs/workbench/contrib/void/browser/sidebarPane.ts b/src/vs/workbench/contrib/void/browser/sidebarPane.ts index 519a96c2..e6da184f 100644 --- a/src/vs/workbench/contrib/void/browser/sidebarPane.ts +++ b/src/vs/workbench/contrib/void/browser/sidebarPane.ts @@ -39,6 +39,11 @@ import { Codicon } from '../../../../base/common/codicons.js'; import { Orientation } from '../../../../base/browser/ui/sash/sash.js'; // import { IDisposable } from '../../../../base/common/lifecycle.js'; import { IDisposable } from '../../../../base/common/lifecycle.js'; +import { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js'; +import { ServicesAccessor } from '../../../../editor/browser/editorExtensions.js'; +import { IViewsService } from '../../../services/views/common/viewsService.js'; +import { IWorkbenchContribution, registerWorkbenchContribution2, WorkbenchPhase } from '../../../common/contributions.js'; +import { ICommandService } from '../../../../platform/commands/common/commands.js'; // compare against search.contribution.ts and debug.contribution.ts, scm.contribution.ts (source control) @@ -142,3 +147,28 @@ viewsRegistry.registerViews([{ // }, }], container); + +// open sidebar +export const VOID_OPEN_SIDEBAR_ACTION_ID = 'void.openSidebar' +registerAction2(class extends Action2 { + constructor() { + super({ + id: VOID_OPEN_SIDEBAR_ACTION_ID, + title: 'Open Void Sidebar', + }) + } + run(accessor: ServicesAccessor): void { + const viewsService = accessor.get(IViewsService) + viewsService.openViewContainer(VOID_VIEW_CONTAINER_ID); + } +}); + +export class SidebarStartContribution implements IWorkbenchContribution { + static readonly ID = 'workbench.contrib.startupVoidSidebar'; + constructor( + @ICommandService private readonly commandService: ICommandService, + ) { + this.commandService.executeCommand(VOID_OPEN_SIDEBAR_ACTION_ID) + } +} +registerWorkbenchContribution2(SidebarStartContribution.ID, SidebarStartContribution, WorkbenchPhase.AfterRestored); diff --git a/src/vs/workbench/contrib/void/browser/sidebarStateService.ts b/src/vs/workbench/contrib/void/browser/sidebarStateService.ts index e711002f..010b8abd 100644 --- a/src/vs/workbench/contrib/void/browser/sidebarStateService.ts +++ b/src/vs/workbench/contrib/void/browser/sidebarStateService.ts @@ -3,7 +3,7 @@ import { Disposable } from '../../../../base/common/lifecycle.js'; import { ICommandService } from '../../../../platform/commands/common/commands.js'; import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js'; import { createDecorator } from '../../../../platform/instantiation/common/instantiation.js'; -import { VOID_OPEN_SIDEBAR_ACTION_ID } from './sidebarActions.js'; +import { VOID_OPEN_SIDEBAR_ACTION_ID } from './sidebarPane.js'; // service that manages sidebar's state diff --git a/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts b/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts index 3b7515b8..eeaf7cba 100644 --- a/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts +++ b/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts @@ -24,7 +24,6 @@ import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextke import { mountVoidSettings } from './react/out/void-settings-tsx/index.js' -import { getReactServices } from './helpers/reactServicesHelper.js'; import { Codicon } from '../../../../base/common/codicons.js'; import { IDisposable } from '../../../../base/common/lifecycle.js'; import { DomScrollableElement } from '../../../../base/browser/ui/scrollbar/scrollableElement.js'; @@ -89,8 +88,7 @@ class VoidSettingsPane extends EditorPane { // Mount React into the scrollable content this.instantiationService.invokeFunction(accessor => { - const services = getReactServices(accessor); - const disposables: IDisposable[] | undefined = mountVoidSettings(scrollableContent, services); + const disposables: IDisposable[] | undefined = mountVoidSettings(scrollableContent, accessor); setTimeout(() => { // this is a complete hack and I don't really understand how scrollbar works here this._scrollbar?.scanDomNode();