Feature: File Editor (#789)

* feat: Add file management feature

* feat: Add auto-save functionality to file editor

* fix: Replace HardDriveDownload icon with Save icon for consistency

* fix: Prevent recursive copy/move and improve shell injection prevention

* refactor: Extract editor settings form into separate component
This commit is contained in:
gsxdsm
2026-02-20 16:06:44 -08:00
committed by GitHub
parent 0a5540c9a2
commit 0e020f7e4a
36 changed files with 5513 additions and 11 deletions

View File

@@ -758,6 +758,11 @@ export function hydrateStoreFromSettings(settings: GlobalSettings): void {
worktreePanelCollapsed: settings.worktreePanelCollapsed ?? false,
lastProjectDir: settings.lastProjectDir ?? '',
recentFolders: settings.recentFolders ?? [],
// File editor settings
editorFontSize: settings.editorFontSize ?? 13,
editorFontFamily: settings.editorFontFamily ?? 'default',
editorAutoSave: settings.editorAutoSave ?? false,
editorAutoSaveDelay: settings.editorAutoSaveDelay ?? 1000,
// Terminal font (nested in terminalState)
...(settings.terminalFontFamily && {
terminalState: {
@@ -848,6 +853,10 @@ function buildSettingsUpdateFromStore(): Record<string, unknown> {
worktreePanelCollapsed: state.worktreePanelCollapsed,
lastProjectDir: state.lastProjectDir,
recentFolders: state.recentFolders,
editorFontSize: state.editorFontSize,
editorFontFamily: state.editorFontFamily,
editorAutoSave: state.editorAutoSave,
editorAutoSaveDelay: state.editorAutoSaveDelay,
terminalFontFamily: state.terminalState.fontFamily,
};
}

View File

@@ -85,6 +85,10 @@ const SETTINGS_FIELDS_TO_SYNC = [
'keyboardShortcuts',
'mcpServers',
'defaultEditorCommand',
'editorFontSize',
'editorFontFamily',
'editorAutoSave',
'editorAutoSaveDelay',
'defaultTerminalId',
'promptCustomization',
'eventHooks',
@@ -751,6 +755,10 @@ export async function refreshSettingsFromServer(): Promise<boolean> {
},
mcpServers: serverSettings.mcpServers,
defaultEditorCommand: serverSettings.defaultEditorCommand ?? null,
editorFontSize: serverSettings.editorFontSize ?? 13,
editorFontFamily: serverSettings.editorFontFamily ?? 'default',
editorAutoSave: serverSettings.editorAutoSave ?? false,
editorAutoSaveDelay: serverSettings.editorAutoSaveDelay ?? 1000,
defaultTerminalId: serverSettings.defaultTerminalId ?? null,
promptCustomization: serverSettings.promptCustomization ?? {},
claudeApiProfiles: serverSettings.claudeApiProfiles ?? [],