macvim-dev / macvim-dev/macvim

ligatures drawn imperfectly

Offen
#476 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Renderer
Vorherrschende Sprache
Vim Script
Sterne
7.9k
Forks
691
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

i tried out the macligatures feature. with muliple fonts is see this:

  1. 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.

  2. 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.

  3. 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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den Fall a != mit Fira unter Verwendung des Core renderer und vergleiche ihn mit dem non-Core renderer, während du den Cursor wie beschrieben bewegst. Verfolge das Redraw-Verhalten rund um den Cursor und die Ligaturgrenzen; als erledigt gilt die Aufgabe, wenn beide Renderer die vollständige Ligatur konsistent neu zeichnen, ohne abgeschnittene oder veraltete Glyphen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
macos, vim
Bereich
desktop
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.