Commit 0b84b05
committed
feat(ui): 候选标签换行符渲染为 ↵ 防御单行布局
候选窗口的候选标签是单行控件, candidate.Text 含真实换行符 (\r/\n) 时
会撑破布局或与相邻候选重叠。
- 新增 CandidateNewlineGlyph = '↵', 作为可调常量集中定义 (字体兼容
可调, 与 CmdbarCandidatePrefix 同类设计)。
- 包级 strings.NewReplacer 把 \r\n / \r / \n 替换为单个符号 (\r\n 列在
最前, NewReplacer 按参数顺序优先匹配, 保证 CRLF 折叠为一个符号)。
- 改造 candidateDisplayText 在 candidateNewlineReplacer.Replace 之后再
拼 CmdbarCandidatePrefix; candidate.Text 自身不变, 上屏多行仍多行。
- 防御范围与转义来源无关 — 不论换行符是解码而来还是用户/词库里本就
存在, 渲染层一律替换。1 parent ba38344 commit 0b84b05
2 files changed
Lines changed: 55 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
19 | | - | |
20 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
21 | 40 | | |
| 41 | + | |
22 | 42 | | |
23 | | - | |
| 43 | + | |
24 | 44 | | |
25 | | - | |
| 45 | + | |
26 | 46 | | |
27 | 47 | | |
28 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
0 commit comments