From 10ca937678e10f2156ba81e3763d1bbad38f022a Mon Sep 17 00:00:00 2001 From: Will Li Date: Wed, 2 Jul 2025 16:04:08 -0700 Subject: [PATCH] new UI for edit --- src/core/webview/webviewMessageHandler.ts | 38 +++++++++++++++++------ src/i18n/locales/ca/common.json | 7 +++-- src/i18n/locales/de/common.json | 7 +++-- src/i18n/locales/en/common.json | 7 +++-- src/i18n/locales/es/common.json | 7 +++-- src/i18n/locales/fr/common.json | 7 +++-- src/i18n/locales/hi/common.json | 7 +++-- src/i18n/locales/id/common.json | 7 +++-- src/i18n/locales/it/common.json | 7 +++-- src/i18n/locales/ja/common.json | 7 +++-- src/i18n/locales/ko/common.json | 7 +++-- src/i18n/locales/nl/common.json | 7 +++-- src/i18n/locales/pl/common.json | 7 +++-- src/i18n/locales/pt-BR/common.json | 7 +++-- src/i18n/locales/ru/common.json | 6 +++- src/i18n/locales/tr/common.json | 6 +++- src/i18n/locales/vi/common.json | 6 +++- src/i18n/locales/zh-CN/common.json | 7 +++-- src/i18n/locales/zh-TW/common.json | 7 +++-- 19 files changed, 118 insertions(+), 43 deletions(-) diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index da79dd2e85..6cf07a9ed3 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -67,18 +67,26 @@ export const webviewMessageHandler = async ( operation: "delete" | "edit", editedContent?: string, ): Promise => { + // Different visual order of options based on operation type + const options = + operation === "edit" + ? [ + t("common:confirmation.edit_this_and_delete_subsequent"), + t("common:confirmation.edit_just_this_message"), + ] + : [ + t("common:confirmation.delete_just_this_message"), + t("common:confirmation.delete_this_and_subsequent"), + ] + const answer = await vscode.window.showInformationMessage( - t("common:confirmation.delete_message"), + operation === "edit" ? t("common:confirmation.edit_message") : t("common:confirmation.delete_message"), { modal: true }, - t("common:confirmation.just_this_message"), - t("common:confirmation.this_and_subsequent"), + ...options, ) - if ( - (answer === t("common:confirmation.just_this_message") || - answer === t("common:confirmation.this_and_subsequent")) && - provider.getCurrentCline() - ) { + // Only proceed if user selected one of the options and we have a current cline + if (answer && options.includes(answer) && provider.getCurrentCline()) { const timeCutoff = messageTs - 1000 // 1 second buffer before the message const currentCline = provider.getCurrentCline()! @@ -92,7 +100,12 @@ export const webviewMessageHandler = async ( try { const { historyItem } = await provider.getTaskWithId(currentCline.taskId) - if (answer === t("common:confirmation.just_this_message")) { + // Check if user selected the "just this message" option + // For delete: options[0], for edit: options[1] + if ( + (operation === "delete" && answer === options[0]) || + (operation === "edit" && answer === options[1]) + ) { // Find the next user message first const nextUserMessage = currentCline.clineMessages .slice(messageIndex + 1) @@ -132,7 +145,12 @@ export const webviewMessageHandler = async ( ) } } - } else if (answer === t("common:confirmation.this_and_subsequent")) { + } else if ( + // Check if user selected the "this and subsequent" option + // For delete: options[1], for edit: options[0] + (operation === "delete" && answer === options[1]) || + (operation === "edit" && answer === options[0]) + ) { // Delete this message and all that follow await currentCline.overwriteClineMessages(currentCline.clineMessages.slice(0, messageIndex)) diff --git a/src/i18n/locales/ca/common.json b/src/i18n/locales/ca/common.json index 380e905679..f3c651b9d7 100644 --- a/src/i18n/locales/ca/common.json +++ b/src/i18n/locales/ca/common.json @@ -23,8 +23,11 @@ "delete_config_profile": "Estàs segur que vols eliminar aquest perfil de configuració?", "delete_custom_mode": "Estàs segur que vols eliminar aquest mode personalitzat?", "delete_message": "Què vols eliminar?", - "just_this_message": "Només aquest missatge", - "this_and_subsequent": "Aquest i tots els missatges posteriors" + "edit_message": "Eliminar tots els missatges després d'aquest?", + "delete_just_this_message": "Només aquest missatge", + "edit_just_this_message": "No, només editar aquest", + "delete_this_and_subsequent": "Aquest i tots els missatges posteriors", + "edit_this_and_delete_subsequent": "Sí" }, "errors": { "invalid_data_uri": "Format d'URI de dades no vàlid", diff --git a/src/i18n/locales/de/common.json b/src/i18n/locales/de/common.json index 7615f1c52e..ec8ac6a481 100644 --- a/src/i18n/locales/de/common.json +++ b/src/i18n/locales/de/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "Möchtest du dieses Konfigurationsprofil wirklich löschen?", "delete_custom_mode": "Möchtest du diesen benutzerdefinierten Modus wirklich löschen?", "delete_message": "Was möchtest du löschen?", - "just_this_message": "Nur diese Nachricht", - "this_and_subsequent": "Diese und alle nachfolgenden Nachrichten" + "edit_message": "Alle Nachrichten nach dieser löschen?", + "delete_just_this_message": "Nur diese Nachricht", + "edit_just_this_message": "Nein, nur diese bearbeiten", + "delete_this_and_subsequent": "Diese und alle nachfolgenden Nachrichten", + "edit_this_and_delete_subsequent": "Ja" }, "errors": { "invalid_data_uri": "Ungültiges Daten-URI-Format", diff --git a/src/i18n/locales/en/common.json b/src/i18n/locales/en/common.json index ea432436ed..307508f566 100644 --- a/src/i18n/locales/en/common.json +++ b/src/i18n/locales/en/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "Are you sure you want to delete this configuration profile?", "delete_custom_mode": "Are you sure you want to delete this custom mode?", "delete_message": "What would you like to delete?", - "just_this_message": "Just this message", - "this_and_subsequent": "This and all subsequent messages" + "edit_message": "Delete all messages after this one?", + "delete_just_this_message": "Just this message", + "edit_just_this_message": "No, just edit this one", + "delete_this_and_subsequent": "This and all subsequent messages", + "edit_this_and_delete_subsequent": "Yes" }, "errors": { "invalid_data_uri": "Invalid data URI format", diff --git a/src/i18n/locales/es/common.json b/src/i18n/locales/es/common.json index ebdbdf642d..3e54265a4a 100644 --- a/src/i18n/locales/es/common.json +++ b/src/i18n/locales/es/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "¿Estás seguro de que deseas eliminar este perfil de configuración?", "delete_custom_mode": "¿Estás seguro de que deseas eliminar este modo personalizado?", "delete_message": "¿Qué deseas eliminar?", - "just_this_message": "Solo este mensaje", - "this_and_subsequent": "Este y todos los mensajes posteriores" + "edit_message": "¿Eliminar todos los mensajes posteriores a este?", + "delete_just_this_message": "Solo este mensaje", + "edit_just_this_message": "No, solo editar este", + "delete_this_and_subsequent": "Este y todos los mensajes posteriores", + "edit_this_and_delete_subsequent": "Sí" }, "errors": { "invalid_data_uri": "Formato de URI de datos no válido", diff --git a/src/i18n/locales/fr/common.json b/src/i18n/locales/fr/common.json index afaae4fdf2..a073484f6f 100644 --- a/src/i18n/locales/fr/common.json +++ b/src/i18n/locales/fr/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "Êtes-vous sûr de vouloir supprimer ce profil de configuration ?", "delete_custom_mode": "Êtes-vous sûr de vouloir supprimer ce mode personnalisé ?", "delete_message": "Que souhaitez-vous supprimer ?", - "just_this_message": "Uniquement ce message", - "this_and_subsequent": "Ce message et tous les messages suivants" + "edit_message": "Supprimer tous les messages après celui-ci ?", + "delete_just_this_message": "Uniquement ce message", + "edit_just_this_message": "Non, modifier uniquement celui-ci", + "delete_this_and_subsequent": "Ce message et tous les messages suivants", + "edit_this_and_delete_subsequent": "Oui" }, "errors": { "invalid_data_uri": "Format d'URI de données invalide", diff --git a/src/i18n/locales/hi/common.json b/src/i18n/locales/hi/common.json index 8d62e8c9b6..7381e2b178 100644 --- a/src/i18n/locales/hi/common.json +++ b/src/i18n/locales/hi/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "क्या आप वाकई इस कॉन्फ़िगरेशन प्रोफ़ाइल को हटाना चाहते हैं?", "delete_custom_mode": "क्या आप वाकई इस कस्टम मोड को हटाना चाहते हैं?", "delete_message": "आप क्या हटाना चाहते हैं?", - "just_this_message": "सिर्फ यह संदेश", - "this_and_subsequent": "यह और सभी बाद के संदेश" + "edit_message": "इसके बाद के सभी संदेशों को हटाएं?", + "delete_just_this_message": "सिर्फ यह संदेश", + "edit_just_this_message": "नहीं, केवल इसे संपादित करें", + "delete_this_and_subsequent": "यह और सभी बाद के संदेश", + "edit_this_and_delete_subsequent": "हां" }, "errors": { "invalid_data_uri": "अमान्य डेटा URI फॉर्मेट", diff --git a/src/i18n/locales/id/common.json b/src/i18n/locales/id/common.json index e89b2a5984..8ea7f9f5e2 100644 --- a/src/i18n/locales/id/common.json +++ b/src/i18n/locales/id/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "Apakah kamu yakin ingin menghapus profil konfigurasi ini?", "delete_custom_mode": "Apakah kamu yakin ingin menghapus mode kustom ini?", "delete_message": "Apa yang ingin kamu hapus?", - "just_this_message": "Hanya pesan ini", - "this_and_subsequent": "Ini dan semua pesan selanjutnya" + "edit_message": "Hapus semua pesan setelah ini?", + "delete_just_this_message": "Hanya pesan ini", + "edit_just_this_message": "Tidak, hanya edit yang ini", + "delete_this_and_subsequent": "Ini dan semua pesan selanjutnya", + "edit_this_and_delete_subsequent": "Ya" }, "errors": { "invalid_data_uri": "Format data URI tidak valid", diff --git a/src/i18n/locales/it/common.json b/src/i18n/locales/it/common.json index efec777588..c0d2bb7b1c 100644 --- a/src/i18n/locales/it/common.json +++ b/src/i18n/locales/it/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "Sei sicuro di voler eliminare questo profilo di configurazione?", "delete_custom_mode": "Sei sicuro di voler eliminare questa modalità personalizzata?", "delete_message": "Cosa desideri eliminare?", - "just_this_message": "Solo questo messaggio", - "this_and_subsequent": "Questo e tutti i messaggi successivi" + "edit_message": "Eliminare tutti i messaggi dopo questo?", + "delete_just_this_message": "Solo questo messaggio", + "edit_just_this_message": "No, modifica solo questo", + "delete_this_and_subsequent": "Questo e tutti i messaggi successivi", + "edit_this_and_delete_subsequent": "Sì" }, "errors": { "invalid_data_uri": "Formato URI dati non valido", diff --git a/src/i18n/locales/ja/common.json b/src/i18n/locales/ja/common.json index 68290afdb2..d3a38191b2 100644 --- a/src/i18n/locales/ja/common.json +++ b/src/i18n/locales/ja/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "この設定プロファイルを削除してもよろしいですか?", "delete_custom_mode": "このカスタムモードを削除してもよろしいですか?", "delete_message": "何を削除しますか?", - "just_this_message": "このメッセージのみ", - "this_and_subsequent": "これ以降のすべてのメッセージ" + "edit_message": "これ以降のメッセージをすべて削除しますか?", + "delete_just_this_message": "このメッセージのみ", + "edit_just_this_message": "いいえ、これだけを編集", + "delete_this_and_subsequent": "これ以降のすべてのメッセージ", + "edit_this_and_delete_subsequent": "はい" }, "errors": { "invalid_data_uri": "データURIフォーマットが無効です", diff --git a/src/i18n/locales/ko/common.json b/src/i18n/locales/ko/common.json index ac408a348a..8e8c87d760 100644 --- a/src/i18n/locales/ko/common.json +++ b/src/i18n/locales/ko/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "이 구성 프로필을 삭제하시겠습니까?", "delete_custom_mode": "이 사용자 지정 모드를 삭제하시겠습니까?", "delete_message": "무엇을 삭제하시겠습니까?", - "just_this_message": "이 메시지만", - "this_and_subsequent": "이 메시지와 모든 후속 메시지" + "edit_message": "이 메시지 이후의 모든 메시지를 삭제하시겠습니까?", + "delete_just_this_message": "이 메시지만", + "edit_just_this_message": "아니요, 이것만 편집", + "delete_this_and_subsequent": "이 메시지와 모든 후속 메시지", + "edit_this_and_delete_subsequent": "예" }, "errors": { "invalid_data_uri": "잘못된 데이터 URI 형식", diff --git a/src/i18n/locales/nl/common.json b/src/i18n/locales/nl/common.json index 8c336bebbb..48bf7b6fe3 100644 --- a/src/i18n/locales/nl/common.json +++ b/src/i18n/locales/nl/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "Weet je zeker dat je dit configuratieprofiel wilt verwijderen?", "delete_custom_mode": "Weet je zeker dat je deze aangepaste modus wilt verwijderen?", "delete_message": "Wat wil je verwijderen?", - "just_this_message": "Alleen dit bericht", - "this_and_subsequent": "Dit en alle volgende berichten" + "delete_just_this_message": "Alleen dit bericht", + "delete_this_and_subsequent": "Dit en alle volgende berichten", + "edit_message": "Alle berichten na dit bericht verwijderen?", + "edit_just_this_message": "Nee, alleen dit bericht bewerken", + "edit_this_and_delete_subsequent": "Ja" }, "errors": { "invalid_data_uri": "Ongeldig data-URI-formaat", diff --git a/src/i18n/locales/pl/common.json b/src/i18n/locales/pl/common.json index b5e9eb0f6b..95a8a5f96f 100644 --- a/src/i18n/locales/pl/common.json +++ b/src/i18n/locales/pl/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "Czy na pewno chcesz usunąć ten profil konfiguracyjny?", "delete_custom_mode": "Czy na pewno chcesz usunąć ten niestandardowy tryb?", "delete_message": "Co chcesz usunąć?", - "just_this_message": "Tylko tę wiadomość", - "this_and_subsequent": "Tę i wszystkie kolejne wiadomości" + "delete_just_this_message": "Tylko tę wiadomość", + "delete_this_and_subsequent": "Tę i wszystkie kolejne wiadomości", + "edit_message": "Usunąć wszystkie wiadomości po tej?", + "edit_just_this_message": "Nie, tylko edytuj tę wiadomość", + "edit_this_and_delete_subsequent": "Tak" }, "errors": { "invalid_data_uri": "Nieprawidłowy format URI danych", diff --git a/src/i18n/locales/pt-BR/common.json b/src/i18n/locales/pt-BR/common.json index 5003fbf37b..87ecaf5359 100644 --- a/src/i18n/locales/pt-BR/common.json +++ b/src/i18n/locales/pt-BR/common.json @@ -23,8 +23,11 @@ "delete_config_profile": "Tem certeza de que deseja excluir este perfil de configuração?", "delete_custom_mode": "Tem certeza de que deseja excluir este modo personalizado?", "delete_message": "O que você gostaria de excluir?", - "just_this_message": "Apenas esta mensagem", - "this_and_subsequent": "Esta e todas as mensagens subsequentes" + "delete_just_this_message": "Apenas esta mensagem", + "delete_this_and_subsequent": "Esta e todas as mensagens subsequentes", + "edit_message": "Excluir todas as mensagens após esta?", + "edit_just_this_message": "Não, apenas editar esta", + "edit_this_and_delete_subsequent": "Sim" }, "errors": { "invalid_data_uri": "Formato de URI de dados inválido", diff --git a/src/i18n/locales/ru/common.json b/src/i18n/locales/ru/common.json index 0401d6acb7..070fb575bc 100644 --- a/src/i18n/locales/ru/common.json +++ b/src/i18n/locales/ru/common.json @@ -20,7 +20,11 @@ "delete_custom_mode": "Вы уверены, что хотите удалить этот пользовательский режим?", "delete_message": "Что вы хотите удалить?", "just_this_message": "Только это сообщение", - "this_and_subsequent": "Это и все последующие сообщения" + "delete_just_this_message": "Только это сообщение", + "delete_this_and_subsequent": "Это и все последующие сообщения", + "edit_message": "Удалить все сообщения после этого?", + "edit_just_this_message": "Нет, только редактировать это", + "edit_this_and_delete_subsequent": "Да" }, "errors": { "invalid_data_uri": "Неверный формат URI данных", diff --git a/src/i18n/locales/tr/common.json b/src/i18n/locales/tr/common.json index 00c21ed0f1..6cd4dec40f 100644 --- a/src/i18n/locales/tr/common.json +++ b/src/i18n/locales/tr/common.json @@ -20,7 +20,11 @@ "delete_custom_mode": "Bu özel modu silmek istediğinizden emin misiniz?", "delete_message": "Neyi silmek istersiniz?", "just_this_message": "Sadece bu mesajı", - "this_and_subsequent": "Bu ve sonraki tüm mesajları" + "delete_just_this_message": "Sadece bu mesajı", + "delete_this_and_subsequent": "Bu ve sonraki tüm mesajları", + "edit_message": "Bu mesajdan sonraki tüm mesajlar silinsin mi?", + "edit_just_this_message": "Hayır, sadece bunu düzenle", + "edit_this_and_delete_subsequent": "Evet" }, "errors": { "invalid_data_uri": "Geçersiz veri URI formatı", diff --git a/src/i18n/locales/vi/common.json b/src/i18n/locales/vi/common.json index c64f721c55..75f1b9da37 100644 --- a/src/i18n/locales/vi/common.json +++ b/src/i18n/locales/vi/common.json @@ -20,7 +20,11 @@ "delete_custom_mode": "Bạn có chắc chắn muốn xóa chế độ tùy chỉnh này không?", "delete_message": "Bạn muốn xóa gì?", "just_this_message": "Chỉ tin nhắn này", - "this_and_subsequent": "Tin nhắn này và tất cả tin nhắn tiếp theo" + "delete_just_this_message": "Chỉ tin nhắn này", + "delete_this_and_subsequent": "Tin nhắn này và tất cả tin nhắn tiếp theo", + "edit_message": "Xóa tất cả tin nhắn sau tin nhắn này?", + "edit_just_this_message": "Không, chỉ chỉnh sửa tin nhắn này", + "edit_this_and_delete_subsequent": "Có" }, "errors": { "invalid_data_uri": "Định dạng URI dữ liệu không hợp lệ", diff --git a/src/i18n/locales/zh-CN/common.json b/src/i18n/locales/zh-CN/common.json index 0eda81be3f..e4c2a15071 100644 --- a/src/i18n/locales/zh-CN/common.json +++ b/src/i18n/locales/zh-CN/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "您确定要删除此配置文件吗?", "delete_custom_mode": "您确定要删除此自定义模式吗?", "delete_message": "您想删除什么?", - "just_this_message": "仅此消息", - "this_and_subsequent": "此消息及所有后续消息" + "edit_message": "删除此消息后的所有消息?", + "delete_just_this_message": "仅此消息", + "edit_just_this_message": "不,仅编辑此消息", + "delete_this_and_subsequent": "此消息及所有后续消息", + "edit_this_and_delete_subsequent": "是" }, "errors": { "invalid_mcp_config": "项目MCP配置格式无效", diff --git a/src/i18n/locales/zh-TW/common.json b/src/i18n/locales/zh-TW/common.json index a8ab281ce6..8a8d512deb 100644 --- a/src/i18n/locales/zh-TW/common.json +++ b/src/i18n/locales/zh-TW/common.json @@ -19,8 +19,11 @@ "delete_config_profile": "您確定要刪除此設定檔案嗎?", "delete_custom_mode": "您確定要刪除此自訂模式嗎?", "delete_message": "您想刪除哪些內容?", - "just_this_message": "僅這則訊息", - "this_and_subsequent": "這則訊息及所有後續訊息" + "edit_message": "刪除此訊息後的所有訊息?", + "delete_just_this_message": "僅這則訊息", + "edit_just_this_message": "否,僅編輯此訊息", + "delete_this_and_subsequent": "這則訊息及所有後續訊息", + "edit_this_and_delete_subsequent": "是" }, "errors": { "invalid_data_uri": "資料 URI 格式無效",