macvim-dev / macvim-dev/macvim
ligatures drawn imperfectly
还没有人认领这个 Issue。
- 主要语言
- Vim Script
- 星标
- 7.9k
- 派生
- 691
- PR 合并指标
- 30 天内没有已合并 PR
描述
i tried out the macligatures feature. with muliple fonts is see this:
-
typing
a !=and leaving the cursor in insert mode, a somewhat broken 'not equal' ligature appears. when moving the cursor to the next (empty) line, this is repaired. -
moving the cursor from the
=to the next empty line and back again a few times again reproduces the broken ligature on screen. moving the cursor further down to a nonempty line then repairs it. -
generally, moving the cursor onto one part of a ligature redraws the exact cursor position with the non-ligated glyph, but the adjacent positions retain chopped parts of the ligature.
it seems the problems stem from a too-local redrawing rule? better would be to redraw all characters of a ligature together, or possibly un-ligate the whole line of the cursor always.
this is the behavior with the Core renderer. with the non-core renderer i see slightly different problems. in particular when the cursor is on = the first part of the ligature stays black.
cursorline and relativenumbers disabled. filetype was python.
this exact behavior is with Fira, other fonts gave similar results. macvim 8 patch 329.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
使用 Fira 通过 Core renderer 重现 a != 情况,然后按照描述移动光标,同时与 non-Core renderer 进行比较。跟踪光标周围及连字边界处的重绘行为;完成标准是两个 renderer 都能一致地重绘完整连字,不出现被截断或过时的字形。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- macos, vim
- 领域
- desktop
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100