index.md (4208B)
1 Ligature support 2 ================ 3 4 Description 5 ----------- 6 This patch adds proper drawing of ligatures. 7 8 The code uses Harfbuzz library to transform original text of a single line to a list of glyphs with ligatures included. 9 10 Example 11 ------- 12 Taken with Fira Code Regular 14pt: 13 14 [](fira-code.png) 15 16 Notes 17 ----- 18 * The patch adds additional dependency on Harfbuzz library and headers. 19 * Original patch was made for vanilla version of ST from latest master commit. It is not 100% compatible with Scrollback and Alpha patches, so I made modified versions that you can apply on top of a Scrollback and/or Alpha patch. 20 * Due to some limitations in drawing engine, ligatures will break when crossing colors, font styles or selection. They will still render properly as separate symbols, just not as ligatures. 21 * Since 0.8.4 patch, there's now a way to enable additional font rendering features. Look into `features` array in `hb.c` for details. 22 23 Boxdraw 24 ------- 25 * The original patch does not work very well with the boxdraw patch. Since it requires some additional changes in the code to make ligatures compatible with boxdraw, a special version of the patch was added, that you can apply on top of the boxdraw patch. 26 * It does not include Alpha or Scrollback patches. 27 28 Download 29 -------- 30 **0.9.3**: 31 * [st-ligatures-0.9.3](0.9.3/st-ligatures-20251007-0.9.3.diff) 32 * [st-ligatures-scrollback-0.9.3](0.9.3/st-ligatures-scrollback-20251007-0.9.3.diff) 33 * [st-ligatures-scrollback-ringbuffer-0.9.3](0.9.3/st-ligatures-scrollback-ringbuffer-20251007-0.9.3.diff) 34 * [st-ligatures-boxdraw-0.9.3](0.9.3/st-ligatures-boxdraw-20251007-0.9.3.diff) 35 36 **0.9.2**: 37 * [st-ligatures-0.9.2](0.9.2/st-ligatures-20241226-0.9.2.diff) 38 * [st-ligatures-scrollback-0.9.2](0.9.2/st-ligatures-scrollback-20241226-0.9.2.diff) 39 * [st-ligatures-scrollback-ringbuffer-0.9.2](0.9.2/st-ligatures-scrollback-ringbuffer-20241226-0.9.2.diff) 40 * [st-ligatures-alpha-0.9.2](0.9.2/st-ligatures-alpha-20241226-0.9.2.diff) 41 * [st-ligatures-alpha-scrollback-0.9.2](0.9.2/st-ligatures-alpha-scrollback-20241226-0.9.2.diff) 42 * [st-ligatures-alpha-scrollback-ringbuffer-0.9.2](0.9.2/st-ligatures-alpha-scrollback-ringbuffer-20241226-0.9.2.diff) 43 * [st-ligatures-boxdraw-0.9.2](0.9.2/st-ligatures-boxdraw-20241226-0.9.2.diff) 44 45 **0.9**: 46 * [st-ligatures-0.9](0.9/st-ligatures-20240105-0.9.diff) 47 * [st-ligatures-scrollback-0.9](0.9/st-ligatures-scrollback-20240105-0.9.diff) 48 * [st-ligatures-scrollback-ringbuffer-0.9](0.9/st-ligatures-scrollback-ringbuffer-20240105-0.9.diff) 49 * [st-ligatures-alpha-0.9](0.9/st-ligatures-alpha-20240105-0.9.diff) 50 * [st-ligatures-alpha-scrollback-0.9](0.9/st-ligatures-alpha-scrollback-20240105-0.9.diff) 51 * [st-ligatures-alpha-scrollback-ringbuffer-0.9](0.9/st-ligatures-alpha-scrollback-ringbuffer-20240105-0.9.diff) 52 * [st-ligatures-boxdraw-0.9](0.9/st-ligatures-boxdraw-20240105-0.9.diff) 53 54 **0.8.4**: 55 * [st-ligatures-0.8.4](0.8.4/st-ligatures-20210824-0.8.4.diff) 56 * [st-ligatures-scrollback-0.8.4](0.8.4/st-ligatures-scrollback-20210824-0.8.4.diff) 57 * [st-ligatures-alpha-0.8.4](0.8.4/st-ligatures-alpha-20210824-0.8.4.diff) 58 * [st-ligatures-alpha-scrollback-0.8.4](0.8.4/st-ligatures-alpha-scrollback-20210824-0.8.4.diff) 59 * [st-ligatures-boxdraw-0.8.4](0.8.4/st-ligatures-boxdraw-20210824-0.8.4.diff) 60 61 **0.8.3**: 62 * [st-ligatures-0.8.3](0.8.3/st-ligatures-20200430-0.8.3.diff) 63 * [st-ligatures-scrollback-0.8.3](0.8.3/st-ligatures-scrollback-20200430-0.8.3.diff) 64 * [st-ligatures-alpha-0.8.3](0.8.3/st-ligatures-alpha-20200430-0.8.3.diff) 65 * [st-ligatures-alpha-scrollback-0.8.3](0.8.3/st-ligatures-alpha-scrollback-20200430-0.8.3.diff) 66 * [st-ligatures-boxdraw-0.8.3](0.8.3/st-ligatures-boxdraw-20200430-0.8.3.diff) 67 68 **0.8.2-28ad288**: 69 * [st-ligatures](28ad288/st-ligatures-20200428-28ad288.diff) 70 * [st-ligatures-scrollback](28ad288/st-ligatures-scrollback-20200428-28ad288.diff) 71 * [st-ligatures-alpha](28ad288/st-ligatures-alpha-20200428-28ad288.diff) 72 * [st-ligatures-alpha-scrollback](28ad288/st-ligatures-alpha-scrollback-20200428-28ad288.diff) 73 * [st-ligatures-boxdraw](28ad288/st-ligatures-boxdraw-20200428-28ad288.diff) 74 75 76 Authors 77 ------- 78 * Alexander Rogachev - [https://github.com/cog1to](https://github.com/cog1to)