Add configurable OpenType font features to text rendering:

Support explicit liga, calt, clig, and dlig shaping features and include
  text hints in layout caching, measurement, drawing, and character
  position calculations.

  Propagate scene-wide font feature defaults through UI text producers,
  with granular widget overrides and recursive cache invalidation. Update
  UICodeEditor and UIConsole to use shaped positioning when font features
  are enabled, including with monospaced fonts.

  Add separate UI and editor font feature settings to ecode, persist them
  as comma-separated OpenType tags, and apply changes immediately. Add
  localized menu labels, reusable Text feature conversion helpers, and
  regression coverage for shaping, positioning, propagation, and parsing.
This commit is contained in:
Martín Lucas Golini
2026-08-15 02:21:11 -03:00
parent c1034fa87e
commit ffabb19d60
37 changed files with 882 additions and 101 deletions

View File

@@ -250,6 +250,16 @@ Do you want to download it now?</string>
<string name="edit_build">Edit Build</string>
<string name="edit_custom_output_parser">Edit Selected Custom Output Parser</string>
<string name="editor_font_and_size_ellipsis">Editor Font &amp; Size...</string>
<string name="editor_font_features">Editor Font Features</string>
<string name="ui_font_features">UI Font Features</string>
<string name="contextual_alternates">Contextual Alternates (calt)</string>
<string name="contextual_alternates_desc">Context-dependent alternatives, including many programming ligatures.</string>
<string name="standard_ligatures">Standard Ligatures (liga)</string>
<string name="standard_ligatures_desc">Typographic combinations such as fi, fl, and ffi, depending on the font.</string>
<string name="contextual_ligatures">Contextual Ligatures (clig)</string>
<string name="contextual_ligatures_desc">Ligatures applied in specific contexts to improve readability.</string>
<string name="discretionary_ligatures">Discretionary Ligatures (dlig)</string>
<string name="discretionary_ligatures_desc">Optional decorative or stylistic ligatures provided by the font.</string>
<string name="editor_font_size">Editor Font Size</string>
<string name="editor_go_back">Editor Go Back</string>
<string name="editor_go_forward">Editor Go Forward</string>