diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index eab3731380..f87c23ff15 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -351,11 +351,23 @@ export class ClineProvider extends EventEmitter implements } // Initialize out-of-scope variables that need to recieve persistent global state values - this.getState().then(({ soundEnabled, terminalShellIntegrationTimeout, terminalCommandDelay }) => { - setSoundEnabled(soundEnabled ?? false) - Terminal.setShellIntegrationTimeout(terminalShellIntegrationTimeout ?? TERMINAL_SHELL_INTEGRATION_TIMEOUT) - Terminal.setCommandDelay(terminalCommandDelay ?? 0) - }) + this.getState().then( + ({ + soundEnabled, + terminalShellIntegrationTimeout, + terminalCommandDelay, + terminalZshClearEolMark, + terminalPowershellCounter, + }) => { + setSoundEnabled(soundEnabled ?? false) + Terminal.setShellIntegrationTimeout( + terminalShellIntegrationTimeout ?? TERMINAL_SHELL_INTEGRATION_TIMEOUT, + ) + Terminal.setCommandDelay(terminalCommandDelay ?? 0) + Terminal.setTerminalZshClearEolMark(terminalZshClearEolMark ?? true) + Terminal.setPowershellCounter(terminalPowershellCounter ?? false) + }, + ) // Initialize tts enabled state this.getState().then(({ ttsEnabled }) => { @@ -1200,6 +1212,7 @@ export class ClineProvider extends EventEmitter implements terminalShellIntegrationTimeout, terminalCommandDelay, terminalPowershellCounter, + terminalZshClearEolMark, fuzzyMatchThreshold, mcpEnabled, enableMcpServerCreation, @@ -1269,6 +1282,7 @@ export class ClineProvider extends EventEmitter implements terminalShellIntegrationTimeout: terminalShellIntegrationTimeout ?? TERMINAL_SHELL_INTEGRATION_TIMEOUT, terminalCommandDelay: terminalCommandDelay ?? 0, terminalPowershellCounter: terminalPowershellCounter ?? false, + terminalZshClearEolMark: terminalZshClearEolMark ?? true, fuzzyMatchThreshold: fuzzyMatchThreshold ?? 1.0, mcpEnabled: mcpEnabled ?? true, enableMcpServerCreation: enableMcpServerCreation ?? true, @@ -1357,6 +1371,7 @@ export class ClineProvider extends EventEmitter implements stateValues.terminalShellIntegrationTimeout ?? TERMINAL_SHELL_INTEGRATION_TIMEOUT, terminalCommandDelay: stateValues.terminalCommandDelay ?? 0, terminalPowershellCounter: stateValues.terminalPowershellCounter ?? false, + terminalZshClearEolMark: stateValues.terminalZshClearEolMark ?? true, 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 9a630eb8b5..3a02e0f937 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -750,6 +750,13 @@ export const webviewMessageHandler = async (provider: ClineProvider, message: We Terminal.setPowershellCounter(message.bool) } break + case "terminalZshClearEolMark": + await updateGlobalState("terminalZshClearEolMark", message.bool) + await provider.postStateToWebview() + if (message.bool !== undefined) { + Terminal.setTerminalZshClearEolMark(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 e0627840f8..0aba68638c 100644 --- a/src/exports/roo-code.d.ts +++ b/src/exports/roo-code.d.ts @@ -268,6 +268,7 @@ type GlobalSettings = { terminalShellIntegrationTimeout?: number | undefined terminalCommandDelay?: number | undefined terminalPowershellCounter?: boolean | undefined + terminalZshClearEolMark?: boolean | undefined rateLimitSeconds?: number | undefined diffEnabled?: boolean | undefined fuzzyMatchThreshold?: number | undefined diff --git a/src/exports/types.ts b/src/exports/types.ts index 061ddf3aab..9a53ecdc7c 100644 --- a/src/exports/types.ts +++ b/src/exports/types.ts @@ -271,6 +271,7 @@ type GlobalSettings = { terminalShellIntegrationTimeout?: number | undefined terminalCommandDelay?: number | undefined terminalPowershellCounter?: boolean | undefined + terminalZshClearEolMark?: 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 a0b14976ca..ed6dfd62bf 100644 --- a/src/integrations/terminal/Terminal.ts +++ b/src/integrations/terminal/Terminal.ts @@ -9,6 +9,7 @@ export class Terminal { private static shellIntegrationTimeout: number = TERMINAL_SHELL_INTEGRATION_TIMEOUT private static commandDelay: number = 0 private static powershellCounter: boolean = false + private static terminalZshClearEolMark: boolean = true public terminal: vscode.Terminal public busy: boolean @@ -294,6 +295,22 @@ export class Terminal { return Terminal.powershellCounter } + /** + * Sets whether to clear the ZSH EOL mark + * @param enabled Whether to clear the ZSH EOL mark + */ + public static setTerminalZshClearEolMark(enabled: boolean): void { + Terminal.terminalZshClearEolMark = enabled + } + + /** + * Gets whether to clear the ZSH EOL mark + * @returns Whether the ZSH EOL mark clearing is enabled + */ + public static getTerminalZshClearEolMark(): boolean { + return Terminal.terminalZshClearEolMark + } + 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 fc21c8c924..8dcf375225 100644 --- a/src/integrations/terminal/TerminalRegistry.ts +++ b/src/integrations/terminal/TerminalRegistry.ts @@ -125,6 +125,12 @@ export class TerminalRegistry { env.PROMPT_COMMAND = `sleep ${Terminal.getCommandDelay() / 1000}` } + // Clear the ZSH EOL mark to prevent issues with command output interpretation + // when output ends with special characters like '%' + if (Terminal.getTerminalZshClearEolMark()) { + env.PROMPT_EOL_MARK = "" + } + const terminal = vscode.window.createTerminal({ cwd, name: "Roo Code", diff --git a/src/integrations/terminal/__tests__/TerminalRegistry.test.ts b/src/integrations/terminal/__tests__/TerminalRegistry.test.ts index ed530d5f32..5b9d42f92d 100644 --- a/src/integrations/terminal/__tests__/TerminalRegistry.test.ts +++ b/src/integrations/terminal/__tests__/TerminalRegistry.test.ts @@ -33,6 +33,7 @@ describe("TerminalRegistry", () => { env: { PAGER: "cat", VTE_VERSION: "0", + PROMPT_EOL_MARK: "", }, }) }) @@ -53,6 +54,7 @@ describe("TerminalRegistry", () => { PAGER: "cat", PROMPT_COMMAND: "sleep 0.05", VTE_VERSION: "0", + PROMPT_EOL_MARK: "", }, }) } finally { diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 5e80b34653..9f7d78be36 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -534,6 +534,7 @@ export const globalSettingsSchema = z.object({ terminalShellIntegrationTimeout: z.number().optional(), terminalCommandDelay: z.number().optional(), terminalPowershellCounter: z.boolean().optional(), + terminalZshClearEolMark: z.boolean().optional(), rateLimitSeconds: z.number().optional(), diffEnabled: z.boolean().optional(), @@ -606,6 +607,7 @@ const globalSettingsRecord: GlobalSettingsRecord = { terminalShellIntegrationTimeout: undefined, terminalCommandDelay: undefined, terminalPowershellCounter: undefined, + terminalZshClearEolMark: undefined, rateLimitSeconds: undefined, diffEnabled: undefined, diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index fe8a1f5a25..6e00f7e3b4 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -155,6 +155,7 @@ export type ExtensionState = Pick< | "terminalShellIntegrationTimeout" | "terminalCommandDelay" | "terminalPowershellCounter" + | "terminalZshClearEolMark" | "diffEnabled" | "fuzzyMatchThreshold" // | "experiments" // Optional in GlobalSettings, required here. diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index 122b6c78b0..3fd74b99c5 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -84,6 +84,7 @@ export interface WebviewMessage { | "terminalShellIntegrationTimeout" | "terminalCommandDelay" | "terminalPowershellCounter" + | "terminalZshClearEolMark" | "mcpEnabled" | "enableMcpServerCreation" | "searchCommits" diff --git a/webview-ui/src/components/settings/SettingsView.tsx b/webview-ui/src/components/settings/SettingsView.tsx index c21b5d2c00..8384f2208e 100644 --- a/webview-ui/src/components/settings/SettingsView.tsx +++ b/webview-ui/src/components/settings/SettingsView.tsx @@ -131,6 +131,7 @@ const SettingsView = forwardRef(({ onDone, t terminalShellIntegrationTimeout, terminalCommandDelay, terminalPowershellCounter, + terminalZshClearEolMark, writeDelayMs, showRooIgnoredFiles, remoteBrowserEnabled, @@ -241,6 +242,7 @@ const SettingsView = forwardRef(({ onDone, t vscode.postMessage({ type: "terminalShellIntegrationTimeout", value: terminalShellIntegrationTimeout }) vscode.postMessage({ type: "terminalCommandDelay", value: terminalCommandDelay }) vscode.postMessage({ type: "terminalPowershellCounter", bool: terminalPowershellCounter }) + vscode.postMessage({ type: "terminalZshClearEolMark", bool: terminalZshClearEolMark }) vscode.postMessage({ type: "mcpEnabled", bool: mcpEnabled }) vscode.postMessage({ type: "alwaysApproveResubmit", bool: alwaysApproveResubmit }) vscode.postMessage({ type: "requestDelaySeconds", value: requestDelaySeconds }) @@ -487,6 +489,7 @@ const SettingsView = forwardRef(({ onDone, t terminalShellIntegrationTimeout={terminalShellIntegrationTimeout} terminalCommandDelay={terminalCommandDelay} terminalPowershellCounter={terminalPowershellCounter} + terminalZshClearEolMark={terminalZshClearEolMark} setCachedStateField={setCachedStateField} /> diff --git a/webview-ui/src/components/settings/TerminalSettings.tsx b/webview-ui/src/components/settings/TerminalSettings.tsx index 7029549366..613725d65b 100644 --- a/webview-ui/src/components/settings/TerminalSettings.tsx +++ b/webview-ui/src/components/settings/TerminalSettings.tsx @@ -15,11 +15,13 @@ type TerminalSettingsProps = HTMLAttributes & { terminalShellIntegrationTimeout?: number terminalCommandDelay?: number terminalPowershellCounter?: boolean + terminalZshClearEolMark?: boolean setCachedStateField: SetCachedStateField< | "terminalOutputLineLimit" | "terminalShellIntegrationTimeout" | "terminalCommandDelay" | "terminalPowershellCounter" + | "terminalZshClearEolMark" > } @@ -28,6 +30,7 @@ export const TerminalSettings = ({ terminalShellIntegrationTimeout, terminalCommandDelay, terminalPowershellCounter, + terminalZshClearEolMark, setCachedStateField, className, ...props @@ -116,6 +119,18 @@ export const TerminalSettings = ({ {t("settings:terminal.powershellCounter.description")} + +
+ setCachedStateField("terminalZshClearEolMark", e.target.checked)} + data-testid="terminal-zsh-clear-eol-mark-checkbox"> + {t("settings:terminal.zshClearEolMark.label")} + +
+ {t("settings:terminal.zshClearEolMark.description")} +
+
) diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index 8b0e617abe..42510a3687 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Habilita la solució temporal del comptador PowerShell", "description": "Quan està habilitat, afegeix un comptador a les comandes PowerShell per assegurar l'execució correcta de les comandes. Això ajuda amb els terminals PowerShell que poden tenir problemes amb la captura de sortida." + }, + "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 '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index ba37047aef..ce960f966d 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "PowerShell-Zähler-Workaround aktivieren", "description": "Wenn aktiviert, fügt einen Zähler zu PowerShell-Befehlen hinzu, um die korrekte Befehlsausführung sicherzustellen. Dies hilft bei PowerShell-Terminals, die Probleme mit der Ausgabeerfassung haben könnten." + }, + "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." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index 129e6826db..fdb846156c 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Enable PowerShell counter workaround", "description": "When enabled, adds a counter to PowerShell commands to ensure proper command execution. This helps with PowerShell terminals that might have issues with command output capture." + }, + "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 '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index fe8b5ad1f8..5fac4e5a41 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Habilitar solución temporal del contador de PowerShell", "description": "Cuando está habilitado, agrega un contador a los comandos de PowerShell para garantizar la ejecución correcta de los comandos. Esto ayuda con las terminales PowerShell que pueden tener problemas con la captura de salida de comandos." + }, + "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 '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index f4fa875ba3..f98c940663 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Activer le contournement du compteur PowerShell", "description": "Lorsqu'activé, ajoute un compteur aux commandes PowerShell pour assurer une exécution correcte des commandes. Cela aide avec les terminaux PowerShell qui peuvent avoir des problèmes de capture de sortie." + }, + "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 '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index 0c421d7198..dc1f1b2712 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "PowerShell काउंटर समाधान सक्षम करें", "description": "सक्षम होने पर, कमांड के सही निष्पादन को सुनिश्चित करने के लिए PowerShell कमांड में एक काउंटर जोड़ता है। यह उन PowerShell टर्मिनलों के साथ मदद करता है जिनमें आउटपुट कैप्चर करने में समस्याएं हो सकती हैं।" + }, + "zshClearEolMark": { + "label": "ZSH EOL मार्क साफ़ करें", + "description": "सक्षम होने पर, PROMPT_EOL_MARK='' सेट करके ZSH लाइन-समाप्ति मार्क को साफ़ करता है। यह कमांड आउटपुट की व्याख्या में समस्याओं को रोकता है जब आउटपुट '%' जैसे विशेष वर्णों के साथ समाप्त होता है।" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 25ce585bb0..69fe311b86 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Abilita soluzione temporanea contatore PowerShell", "description": "Quando abilitato, aggiunge un contatore ai comandi PowerShell per garantire la corretta esecuzione dei comandi. Questo aiuta con i terminali PowerShell che potrebbero avere problemi con la cattura dell'output." + }, + "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 '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index 21fa39ed03..7c76d7afd7 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "PowerShellカウンター回避策を有効化", "description": "有効にすると、PowerShellコマンドにカウンターを追加して、コマンドの正しい実行を確保します。これは出力のキャプチャに問題がある可能性のあるPowerShellターミナルで役立ちます。" + }, + "zshClearEolMark": { + "label": "ZSH行末マークをクリア", + "description": "有効にすると、PROMPT_EOL_MARK=''を設定してZSHの行末マークをクリアします。これにより、'%'などの特殊文字で終わるコマンド出力の解釈に関する問題を防ぎます。" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index ca1fe0c66b..9d1ec745f2 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "PowerShell 카운터 해결 방법 활성화", "description": "활성화하면 PowerShell 명령에 카운터를 추가하여 명령이 올바르게 실행되도록 합니다. 이는 명령 출력 캡처에 문제가 있을 수 있는 PowerShell 터미널에서 도움이 됩니다." + }, + "zshClearEolMark": { + "label": "ZSH 줄 끝 표시 지우기", + "description": "활성화하면 PROMPT_EOL_MARK=''를 설정하여 ZSH 줄 끝 표시를 지웁니다. 이는 '%'와 같은 특수 문자로 끝나는 명령 출력 해석의 문제를 방지합니다." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 6f3e553de2..1ec0b3d7fd 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Włącz obejście licznika PowerShell", "description": "Po włączeniu dodaje licznik do poleceń PowerShell, aby zapewnić prawidłowe wykonanie poleceń. Pomaga to w terminalach PowerShell, które mogą mieć problemy z przechwytywaniem wyjścia." + }, + "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 '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index a1a9e04c03..f9670b1edc 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Ativar solução alternativa do contador PowerShell", "description": "Quando ativado, adiciona um contador aos comandos PowerShell para garantir a execução correta dos comandos. Isso ajuda com terminais PowerShell que podem ter problemas com a captura de saída." + }, + "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 '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index 9d9aff5ae6..25538115e5 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "PowerShell sayaç geçici çözümünü etkinleştir", "description": "Etkinleştirildiğinde, komutların doğru şekilde yürütülmesini sağlamak için PowerShell komutlarına bir sayaç ekler. Bu, çıktı yakalama sorunları yaşayabilecek PowerShell terminallerinde yardımcı olur." + }, + "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." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index 1fd61d9e53..c886481aa8 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "Bật giải pháp bộ đếm PowerShell", "description": "Khi được bật, thêm một bộ đếm vào các lệnh PowerShell để đảm bảo thực thi lệnh chính xác. Điều này giúp ích với các terminal PowerShell có thể gặp vấn đề về ghi lại đầu ra." + }, + "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ư '%'." } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index fb36e431b5..aefd000c50 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "启用 PowerShell 计数器解决方案", "description": "启用后,会在 PowerShell 命令中添加计数器以确保命令正确执行。这有助于解决可能存在输出捕获问题的 PowerShell 终端。" + }, + "zshClearEolMark": { + "label": "清除 ZSH 行尾标记", + "description": "启用后,通过设置 PROMPT_EOL_MARK='' 清除 ZSH 行尾标记。这可以防止命令输出以特殊字符(如 '%')结尾时的解析问题。" } }, "advanced": { diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index 6a600695f4..e223dd6283 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -309,6 +309,10 @@ "powershellCounter": { "label": "啟用 PowerShell 計數器解決方案", "description": "啟用後,會在 PowerShell 命令中加入計數器以確保命令正確執行。這有助於解決可能存在輸出擷取問題的 PowerShell 終端機。" + }, + "zshClearEolMark": { + "label": "清除 ZSH 行尾標記", + "description": "啟用後,透過設定 PROMPT_EOL_MARK='' 清除 ZSH 行尾標記。這可以防止命令輸出以特殊字元(如 '%')結尾時的解析問題。" } }, "advanced": {