From 621ee29fff7e3f577d0ca177afd7e30b01a4fdd8 Mon Sep 17 00:00:00 2001 From: "bobo.yang" Date: Thu, 14 Nov 2024 16:25:29 +0800 Subject: [PATCH] feat: Add selected code support for diff button - Implement selection-aware diff functionality - Use selected text for diff if available, else use full code - Maintain existing event tracking and message sending logic --- .../components/MessageMarkdown/CodeButtons.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/views/components/MessageMarkdown/CodeButtons.tsx b/src/views/components/MessageMarkdown/CodeButtons.tsx index d8523f6..b8f4c18 100644 --- a/src/views/components/MessageMarkdown/CodeButtons.tsx +++ b/src/views/components/MessageMarkdown/CodeButtons.tsx @@ -33,12 +33,24 @@ const CodeCopyButton = ({ code, language, platform }) => { const DiffButton = ({ code, language, platform }) => { const handleClick = () => { const e = 'show_diff'; + let selectedCode = code; + const selection = window.getSelection(); + if (selection) { + selectedCode = selection.toString().trim(); + } + + // If no code is selected, use the entire code block + if (!selectedCode) { + selectedCode = code; + } + messageUtil.sendMessage({ command: e, - content: code + content: selectedCode }); APIUtil.createEvent({name: e, value: e, language: language, ide: platform}); }; + return (