Drop Emacs 26.x support

Emacs 27.x has been the stable version of Emacs for nearly a year, and
introduces a litany of bugfixes, performance, and quality-of-life
improvements that significantly reduce Doom's maintenance burden (like
XDG support, early-init.el, image manipulation without imagemagick, a
native JSON library, harfbuzz support, pdumper, and others).

With so many big changes on Doom's horizon, I like having one less (big)
thing to worry about.

Also reverts bb677cf7a (#5232) as it is no longer needed.
This commit is contained in:
Henrik Lissner 2021-07-06 01:54:32 -04:00
parent ff2d56794e
commit 044a1a5f2b
19 changed files with 58 additions and 326 deletions

View file

@ -5,7 +5,7 @@
[Install](#install) • [Documentation] • [FAQ] • [Screenshots] • [Contribute](#contribute)
![Made with Doom Emacs](https://img.shields.io/github/tag/hlissner/doom-emacs.svg?style=flat-square&label=release&color=58839b)
![Minimum Emacs version supported: 26.3](https://img.shields.io/badge/Emacs-26.3+-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white)
![Minimum Emacs version supported: 27.1](https://img.shields.io/badge/Emacs-27.1+-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white)
![Latest commit](https://img.shields.io/github/last-commit/hlissner/doom-emacs/develop?style=flat-square)
![Build status: develop](https://img.shields.io/github/workflow/status/hlissner/doom-emacs/CI/develop?style=flat-square)
[![Discord Server](https://img.shields.io/discord/406534637242810369?color=738adb&label=Discord&logo=discord&logoColor=white&style=flat-square)][Discord]
@ -99,7 +99,7 @@ Check out [the FAQ][FAQ] for answers to common questions about the project.
# Prerequisites
+ Git 2.23+
+ Emacs 26.3+ (*27.2 is recommended*, or [native-comp](https://www.emacswiki.org/emacs/GccEmacs)).
+ Emacs 27.1+ (*27.2 is recommended*, or [native-comp](https://www.emacswiki.org/emacs/GccEmacs)).
+ [ripgrep] 11.0+
+ GNU `find`
+ *OPTIONAL:* [fd] 7.3.0+ (improves file indexing performance for some commands)

View file

@ -27,11 +27,11 @@
;;
;;; Sanity checks
(when (version< emacs-version "26.3")
(when (version< emacs-version "27.1")
(error
(concat "Detected Emacs " emacs-version " (at " (car command-line-args) ").\n\n"
"Doom only supports Emacs 26.3 and newer. 27.1 is highly recommended. A guide\n"
"to install a newer version of Emacs can be found at:\n\n "
"Doom only supports Emacs 27.1 and newer. A guide to install a newer version\n"
"of Emacs can be found at:\n\n "
(format "https://doomemacs.org/docs/getting_started.org#%s"
(cond ((eq system-type 'darwin) "on-macos")
((memq system-type '(cygwin windows-nt ms-dos)) "on-windows")

View file

@ -40,9 +40,7 @@ all themes. It will apply to all themes once they are loaded."
(when (or (get 'doom-theme 'previous-themes)
(null doom-theme))
(funcall #',fn))
;; TODO Append to `doom-load-theme-hook' with DEPTH instead when Emacs
;; 26.x support is dropped.
(add-hook 'doom-customize-theme-hook #',fn 'append))))
(add-hook 'doom-customize-theme-hook #',fn 100))))
;;;###autoload
(defmacro custom-set-faces! (&rest specs)

View file

@ -54,10 +54,8 @@ in."
(warn! "Emacs %s detected" emacs-version)
(explain! "Doom supports this version, but you are living on the edge! "
"Be prepared for breakages in future versions of Emacs."))
((= emacs-major-version 26)
(warn! "Emacs %s detected" emacs-version)
(explain! "Doom is dropping Emacs 26.x support in June 2021. Consider "
"upgrading to Emacs 27.1 (or better: 27.2) soon!"
((< emacs-major-version 27)
(error! "Emacs %s detected, Doom only supports 27.1 and newer"
emacs-version))))
(print! (start "Checking for Doom's prerequisites..."))

View file

@ -625,72 +625,7 @@ testing advice (when combined with `rotate-text').
;;
;;; Backports
(eval-when! (version< emacs-version "27.0.90")
;; DEPRECATED Backported from Emacs 27
(defmacro setq-local (&rest pairs)
"Make variables in PAIRS buffer-local and assign them the corresponding values.
PAIRS is a list of variable/value pairs. For each variable, make
it buffer-local and assign it the corresponding value. The
variables are literal symbols and should not be quoted.
The second VALUE is not computed until after the first VARIABLE
is set, and so on; each VALUE can use the new value of variables
set earlier in the setq-local. The return value of the
setq-local form is the value of the last VALUE.
\(fn [VARIABLE VALUE]...)"
(declare (debug setq))
(unless (zerop (mod (length pairs) 2))
(error "PAIRS must have an even number of variable/value members"))
(let ((expr nil))
(while pairs
(unless (symbolp (car pairs))
(error "Attempting to set a non-symbol: %s" (car pairs)))
;; Can't use backquote here, it's too early in the bootstrap.
(setq expr
(cons
(list 'set
(list 'make-local-variable (list 'quote (car pairs)))
(car (cdr pairs)))
expr))
(setq pairs (cdr (cdr pairs))))
(macroexp-progn (nreverse expr)))))
(eval-when! (version< emacs-version "27.1")
;; DEPRECATED Backported from Emacs 27. Remove when 26.x support is dropped.
(defun executable-find (command &optional remote)
"Search for COMMAND in `exec-path' and return the absolute file name.
Return nil if COMMAND is not found anywhere in `exec-path'. If
REMOTE is non-nil, search on the remote host indicated by
`default-directory' instead."
(if (and remote (file-remote-p default-directory))
(let ((res (locate-file
command
(mapcar
(lambda (x) (concat (file-remote-p default-directory) x))
(exec-path))
exec-suffixes 'file-executable-p)))
(when (stringp res) (file-local-name res)))
;; Use 1 rather than file-executable-p to better match the
;; behavior of call-process.
(let ((default-directory
(let (file-name-handler-alist)
(file-name-quote default-directory))))
(locate-file command exec-path exec-suffixes 1)))))
(eval-when! (not (fboundp 'exec-path))
;; DEPRECATED Backported from Emacs 27.1. Remove when 26.x support is dropped.
(defun exec-path ()
"Return list of directories to search programs to run in remote subprocesses.
The remote host is identified by `default-directory'. For remote
hosts that do not support subprocesses, this returns `nil'.
If `default-directory' is a local directory, this function returns
the value of the variable `exec-path'."
(let ((handler (find-file-name-handler default-directory 'exec-path)))
(if handler
(funcall handler 'exec-path)
exec-path))))
;; None at the moment!
(provide 'core-lib)
;;; core-lib.el ends here

View file

@ -667,16 +667,17 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original
(dolist (fn '(switch-to-buffer display-buffer))
(advice-add fn :around #'doom-run-switch-buffer-hooks-a)))
;; Apply `doom-font' et co
(add-hook 'doom-after-init-modules-hook #'doom-init-fonts-h -100)
;; Apply `doom-theme'
(add-hook (if (daemonp)
'after-make-frame-functions
'doom-after-init-modules-hook)
#'doom-init-theme-h)
#'doom-init-theme-h
-90)
;; Apply `doom-font' et co
(add-hook 'doom-after-init-modules-hook #'doom-init-fonts-h)
(add-hook 'window-setup-hook #'doom-init-ui-h 'append)
(add-hook 'window-setup-hook #'doom-init-ui-h 100)
;;
@ -702,25 +703,11 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original
(fset 'define-fringe-bitmap #'ignore))
(after! whitespace
(defun doom-disable-whitespace-mode-in-childframes-a (orig-fn)
(defun doom-is-childframes-p ()
"`whitespace-mode' inundates child frames with whitespace markers, so
disable it to fix all that visual noise."
(unless (frame-parameter nil 'parent-frame)
(funcall orig-fn)))
(add-function :around whitespace-enable-predicate #'doom-disable-whitespace-mode-in-childframes-a))
;; Don't display messages in the minibuffer when using the minibuffer
;; DEPRECATED Remove when Emacs 26.x support is dropped.
(eval-when! (not EMACS27+)
(defmacro doom-silence-motion-key (command key)
(let ((key-command (intern (format "doom/silent-%s" command))))
`(progn
(defun ,key-command ()
(interactive)
(ignore-errors (call-interactively ',command)))
(define-key minibuffer-local-map (kbd ,key) #',key-command))))
(doom-silence-motion-key backward-delete-char "<backspace>")
(doom-silence-motion-key delete-char "<delete>"))
(frame-parameter nil 'parent-frame))
(add-function :before-while whitespace-enable-predicate #'doom-is-childframes-p))
(provide 'core-ui)
;;; core-ui.el ends here

View file

@ -355,7 +355,6 @@ config.el instead."
(when (boundp 'libgnutls-version)
(concat "SECURE128:+SECURE192:-VERS-ALL"
(if (and (not IS-WINDOWS)
(not (version< emacs-version "26.3"))
(>= libgnutls-version 30605))
":+VERS-TLS1.3")
":+VERS-TLS1.2"))

View file

@ -37,8 +37,6 @@
(package! helpful :pin "7e4b1f0d5572a4e2b8ee7a9b084ef863d0315a73")
(package! pcre2el :pin "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d")
(package! smartparens :pin "911cc896a0f2eb8b5fbdd6fc8331523ad9889a3a")
;; DEPRECATED Built into Emacs 27+; remove when we drop 26 support
(package! so-long :built-in 'prefer :pin "1da43ed63b5f9a8188eb8107bbad842d10831537")
(package! ws-butler
;; Use my fork of ws-butler, which has a few choice improvements and
;; optimizations (the original has been abandoned).

View file

@ -97,7 +97,7 @@ us know!
This is what you'll have installed by the end of this section:
- Git 2.23+
- Emacs 26.3+ *(27.2 is recommended, or [[https://www.emacswiki.org/emacs/GccEmacs][native-comp]])*
- Emacs 27.1+ *(27.2 is recommended, or [[https://www.emacswiki.org/emacs/GccEmacs][native-comp]])*
- [[https://github.com/BurntSushi/ripgrep][ripgrep]] 11.0+
- GNU Find
- (Optional) [[https://github.com/sharkdp/fd][fd]] 7.3.0+ (known as ~fd-find~ on Debian, Ubuntu & derivatives) --
@ -107,20 +107,15 @@ These packages ought to be available through the package managers of your
operating system; i.e. homebrew & macports on macOS, scoop/chocolatey on
Windows, or pacman/aptitude/etc on the various Linux distributions.
#+begin_quote
While Doom does claim to support 26.x, 27.x is recommended because it is faster,
especially for LSP users. The installation guides below will touch on installing
27 if there is a simple way to do so on that particular operating system.
#+end_quote
** Emacs & dependencies
*** On Linux
In the unusual case that Emacs 26.x is unavailable through your package manager,
you'll have to [[https://www.gnu.org/software/emacs/manual/html_node/efaq/Installing-Emacs.html][build it from source]], but here are installation instructions for many popular Linux distributions:
Installation instructions for Emacs 27.1+ are listed below for many popular
Linux distributions. In the unusual case that 27.1 or newer is unavailable on
your system, you'll have to [[https://www.gnu.org/software/emacs/manual/html_node/efaq/Installing-Emacs.html][build it from source]] instead.
**** Ubuntu
Emacs 27.x is not available through Ubuntu's package manager out-of-the-box. To
get around this you'll need to install Emacs through a PPA:
Emacs 27.x is not available through Ubuntu's package manager out-of-the-box, but
is available through a PPA:
#+BEGIN_SRC bash
add-apt-repository ppa:kelleyk/emacs
@ -164,8 +159,9 @@ pacman -S fd
The above installs Emacs 27 (at the time of writing).
**** NixOS
On NixOS Emacs 26.3 can be installed via ~nix-env -Ai nixos.emacs~, or
On NixOS Emacs 27.2 can be installed via ~nix-env -Ai nixos.emacs~, or
permanently with the following added to ~etc/nixos/configuration.nix~:
#+BEGIN_SRC nix
environment.systemPackages = with pkgs; [
# required dependencies
@ -191,7 +187,7 @@ environment.systemPackages = [
#+END_SRC
**** openSUSE
***** Emacs 26.3
***** Emacs 27.1
Emacs can be installed from the [[https://software.opensuse.org/download.html?project=editors&package=emacs][package list]], or manually via zypper.
For example, to install on openSUSE Leap 15.1 (requires root):
@ -202,7 +198,7 @@ zypper install emacs
#+END_SRC
If you already have an older version of Emacs installed, you will be prompted to
install the update candidate (Emacs 26.3).
install the update candidate (Emacs 27.1).
***** ripgrep
Download ripgrep 11.0.2 from [[https://software.opensuse.org/download/package?package=ripgrep&project=openSUSE%3AFactory][the package list]] or installed manually (requires
@ -305,16 +301,16 @@ Or by replacing ~/usr/local/bin/emacs~ with a shim script containing:
There are some suggestions on how to speed it up later in this section.
#+end_quote
There are three methods for installing Emacs 26.x on Windows, each with their
There are three methods for installing Emacs 27.x on Windows, each with their
pros and cons:
+ With chocolatey/scoop
+ With a precompiled binary + Git Bash
+ With WSL + Ubuntu
+ With WSL2 + Ubuntu
If you don't know which to choose, I recommend WSL; it produces the fastest and
most stable environment of the three, but has the most complex installation
process.
If you don't know which to choose, I highly recommend WSL; it produces the
fastest and most stable environment of the three, but has the most complex
installation process.
Before moving on to installing Emacs et co, a few steps to prepare Windows for
Emacs are necessary:
@ -405,7 +401,7 @@ bin/doom command.
#+BEGIN_SRC sh
sudo add-apt-repository ppa:kelleyk/emacs
sudo apt update
sudo apt install emacs26
sudo apt install emacs27
#+END_SRC
7. Then Doom's dependencies:
#+BEGIN_SRC sh

View file

@ -203,7 +203,6 @@ Aesthetic modules that affect the Emacs interface or user experience.
+ [[file:../modules/ui/doom-dashboard/README.org][doom-dashboard]] - TODO
+ [[file:../modules/ui/doom-quit/README.org][doom-quit]] - TODO
+ [[file:../modules/ui/emoji/README.org][emoji]] =+ascii +github +unicode= - Adds emoji support to Emacs
+ [[file:../modules/ui/fill-column/README.org][fill-column]] - TODO
+ [[file:../modules/ui/hl-todo/README.org][hl-todo]] - TODO
+ [[file:../modules/ui/hydra/README.org][hydra]] - TODO
+ indent-guides - TODO

View file

@ -31,7 +31,6 @@
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
;;(emoji +unicode) ; 🙂
;;fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra
;;indent-guides ; highlighted indent columns

View file

@ -274,16 +274,7 @@ Also adds support for a `:sync' parameter to override `:async'."
;; TODO Should be fixed upstream
(let ((default-directory (org-find-library-dir "org-contribdir")))
(setq org-ditaa-jar-path (expand-file-name "scripts/ditaa.jar")
org-ditaa-eps-jar-path (expand-file-name "scripts/DitaaEps.jar"))))
;; NOTE Backported from Emacs 27.1
;; DEPRECATED Remove when 26.x support is dropped
(unless EMACS27+
(defadvice! +org--dont-suppress-window-changes-a (orig-fn &rest args)
:around #'org-babel-execute:emacs-lisp
(letf! ((#'current-window-configuration #'ignore)
(#'set-window-configuration #'ignore))
(apply orig-fn args)))))
org-ditaa-eps-jar-path (expand-file-name "scripts/DitaaEps.jar")))))
(defun +org-init-babel-lazy-loader-h ()

View file

@ -56,59 +56,11 @@ need:
* Configuration
** True-color and italic support
#+begin_quote
This advice only applies to Emacs 26.x. True color support is [[https://github.com/emacs-mirror/emacs/commit/7f6153d9563cfe7753083996f59eacc9f4c694df][built into 27.1+
and newer]].
#+end_quote
Emacs 26.3 users should consult [[https://github.com/syl20bnr/spacemacs/wiki/Terminal][the spacemacs wiki]] for details on achieving true
color support in terminal Emacs.
(credit goes to [[https://github.com/syl20bnr/spacemacs/wiki/Terminal][the spacemacs wiki]] for this information)
Create a =xterm-24bit.terminfo= file with the following contents:
#+BEGIN_SRC text
xterm-24bit|xterm with 24-bit direct color mode,
use=xterm-256color,
sitm=\E[3m,
ritm=\E[23m,
setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
#+END_SRC
#+begin_quote
WARNING: Make sure you have a newline at end of file otherwise you will get
errors!
#+end_quote
Execute the following command on the command line:
#+BEGIN_SRC sh
tic -x -o ~/.terminfo xterm-24bit.terminfo
#+END_SRC
Now set your ~$TERM~ variable to ~xterm-24bit~:
#+BEGIN_SRC sh
export TERM=xterm-24bit
#+END_SRC
SSH might break if your remote machine does not have the same setup, you can
work around this with the following alias.
#+BEGIN_SRC sh
alias ssh="TERM=xterm-256color ssh"
#+END_SRC
If you use tmux, you need to make sure you installed a version with truecolor
support, then add the following lines to your `.tmux.conf`:
#+BEGIN_SRC conf
set -g default-terminal "xterm-24bit"
set -g terminal-overrides ',xterm-24bit:Tc'
#+END_SRC
Also, make sure you have utf8 language variables if you want all characters to
display correctly. For example:
#+BEGIN_SRC bash
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
#+END_SRC
Emacs 27.x users don't need todo anything, as true color support is [[https://github.com/emacs-mirror/emacs/commit/7f6153d9563cfe7753083996f59eacc9f4c694df][built into
27.1+ and newer]].
* Troubleshooting
# Common issues and their solution, or places to look for help.

View file

@ -8,25 +8,20 @@
(set-popup-rule! "^\\*envrc\\*" :quit t :ttl 0)
;; I'm avoiding `global-envrc-mode' intentionally, because it has the
;; potential to run too late in the mode startup process (and after, say,
;; server hooks that may rely on that local direnv environment).
(add-hook! 'change-major-mode-after-body-hook
(defun +direnv-init-h ()
(unless (or envrc-mode
(minibufferp)
(file-remote-p default-directory))
(condition-case _
(envrc-mode 1)
(quit)))))
;; Ensure these local variables survive major mode changes, so envrc-mode is
;; only "activated" once per buffer.
(put 'envrc-mode 'permanent-local t)
(put 'envrc--status 'permanent-local t)
(put 'process-environment 'permanent-local t)
(put 'exec-path 'permanent-local t)
(put 'eshell-path-env 'permanent-local t)
;; A globalized minor mode triggers on `after-change-major-mode-hook'
;; normally, which runs after a major mode's body and hooks. If those hooks do
;; any initialization work that's sensitive to environmental state set up by
;; direnv, then you're gonna have a bad time, so I move the trigger to
;; `change-major-mode-after-body-hook' instead. This runs before said hooks
;; (but not the body; fingers crossed that no major mode does important env
;; initialization there).
(add-hook! 'envrc-global-mode-hook
(defun +direnv-init-global-mode-earlier-h ()
(let ((fn #'envrc-global-mode-enable-in-buffers))
(if (not envrc-global-mode)
(remove-hook 'change-major-mode-after-body-hook fn)
(remove-hook 'after-change-major-mode-hook fn)
(add-hook 'change-major-mode-after-body-hook fn 100)))))
(defadvice! +direnv--fail-gracefully-a (&rest _)
"Don't try to use direnv if the executable isn't present."

View file

@ -183,9 +183,9 @@ instead is more sensible."
;; and there is a bug preventing Flycheck errors from being shown (the
;; errors flash briefly and then disappear).
lsp-ui-sideline-show-hover nil
;; Some icons don't scale correctly on Emacs 26, so disable them there.
lsp-ui-sideline-actions-icon ; DEPRECATED Remove later
(if EMACS27+ lsp-ui-sideline-actions-icon-default)
;; Re-enable icon scaling (it's disabled by default upstream for Emacs
;; 26.x compatibility; see emacs-lsp/lsp-ui#573)
lsp-ui-sideline-actions-icon t
;; REVIEW Temporarily disabled, due to immense slowness on every
;; keypress. See emacs-lsp/lsp-ui#613
lsp-ui-doc-enable nil)

View file

@ -126,9 +126,7 @@
(defadvice! +pdf-suppress-large-file-prompts-a (orig-fn size op-type filename &optional offer-raw)
:around #'abort-if-file-too-large
(unless (string-match-p "\\.pdf\\'" filename)
(if offer-raw
(funcall orig-fn size op-type filename offer-raw)
(funcall orig-fn size op-type filename)))))
(funcall orig-fn size op-type filename offer-raw))))
(use-package! saveplace-pdf-view

View file

@ -1,92 +0,0 @@
#+TITLE: ui/fill-column
#+DATE: August 23, 2020
#+SINCE: 2.0.9
#+STARTUP: inlineimages nofold
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#setting-fill-column-globally][Setting fill-column globally]]
- [[#setting-fill-column-for-the-current-buffer-or-mode][Setting fill-column for the current buffer or mode]]
- [[#hl-fill-column-only-configuring-the-look-of-the-indicator][(hl-fill-column only) Configuring the look of the indicator]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module provides a fill column indicator to make it obvious when a line
reaches or surpasses the 80th column. This serves as a reminder to keep lines
short for accessibility and/or convenience. [[https://www.emacswiki.org/emacs/EightyColumnRule][Read more about this on the Emacs
Wiki page]].
#+begin_quote
This module is deprecated and will be removed once Doom drops Emacs 26.x
support. This is because the built-in ~display-fill-column-indicator-mode~ (in
27 and newer) replaces it, and enabling it is a trivial one-liner, which doesn't
warrant a module: ~(global-display-fill-column-indicator-mode +1)~
#+end_quote
** Maintainers
This module has no dedicated maintainers.
** Module Flags
This module provides no flags.
** Plugins
+ [[https://github.com/laishulu/hl-fill-column][hl-fill-column]]* (unless Emacs >=27)
* Prerequisites
This module has no prerequisites.
* Features
The behavior of this module varies slightly depending on your version of Emacs:
+ In Emacs 26.x, text beyond ~fill-column~ will be highlighted.
+ In Emacs 27 and newer, a line is drawn down the right side at column 80.
* Configuration
** Setting fill-column globally
This column limit is controlled by the ~fill-column~ variable (default: ~80~).
This variable is buffer-local, therefore, to change this globally, you must use
~setq-default~:
#+BEGIN_SRC emacs-lisp
(setq-default fill-column 100)
#+END_SRC
~hl-fill-column-mode~ (or ~display-fill-column-indicator-mode~ on Emacs 27+)
must be restarted to see the change.
** Setting fill-column for the current buffer or mode
The ~setq-hook!~ convenience macro makes settings ~fill-column~ for a particular
mode (or modes) easy:
#+BEGIN_SRC emacs-lisp
(setq-hook! 'org-mode-hook fill-column 100)
(setq-hook! 'python-mode-hook fill-column 72)
(setq-hook! js2-mode fill-column 72)
(setq-hook! '(ruby-mode rustic-mode python-mode-hook) fill-column 80)
#+END_SRC
Any open buffers in these modes must be restarted to see the change.
** (hl-fill-column only) Configuring the look of the indicator
To change the appears of hl-fill-column's highlight, change the
~hl-fill-column-face~ face. Doom provides the ~custom-set-faces!~ macro to help
you do this:
#+BEGIN_SRC emacs-lisp
(custom-set-faces!
'(hl-fill-column-face :background "red"
:foreground "blue"
:inverse-video t))
#+END_SRC
See =M-x helpful-function RET custom-set-faces\!= for demos and documentation
for this macro.
* TODO Troubleshooting

View file

@ -1,15 +0,0 @@
;;; ui/fill-column/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defalias '+fill-column/toggle
(if (fboundp 'display-fill-column-indicator-mode)
#'display-fill-column-indicator-mode ; Emacs 27 only
(autoload 'hl-fill-column-mode "hl-fill-column" nil t)
#'hl-fill-column-mode))
;;;###autoload
(defalias '+fill-column-enable-h #'+fill-column/toggle)
;;;###autoload
(add-hook! '(text-mode-hook prog-mode-hook conf-mode-hook)
#'+fill-column-enable-h)

View file

@ -1,6 +0,0 @@
;; -*- no-byte-compile: t; -*-
;;; ui/fill-column/packages.el
;; `hl-fill-column' is only used on Emacs versions before 27
(unless (fboundp 'display-fill-column-indicator-mode)
(package! hl-fill-column :pin "5782a91ba0182c4e562fa0db6379ff9dd472856b"))