Include ligature.el in a new set-font-ligatures! function, so that "normal" (read: "font-based") ligatures can also be controlled on a per-major mode basis from a user function in configuration. This commit also drops support for Emacs 27 to reduce the maintenance burden. BREAKING CHANGE: font ligatures for Harfbuzz/Coretext composition table-based ligations are no longer controlled with `+ligatures-composition-alist`, but is handled with `+ligatures-prog-mode-list` and `+ligatures-all-modes-list` for most common cases. See the README for the mode-specific methods BREAKING CHANGE: the `:ui ligatures` module will not work anymore with Emacs 27 or older. Also, there is no need to keep patched fonts (for Fira, Hasklig, Iosevka) if you use the module. Update Emacs if you want to keep using ligatures, or disable the module (`doom doctor` will tell you if your current version of Emacs stopped working with the module)
16 lines
743 B
EmacsLisp
16 lines
743 B
EmacsLisp
;; This cond expression mimics the activation conditional of ligatures,
|
|
;; with a fallback that triggers a warning.
|
|
(cond
|
|
((and IS-MAC (fboundp 'mac-auto-operator-composition-mode))
|
|
(ignore))
|
|
|
|
((and (> emacs-major-version 27)
|
|
(or (featurep 'ns)
|
|
(string-match-p "HARFBUZZ" system-configuration-features))
|
|
(featurep 'composite)) ; Emacs loads `composite' at startup
|
|
(ignore))
|
|
|
|
(t
|
|
(if IS-MAC
|
|
(warn! "The (:ui ligatures) module does not support your version of Emacs. Install emacs-plus with at least Emacs 28, or emacs-mac.")
|
|
(warn! "The (:ui ligatures) module does not support your version of Emacs. Make sure to have at least Emacs 28 with Harfbuzz configured (should be the default)."))))
|