【Bug】PreviewConfirm 模式下润色文本重复插入(嵌套重叠)
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- Ein halber Tag
- Anfängerfreundlichkeit
- 62/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Bereich
- desktop-dev
Rechercherichtung
Find confirm_selection_polish_preview in the Rust/Tauri backend and see where it calls validate_selection_insertion_target before the Ctrl+V paste; that Ctrl+C re-read is what breaks the selection in most Windows apps. The change is to validate only the target window's HWND on the PreviewConfirm path, leaving the full Ctrl+C check in DirectReplace, since reactivate_selection_insertion_target already restores focus and the active selection. Confirm by setting the output mode to PreviewConfirm, polishing a selection in an Electron/QT or rich-text app on Windows, and checking the text replaces the selection exactly once.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
问题描述
在使用 PreviewConfirm 输出模式(先预览润色结果、用户确认后再插入)时,最终插入目标应用的文本会出现重复:原始润色内容出现一次,且同样的内容还会嵌套在第一段文字的末尾几个字中间,形成"结尾重叠"的效果。
复现步骤
- 在设置中将"选区润色输出模式"设为 PreviewConfirm(预览确认)
- 在任意 Windows 应用(尤其是 Electron / Chromium 内核、QT、富文本编辑器)中选中一段文字
- 触发选区润色快捷键,等待润色完成后在预览窗口点击"确认替换"
- 观察目标应用中插入的文本
实际现象
插入文本出现两遍,第二遍嵌套在第一遍末尾数个字中间,例如:
润色后的完整内容润色后的完整内容整内容
(示意:前半段完整,后半段从某处开始重复)
期望现象
目标应用中只出现一遍润色后的文本,完整替换原来的选中内容。
根本原因分析
confirm_selection_polish_preview 在执行 Ctrl+V 粘贴之前,会调用 validate_selection_insertion_target。该函数在 Windows 上会向目标应用发送一次真实的 Ctrl+C 按键,以重新读取当前选区文本进行校验。
这次 Ctrl+C 会破坏许多 Windows 应用的活动选区状态,导致随后的 Ctrl+V 无法正确替换选中文本,而是在光标所在位置插入,从而产生嵌套重复的效果。
修复方案
在 PreviewConfirm 路径中,改用仅校验窗口身份(HWND)的验证函数,跳过 Ctrl+C 重读步骤。
理由:
- 用户已在预览窗口明确确认了替换操作,无需再次读取选区内容
reactivate_selection_insertion_target已经恢复了目标窗口的焦点和活动选区- HWND 校验足以检测用户在预览期间是否切换了应用窗口
DirectReplace 路径(无预览直接替换)仍保留完整的 Ctrl+C 校验逻辑,因为 LLM 调用期间用户有可能已经移动或改变了选区。
环境
- 操作系统:Windows
- 受影响模式:SelectionPolishOutputMode::PreviewConfirm
- Vorherrschende Sprache
- Rust
- Sterne
- 3.7k
- Forks
- 349
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 93
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Open-Less/openless
-
[账号] github的退出登陆与云同步不在一起Offenenhancement P1
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
[windows] 录音快捷键还不支持设置为ScrllLock键Evtl. vergeben @HKLHaoBin hat das vor 11 Tagen übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Open-Less/openless#1241 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
[area] 同步功能总是提示重新登录。Offenbug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
Open-Less/openless#1384 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
[area] 快捷键不起效Evtl. vergeben @HKLHaoBin hat das vor 1 Tag übernommen. Offenbug
Open-Less/openless#1383 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in Open-Less/openless
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 69/100
Maintainer antworten meist innerhalb von 1 Tag
-
A match arm above the largest i64 is compared as 0Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 83/100
DioxusLabs/dioxus#6063 ·
Maintainer antworten meist innerhalb von 1 Tag
-
`nsh-core` fails to compile when taffy's default `calc` feature is enabled elsewhere in the graphOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
longbridge/nsh#966 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Windows docs: pin a tested ConPTY version for Kitty graphics; 1.25.260930003 corrupts large uploadsOffen
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100
raphamorim/rio#2021 ·
Maintainer antworten meist innerhalb von 1 Tag