From 718b8cc61b951beff1342c2c5a3eaac4622e50d0 Mon Sep 17 00:00:00 2001 From: Andrew Pareles Date: Sun, 15 Dec 2024 21:10:15 -0800 Subject: [PATCH] add void settings in lower left --- .../platform/void/common/voidSettingsService.ts | 2 +- .../ModelSelectionSettings.tsx | 17 +++++++---------- .../contrib/void/browser/voidSettingsPane.ts | 16 ++++++++++++++-- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/vs/platform/void/common/voidSettingsService.ts b/src/vs/platform/void/common/voidSettingsService.ts index 6309213b..dbaf0837 100644 --- a/src/vs/platform/void/common/voidSettingsService.ts +++ b/src/vs/platform/void/common/voidSettingsService.ts @@ -29,7 +29,7 @@ type SetModelSelectionOfFeature = ( -type ModelOption = { text: string, value: ModelSelection } +export type ModelOption = { text: string, value: ModelSelection } diff --git a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx index beefbc3c..bc16aeaa 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx @@ -17,13 +17,13 @@ export const ModelSelectionOfFeature = ({ featureName }: { featureName: FeatureN let weChangedText = false return <> -

{featureName}

- { - { if (weChangedText) return - voidSettingsService.setModelSelectionOfFeature(featureName, newVal) }, [voidSettingsService, featureName])} // we are responsible for setting the initial state here. always sync instance when state changes. @@ -32,18 +32,15 @@ export const ModelSelectionOfFeature = ({ featureName }: { featureName: FeatureN const modelsListRef = voidSettingsService.state._modelsList // as a ref const settingsAtProvider = voidSettingsService.state.modelSelectionOfFeature[featureName] const selectionIdx = settingsAtProvider === null ? -1 : modelsListRef.findIndex(v => modelSelectionsEqual(v.value, settingsAtProvider)) - if (selectionIdx !== -1) { - weChangedText = true - instance.select(selectionIdx) - weChangedText = false - } + weChangedText = true + instance.select(selectionIdx === -1 ? 0 : selectionIdx) + weChangedText = false } syncInstance() const disposable = voidSettingsService.onDidChangeState(syncInstance) return [disposable] }, [voidSettingsService, featureName])} />} - } diff --git a/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts b/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts index 3bf9f685..7ece62e6 100644 --- a/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts +++ b/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts @@ -15,7 +15,7 @@ import { IStorageService } from '../../../../platform/storage/common/storage.js' import { Dimension } from '../../../../base/browser/dom.js'; import { EditorPaneDescriptor, IEditorPaneRegistry } from '../../../browser/editor.js'; import { SyncDescriptor } from '../../../../platform/instantiation/common/descriptors.js'; -import { Action2, MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js'; +import { Action2, MenuId, MenuRegistry, registerAction2 } from '../../../../platform/actions/common/actions.js'; import { Registry } from '../../../../platform/registry/common/platform.js'; import { ServicesAccessor } from '../../../../editor/browser/editorExtensions.js'; import { IEditorService } from '../../../services/editor/common/editorService.js'; @@ -92,11 +92,12 @@ Registry.as(EditorExtensions.EditorPane).registerEditorPane ); +const OPEN_VOID_SETTINGS_ID = 'workbench.action.openVoidSettings' // Register the gear registerAction2(class extends Action2 { constructor() { super({ - id: 'workbench.action.openVoidSettings', + id: OPEN_VOID_SETTINGS_ID, title: nls.localize2('voidSettings', "Void: Settings"), f1: true, icon: Codicon.gear, @@ -120,3 +121,14 @@ registerAction2(class extends Action2 { await editorService.openEditor(input); } }) + + + +MenuRegistry.appendMenuItem(MenuId.GlobalActivity, { + group: '0_command', + command: { + id: OPEN_VOID_SETTINGS_ID, + title: nls.localize('voidSettings', "Void Settings") + }, + order: 1 +});