From b4c67f133b606ba45d6a78793cd1795c6ca4d908 Mon Sep 17 00:00:00 2001 From: Eric Wheeler Date: Thu, 10 Apr 2025 17:38:56 -0700 Subject: [PATCH] feat: add terminal settings for Oh My Zsh and Powerlevel10k shell integration Added two new terminal settings: - terminalZshOhMy: Sets ITERM_SHELL_INTEGRATION_INSTALLED=Yes for Oh My Zsh - terminalZshP10k: Sets POWERLEVEL9K_TERM_SHELL_INTEGRATION=true for Powerlevel10k Signed-off-by: Eric Wheeler --- src/core/webview/ClineProvider.ts | 10 +++++ src/core/webview/webviewMessageHandler.ts | 14 +++++++ src/exports/roo-code.d.ts | 2 + src/exports/types.ts | 2 + src/integrations/terminal/Terminal.ts | 34 +++++++++++++++ src/integrations/terminal/TerminalRegistry.ts | 10 +++++ .../__tests__/TerminalRegistry.test.ts | 42 +++++++++++++++++++ src/schemas/index.ts | 4 ++ src/shared/ExtensionMessage.ts | 2 + src/shared/WebviewMessage.ts | 2 + .../src/components/settings/SettingsView.tsx | 6 +++ .../components/settings/TerminalSettings.tsx | 30 +++++++++++++ .../src/context/ExtensionStateContext.tsx | 3 +- webview-ui/src/i18n/locales/ca/settings.json | 8 ++++ webview-ui/src/i18n/locales/de/settings.json | 8 ++++ webview-ui/src/i18n/locales/en/settings.json | 8 ++++ webview-ui/src/i18n/locales/es/settings.json | 8 ++++ webview-ui/src/i18n/locales/fr/settings.json | 8 ++++ webview-ui/src/i18n/locales/hi/settings.json | 8 ++++ webview-ui/src/i18n/locales/it/settings.json | 8 ++++ webview-ui/src/i18n/locales/ja/settings.json | 8 ++++ webview-ui/src/i18n/locales/ko/settings.json | 8 ++++ webview-ui/src/i18n/locales/pl/settings.json | 8 ++++ .../src/i18n/locales/pt-BR/settings.json | 8 ++++ webview-ui/src/i18n/locales/tr/settings.json | 8 ++++ webview-ui/src/i18n/locales/vi/settings.json | 8 ++++ .../src/i18n/locales/zh-CN/settings.json | 8 ++++ .../src/i18n/locales/zh-TW/settings.json | 8 ++++ 28 files changed, 280 insertions(+), 1 deletion(-) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index f87c23ff15..798e79ddfc 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -357,6 +357,8 @@ export class ClineProvider extends EventEmitter implements terminalShellIntegrationTimeout, terminalCommandDelay, terminalZshClearEolMark, + terminalZshOhMy, + terminalZshP10k, terminalPowershellCounter, }) => { setSoundEnabled(soundEnabled ?? false) @@ -365,6 +367,8 @@ export class ClineProvider extends EventEmitter implements ) Terminal.setCommandDelay(terminalCommandDelay ?? 0) Terminal.setTerminalZshClearEolMark(terminalZshClearEolMark ?? true) + Terminal.setTerminalZshOhMy(terminalZshOhMy ?? false) + Terminal.setTerminalZshP10k(terminalZshP10k ?? false) Terminal.setPowershellCounter(terminalPowershellCounter ?? false) }, ) @@ -1213,6 +1217,8 @@ export class ClineProvider extends EventEmitter implements terminalCommandDelay, terminalPowershellCounter, terminalZshClearEolMark, + terminalZshOhMy, + terminalZshP10k, fuzzyMatchThreshold, mcpEnabled, enableMcpServerCreation, @@ -1283,6 +1289,8 @@ export class ClineProvider extends EventEmitter implements terminalCommandDelay: terminalCommandDelay ?? 0, terminalPowershellCounter: terminalPowershellCounter ?? false, terminalZshClearEolMark: terminalZshClearEolMark ?? true, + terminalZshOhMy: terminalZshOhMy ?? false, + terminalZshP10k: terminalZshP10k ?? false, fuzzyMatchThreshold: fuzzyMatchThreshold ?? 1.0, mcpEnabled: mcpEnabled ?? true, enableMcpServerCreation: enableMcpServerCreation ?? true, @@ -1372,6 +1380,8 @@ export class ClineProvider extends EventEmitter implements terminalCommandDelay: stateValues.terminalCommandDelay ?? 0, terminalPowershellCounter: stateValues.terminalPowershellCounter ?? false, terminalZshClearEolMark: stateValues.terminalZshClearEolMark ?? true, + terminalZshOhMy: stateValues.terminalZshOhMy ?? false, + terminalZshP10k: stateValues.terminalZshP10k ?? false, mode: stateValues.mode ?? defaultModeSlug, language: stateValues.language ?? formatLanguage(vscode.env.language), mcpEnabled: stateValues.mcpEnabled ?? true, diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index 3a02e0f937..7c6832e3e6 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -757,6 +757,20 @@ export const webviewMessageHandler = async (provider: ClineProvider, message: We Terminal.setTerminalZshClearEolMark(message.bool) } break + case "terminalZshOhMy": + await updateGlobalState("terminalZshOhMy", message.bool) + await provider.postStateToWebview() + if (message.bool !== undefined) { + Terminal.setTerminalZshOhMy(message.bool) + } + break + case "terminalZshP10k": + await updateGlobalState("terminalZshP10k", message.bool) + await provider.postStateToWebview() + if (message.bool !== undefined) { + Terminal.setTerminalZshP10k(message.bool) + } + break case "mode": await provider.handleModeSwitch(message.text as Mode) break diff --git a/src/exports/roo-code.d.ts b/src/exports/roo-code.d.ts index 0aba68638c..9c57f5063c 100644 --- a/src/exports/roo-code.d.ts +++ b/src/exports/roo-code.d.ts @@ -269,6 +269,8 @@ type GlobalSettings = { terminalCommandDelay?: number | undefined terminalPowershellCounter?: boolean | undefined terminalZshClearEolMark?: boolean | undefined + terminalZshOhMy?: boolean | undefined + terminalZshP10k?: boolean | undefined rateLimitSeconds?: number | undefined diffEnabled?: boolean | undefined fuzzyMatchThreshold?: number | undefined diff --git a/src/exports/types.ts b/src/exports/types.ts index 9a53ecdc7c..9fb822c02a 100644 --- a/src/exports/types.ts +++ b/src/exports/types.ts @@ -272,6 +272,8 @@ type GlobalSettings = { terminalCommandDelay?: number | undefined terminalPowershellCounter?: boolean | undefined terminalZshClearEolMark?: boolean | undefined + terminalZshOhMy?: boolean | undefined + terminalZshP10k?: boolean | undefined rateLimitSeconds?: number | undefined diffEnabled?: boolean | undefined fuzzyMatchThreshold?: number | undefined diff --git a/src/integrations/terminal/Terminal.ts b/src/integrations/terminal/Terminal.ts index ed6dfd62bf..76d7e91644 100644 --- a/src/integrations/terminal/Terminal.ts +++ b/src/integrations/terminal/Terminal.ts @@ -10,6 +10,8 @@ export class Terminal { private static commandDelay: number = 0 private static powershellCounter: boolean = false private static terminalZshClearEolMark: boolean = true + private static terminalZshOhMy: boolean = false + private static terminalZshP10k: boolean = false public terminal: vscode.Terminal public busy: boolean @@ -311,6 +313,38 @@ export class Terminal { return Terminal.terminalZshClearEolMark } + /** + * Sets whether to enable Oh My Zsh shell integration + * @param enabled Whether to enable Oh My Zsh shell integration + */ + public static setTerminalZshOhMy(enabled: boolean): void { + Terminal.terminalZshOhMy = enabled + } + + /** + * Gets whether Oh My Zsh shell integration is enabled + * @returns Whether Oh My Zsh shell integration is enabled + */ + public static getTerminalZshOhMy(): boolean { + return Terminal.terminalZshOhMy + } + + /** + * Sets whether to enable Powerlevel10k shell integration + * @param enabled Whether to enable Powerlevel10k shell integration + */ + public static setTerminalZshP10k(enabled: boolean): void { + Terminal.terminalZshP10k = enabled + } + + /** + * Gets whether Powerlevel10k shell integration is enabled + * @returns Whether Powerlevel10k shell integration is enabled + */ + public static getTerminalZshP10k(): boolean { + return Terminal.terminalZshP10k + } + public static compressTerminalOutput(input: string, lineLimit: number): string { return truncateOutput(applyRunLengthEncoding(input), lineLimit) } diff --git a/src/integrations/terminal/TerminalRegistry.ts b/src/integrations/terminal/TerminalRegistry.ts index 8dcf375225..4b0d3fd6c3 100644 --- a/src/integrations/terminal/TerminalRegistry.ts +++ b/src/integrations/terminal/TerminalRegistry.ts @@ -117,6 +117,16 @@ export class TerminalRegistry { VTE_VERSION: "0", } + // Set Oh My Zsh shell integration if enabled + if (Terminal.getTerminalZshOhMy()) { + env.ITERM_SHELL_INTEGRATION_INSTALLED = "Yes" + } + + // Set Powerlevel10k shell integration if enabled + if (Terminal.getTerminalZshP10k()) { + env.POWERLEVEL9K_TERM_SHELL_INTEGRATION = "true" + } + // VSCode bug#237208: Command output can be lost due to a race between completion // sequences and consumers. Add delay via PROMPT_COMMAND to ensure the // \x1b]633;D escape sequence arrives after command output is processed. diff --git a/src/integrations/terminal/__tests__/TerminalRegistry.test.ts b/src/integrations/terminal/__tests__/TerminalRegistry.test.ts index 5b9d42f92d..d80087cc9c 100644 --- a/src/integrations/terminal/__tests__/TerminalRegistry.test.ts +++ b/src/integrations/terminal/__tests__/TerminalRegistry.test.ts @@ -62,5 +62,47 @@ describe("TerminalRegistry", () => { Terminal.setCommandDelay(originalDelay) } }) + + it("adds Oh My Zsh integration env var when enabled", () => { + Terminal.setTerminalZshOhMy(true) + try { + TerminalRegistry.createTerminal("/test/path") + + expect(mockCreateTerminal).toHaveBeenCalledWith({ + cwd: "/test/path", + name: "Roo Code", + iconPath: expect.any(Object), + env: { + PAGER: "cat", + VTE_VERSION: "0", + PROMPT_EOL_MARK: "", + ITERM_SHELL_INTEGRATION_INSTALLED: "Yes", + }, + }) + } finally { + Terminal.setTerminalZshOhMy(false) + } + }) + + it("adds Powerlevel10k integration env var when enabled", () => { + Terminal.setTerminalZshP10k(true) + try { + TerminalRegistry.createTerminal("/test/path") + + expect(mockCreateTerminal).toHaveBeenCalledWith({ + cwd: "/test/path", + name: "Roo Code", + iconPath: expect.any(Object), + env: { + PAGER: "cat", + VTE_VERSION: "0", + PROMPT_EOL_MARK: "", + POWERLEVEL9K_TERM_SHELL_INTEGRATION: "true", + }, + }) + } finally { + Terminal.setTerminalZshP10k(false) + } + }) }) }) diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 9f7d78be36..03834fdcf9 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -535,6 +535,8 @@ export const globalSettingsSchema = z.object({ terminalCommandDelay: z.number().optional(), terminalPowershellCounter: z.boolean().optional(), terminalZshClearEolMark: z.boolean().optional(), + terminalZshOhMy: z.boolean().optional(), + terminalZshP10k: z.boolean().optional(), rateLimitSeconds: z.number().optional(), diffEnabled: z.boolean().optional(), @@ -608,6 +610,8 @@ const globalSettingsRecord: GlobalSettingsRecord = { terminalCommandDelay: undefined, terminalPowershellCounter: undefined, terminalZshClearEolMark: undefined, + terminalZshOhMy: undefined, + terminalZshP10k: undefined, rateLimitSeconds: undefined, diffEnabled: undefined, diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 6e00f7e3b4..1c978e1b98 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -156,6 +156,8 @@ export type ExtensionState = Pick< | "terminalCommandDelay" | "terminalPowershellCounter" | "terminalZshClearEolMark" + | "terminalZshOhMy" + | "terminalZshP10k" | "diffEnabled" | "fuzzyMatchThreshold" // | "experiments" // Optional in GlobalSettings, required here. diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index 3fd74b99c5..987c6ef0ee 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -85,6 +85,8 @@ export interface WebviewMessage { | "terminalCommandDelay" | "terminalPowershellCounter" | "terminalZshClearEolMark" + | "terminalZshOhMy" + | "terminalZshP10k" | "mcpEnabled" | "enableMcpServerCreation" | "searchCommits" diff --git a/webview-ui/src/components/settings/SettingsView.tsx b/webview-ui/src/components/settings/SettingsView.tsx index 8384f2208e..16a6d29acb 100644 --- a/webview-ui/src/components/settings/SettingsView.tsx +++ b/webview-ui/src/components/settings/SettingsView.tsx @@ -132,6 +132,8 @@ const SettingsView = forwardRef(({ onDone, t terminalCommandDelay, terminalPowershellCounter, terminalZshClearEolMark, + terminalZshOhMy, + terminalZshP10k, writeDelayMs, showRooIgnoredFiles, remoteBrowserEnabled, @@ -243,6 +245,8 @@ const SettingsView = forwardRef(({ onDone, t vscode.postMessage({ type: "terminalCommandDelay", value: terminalCommandDelay }) vscode.postMessage({ type: "terminalPowershellCounter", bool: terminalPowershellCounter }) vscode.postMessage({ type: "terminalZshClearEolMark", bool: terminalZshClearEolMark }) + vscode.postMessage({ type: "terminalZshOhMy", bool: terminalZshOhMy }) + vscode.postMessage({ type: "terminalZshP10k", bool: terminalZshP10k }) vscode.postMessage({ type: "mcpEnabled", bool: mcpEnabled }) vscode.postMessage({ type: "alwaysApproveResubmit", bool: alwaysApproveResubmit }) vscode.postMessage({ type: "requestDelaySeconds", value: requestDelaySeconds }) @@ -490,6 +494,8 @@ const SettingsView = forwardRef(({ onDone, t terminalCommandDelay={terminalCommandDelay} terminalPowershellCounter={terminalPowershellCounter} terminalZshClearEolMark={terminalZshClearEolMark} + terminalZshOhMy={terminalZshOhMy} + terminalZshP10k={terminalZshP10k} setCachedStateField={setCachedStateField} /> diff --git a/webview-ui/src/components/settings/TerminalSettings.tsx b/webview-ui/src/components/settings/TerminalSettings.tsx index 613725d65b..0b97ca1ee3 100644 --- a/webview-ui/src/components/settings/TerminalSettings.tsx +++ b/webview-ui/src/components/settings/TerminalSettings.tsx @@ -16,12 +16,16 @@ type TerminalSettingsProps = HTMLAttributes & { terminalCommandDelay?: number terminalPowershellCounter?: boolean terminalZshClearEolMark?: boolean + terminalZshOhMy?: boolean + terminalZshP10k?: boolean setCachedStateField: SetCachedStateField< | "terminalOutputLineLimit" | "terminalShellIntegrationTimeout" | "terminalCommandDelay" | "terminalPowershellCounter" | "terminalZshClearEolMark" + | "terminalZshOhMy" + | "terminalZshP10k" > } @@ -31,6 +35,8 @@ export const TerminalSettings = ({ terminalCommandDelay, terminalPowershellCounter, terminalZshClearEolMark, + terminalZshOhMy, + terminalZshP10k, setCachedStateField, className, ...props @@ -131,6 +137,30 @@ export const TerminalSettings = ({ {t("settings:terminal.zshClearEolMark.description")} + +
+ setCachedStateField("terminalZshOhMy", e.target.checked)} + data-testid="terminal-zsh-oh-my-checkbox"> + {t("settings:terminal.zshOhMy.label")} + +
+ {t("settings:terminal.zshOhMy.description")} +
+
+ +
+ setCachedStateField("terminalZshP10k", e.target.checked)} + data-testid="terminal-zsh-p10k-checkbox"> + {t("settings:terminal.zshP10k.label")} + +
+ {t("settings:terminal.zshP10k.description")} +
+
) diff --git a/webview-ui/src/context/ExtensionStateContext.tsx b/webview-ui/src/context/ExtensionStateContext.tsx index 477c9f9f7c..a4dc2eca9a 100644 --- a/webview-ui/src/context/ExtensionStateContext.tsx +++ b/webview-ui/src/context/ExtensionStateContext.tsx @@ -158,6 +158,8 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode renderContext: "sidebar", maxReadFileLine: 500, // Default max read file line limit pinnedApiConfigs: {}, // Empty object for pinned API configs + terminalZshOhMy: false, // Default Oh My Zsh integration setting + terminalZshP10k: false, // Default Powerlevel10k integration setting }) const [didHydrateState, setDidHydrateState] = useState(false) @@ -165,7 +167,6 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode const [theme, setTheme] = useState(undefined) const [filePaths, setFilePaths] = useState([]) const [openedTabs, setOpenedTabs] = useState>([]) - const [mcpServers, setMcpServers] = useState([]) const [currentCheckpoint, setCurrentCheckpoint] = useState() diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index 42510a3687..eba65bd3c9 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Neteja la marca EOL de ZSH", "description": "Quan està habilitat, neteja la marca de final de línia de ZSH establint PROMPT_EOL_MARK=''. Això evita problemes amb la interpretació de la sortida de comandes quan acaba amb caràcters especials com '%'." + }, + "zshOhMy": { + "label": "Habilita la integració Oh My Zsh", + "description": "Quan està habilitat, estableix ITERM_SHELL_INTEGRATION_INSTALLED=Yes per habilitar les característiques d'integració del shell Oh My Zsh. (experimental)" + }, + "zshP10k": { + "label": "Habilita la integració Powerlevel10k", + "description": "Quan està habilitat, estableix POWERLEVEL9K_TERM_SHELL_INTEGRATION=true per habilitar les característiques d'integració del shell Powerlevel10k. (experimental)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index ce960f966d..4147623f0a 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "ZSH-Zeilenende-Markierung löschen", "description": "Wenn aktiviert, wird die ZSH-Zeilenende-Markierung durch Setzen von PROMPT_EOL_MARK='' gelöscht. Dies verhindert Probleme bei der Interpretation der Befehlsausgabe, wenn diese mit Sonderzeichen wie '%' endet." + }, + "zshOhMy": { + "label": "Oh My Zsh-Integration aktivieren", + "description": "Wenn aktiviert, wird ITERM_SHELL_INTEGRATION_INSTALLED=Yes gesetzt, um die Shell-Integrationsfunktionen von Oh My Zsh zu aktivieren. (experimentell)" + }, + "zshP10k": { + "label": "Powerlevel10k-Integration aktivieren", + "description": "Wenn aktiviert, wird POWERLEVEL9K_TERM_SHELL_INTEGRATION=true gesetzt, um die Shell-Integrationsfunktionen von Powerlevel10k zu aktivieren. (experimentell)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index fdb846156c..70955c932b 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Clear ZSH EOL mark", "description": "When enabled, clears the ZSH end-of-line mark by setting PROMPT_EOL_MARK=''. This prevents issues with command output interpretation when output ends with special characters like '%'." + }, + "zshOhMy": { + "label": "Enable Oh My Zsh integration", + "description": "When enabled, sets ITERM_SHELL_INTEGRATION_INSTALLED=Yes to enable Oh My Zsh shell integration features. (experimental)" + }, + "zshP10k": { + "label": "Enable Powerlevel10k integration", + "description": "When enabled, sets POWERLEVEL9K_TERM_SHELL_INTEGRATION=true to enable Powerlevel10k shell integration features. (experimental)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index 5fac4e5a41..744a91a843 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Limpiar marca de fin de línea de ZSH", "description": "Cuando está habilitado, limpia la marca de fin de línea de ZSH estableciendo PROMPT_EOL_MARK=''. Esto evita problemas con la interpretación de la salida de comandos cuando termina con caracteres especiales como '%'." + }, + "zshOhMy": { + "label": "Habilitar integración Oh My Zsh", + "description": "Cuando está habilitado, establece ITERM_SHELL_INTEGRATION_INSTALLED=Yes para habilitar las características de integración del shell Oh My Zsh. (experimental)" + }, + "zshP10k": { + "label": "Habilitar integración Powerlevel10k", + "description": "Cuando está habilitado, establece POWERLEVEL9K_TERM_SHELL_INTEGRATION=true para habilitar las características de integración del shell Powerlevel10k. (experimental)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index f98c940663..eabb55aca1 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Effacer la marque de fin de ligne ZSH", "description": "Lorsqu'activé, efface la marque de fin de ligne ZSH en définissant PROMPT_EOL_MARK=''. Cela évite les problèmes d'interprétation de la sortie des commandes lorsqu'elle se termine par des caractères spéciaux comme '%'." + }, + "zshOhMy": { + "label": "Activer l'intégration Oh My Zsh", + "description": "Lorsqu'activé, définit ITERM_SHELL_INTEGRATION_INSTALLED=Yes pour activer les fonctionnalités d'intégration du shell Oh My Zsh. (expérimental)" + }, + "zshP10k": { + "label": "Activer l'intégration Powerlevel10k", + "description": "Lorsqu'activé, définit POWERLEVEL9K_TERM_SHELL_INTEGRATION=true pour activer les fonctionnalités d'intégration du shell Powerlevel10k. (expérimental)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index dc1f1b2712..b8ae551287 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "ZSH EOL मार्क साफ़ करें", "description": "सक्षम होने पर, PROMPT_EOL_MARK='' सेट करके ZSH लाइन-समाप्ति मार्क को साफ़ करता है। यह कमांड आउटपुट की व्याख्या में समस्याओं को रोकता है जब आउटपुट '%' जैसे विशेष वर्णों के साथ समाप्त होता है।" + }, + "zshOhMy": { + "label": "Oh My Zsh एकीकरण सक्षम करें", + "description": "सक्षम होने पर, Oh My Zsh शेल एकीकरण सुविधाओं को सक्षम करने के लिए ITERM_SHELL_INTEGRATION_INSTALLED=Yes सेट करता है। (प्रयोगात्मक)" + }, + "zshP10k": { + "label": "Powerlevel10k एकीकरण सक्षम करें", + "description": "सक्षम होने पर, Powerlevel10k शेल एकीकरण सुविधाओं को सक्षम करने के लिए POWERLEVEL9K_TERM_SHELL_INTEGRATION=true सेट करता है। (प्रयोगात्मक)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 69fe311b86..3cade75da0 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Cancella marcatore fine riga ZSH", "description": "Quando abilitato, cancella il marcatore di fine riga ZSH impostando PROMPT_EOL_MARK=''. Questo previene problemi con l'interpretazione dell'output dei comandi quando termina con caratteri speciali come '%'." + }, + "zshOhMy": { + "label": "Abilita integrazione Oh My Zsh", + "description": "Quando abilitato, imposta ITERM_SHELL_INTEGRATION_INSTALLED=Yes per abilitare le funzionalità di integrazione della shell Oh My Zsh. (sperimentale)" + }, + "zshP10k": { + "label": "Abilita integrazione Powerlevel10k", + "description": "Quando abilitato, imposta POWERLEVEL9K_TERM_SHELL_INTEGRATION=true per abilitare le funzionalità di integrazione della shell Powerlevel10k. (sperimentale)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index 7c76d7afd7..06a49e161d 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "ZSH行末マークをクリア", "description": "有効にすると、PROMPT_EOL_MARK=''を設定してZSHの行末マークをクリアします。これにより、'%'などの特殊文字で終わるコマンド出力の解釈に関する問題を防ぎます。" + }, + "zshOhMy": { + "label": "Oh My Zsh 統合を有効化", + "description": "有効にすると、ITERM_SHELL_INTEGRATION_INSTALLED=Yes を設定して Oh My Zsh シェル統合機能を有効にします。(実験的)" + }, + "zshP10k": { + "label": "Powerlevel10k 統合を有効化", + "description": "有効にすると、POWERLEVEL9K_TERM_SHELL_INTEGRATION=true を設定して Powerlevel10k シェル統合機能を有効にします。(実験的)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index 9d1ec745f2..5461f32907 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "ZSH 줄 끝 표시 지우기", "description": "활성화하면 PROMPT_EOL_MARK=''를 설정하여 ZSH 줄 끝 표시를 지웁니다. 이는 '%'와 같은 특수 문자로 끝나는 명령 출력 해석의 문제를 방지합니다." + }, + "zshOhMy": { + "label": "Oh My Zsh 통합 활성화", + "description": "활성화하면 ITERM_SHELL_INTEGRATION_INSTALLED=Yes를 설정하여 Oh My Zsh 셸 통합 기능을 활성화합니다. (실험적)" + }, + "zshP10k": { + "label": "Powerlevel10k 통합 활성화", + "description": "활성화하면 POWERLEVEL9K_TERM_SHELL_INTEGRATION=true를 설정하여 Powerlevel10k 셸 통합 기능을 활성화합니다. (실험적)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 1ec0b3d7fd..28d718bc5a 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Wyczyść znacznik końca linii ZSH", "description": "Po włączeniu czyści znacznik końca linii ZSH poprzez ustawienie PROMPT_EOL_MARK=''. Zapobiega to problemom z interpretacją wyjścia poleceń, gdy kończy się ono znakami specjalnymi jak '%'." + }, + "zshOhMy": { + "label": "Włącz integrację Oh My Zsh", + "description": "Po włączeniu ustawia ITERM_SHELL_INTEGRATION_INSTALLED=Yes, aby włączyć funkcje integracji powłoki Oh My Zsh. (eksperymentalne)" + }, + "zshP10k": { + "label": "Włącz integrację Powerlevel10k", + "description": "Po włączeniu ustawia POWERLEVEL9K_TERM_SHELL_INTEGRATION=true, aby włączyć funkcje integracji powłoki Powerlevel10k. (eksperymentalne)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index f9670b1edc..e1bdb00015 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Limpar marca de fim de linha do ZSH", "description": "Quando ativado, limpa a marca de fim de linha do ZSH definindo PROMPT_EOL_MARK=''. Isso evita problemas com a interpretação da saída de comandos quando termina com caracteres especiais como '%'." + }, + "zshOhMy": { + "label": "Ativar integração Oh My Zsh", + "description": "Quando ativado, define ITERM_SHELL_INTEGRATION_INSTALLED=Yes para habilitar os recursos de integração do shell Oh My Zsh. (experimental)" + }, + "zshP10k": { + "label": "Ativar integração Powerlevel10k", + "description": "Quando ativado, define POWERLEVEL9K_TERM_SHELL_INTEGRATION=true para habilitar os recursos de integração do shell Powerlevel10k. (experimental)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index 25538115e5..14c147cc48 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "ZSH satır sonu işaretini temizle", "description": "Etkinleştirildiğinde, PROMPT_EOL_MARK='' ayarlanarak ZSH satır sonu işaretini temizler. Bu, '%' gibi özel karakterlerle biten komut çıktılarının yorumlanmasında sorun yaşanmasını önler." + }, + "zshOhMy": { + "label": "Oh My Zsh entegrasyonunu etkinleştir", + "description": "Etkinleştirildiğinde, Oh My Zsh kabuk entegrasyon özelliklerini etkinleştirmek için ITERM_SHELL_INTEGRATION_INSTALLED=Yes ayarlar. (deneysel)" + }, + "zshP10k": { + "label": "Powerlevel10k entegrasyonunu etkinleştir", + "description": "Etkinleştirildiğinde, Powerlevel10k kabuk entegrasyon özelliklerini etkinleştirmek için POWERLEVEL9K_TERM_SHELL_INTEGRATION=true ayarlar. (deneysel)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index c886481aa8..69f76bac13 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "Xóa dấu cuối dòng ZSH", "description": "Khi được bật, xóa dấu cuối dòng ZSH bằng cách đặt PROMPT_EOL_MARK=''. Điều này ngăn chặn các vấn đề về diễn giải đầu ra lệnh khi kết thúc bằng các ký tự đặc biệt như '%'." + }, + "zshOhMy": { + "label": "Bật tích hợp Oh My Zsh", + "description": "Khi được bật, đặt ITERM_SHELL_INTEGRATION_INSTALLED=Yes để kích hoạt các tính năng tích hợp shell của Oh My Zsh. (thử nghiệm)" + }, + "zshP10k": { + "label": "Bật tích hợp Powerlevel10k", + "description": "Khi được bật, đặt POWERLEVEL9K_TERM_SHELL_INTEGRATION=true để kích hoạt các tính năng tích hợp shell của Powerlevel10k. (thử nghiệm)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index aefd000c50..8d4f1ed593 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "清除 ZSH 行尾标记", "description": "启用后,通过设置 PROMPT_EOL_MARK='' 清除 ZSH 行尾标记。这可以防止命令输出以特殊字符(如 '%')结尾时的解析问题。" + }, + "zshOhMy": { + "label": "启用 Oh My Zsh 集成", + "description": "启用后,设置 ITERM_SHELL_INTEGRATION_INSTALLED=Yes 以启用 Oh My Zsh shell 集成功能。(实验性)" + }, + "zshP10k": { + "label": "启用 Powerlevel10k 集成", + "description": "启用后,设置 POWERLEVEL9K_TERM_SHELL_INTEGRATION=true 以启用 Powerlevel10k shell 集成功能。(实验性)" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index e223dd6283..d3e6dc9280 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -313,6 +313,14 @@ "zshClearEolMark": { "label": "清除 ZSH 行尾標記", "description": "啟用後,透過設定 PROMPT_EOL_MARK='' 清除 ZSH 行尾標記。這可以防止命令輸出以特殊字元(如 '%')結尾時的解析問題。" + }, + "zshOhMy": { + "label": "啟用 Oh My Zsh 整合", + "description": "啟用後,設定 ITERM_SHELL_INTEGRATION_INSTALLED=Yes 以啟用 Oh My Zsh shell 整合功能。(實驗性)" + }, + "zshP10k": { + "label": "啟用 Powerlevel10k 整合", + "description": "啟用後,設定 POWERLEVEL9K_TERM_SHELL_INTEGRATION=true 以啟用 Powerlevel10k shell 整合功能。(實驗性)" } }, "advanced": {