I’m trying to disable eldoc in packages.el. I’ve added the (!package ... :disable t) line, run doom sync and restarted emacs, but somehow eldoc is still enabled.
How do I kill this package?
Steps to reproduce
[evan@blackbox ~] grep eldoc .config/doom/packages.el
(package! eldoc :disable t)
[evan@blackbox ~] .config/emacs/bin/doom sync
> Synchronizing "default" profile...
> Installing packages...
- No packages need to be installed
> (Re)building packages...
- No packages need rebuilding
> Purging orphaned packages (for the emperor)...
- Skipping builds
- Skipping elpa packages
- Skipping repos
- Skipping regrafting
- Skipping native bytecode
> (Re)building profile in /home/evan/.config/emacs/.local/etc/@/...
> Deleting old init files...
> Generating 4 init files...
> Byte-compiling ~/.config/emacs/.local/etc/@init.29.el...
✓ Built init.29.elc
- Restart Emacs or use 'M-x doom/reload' for changes to take effect
✓ Finished in 1.83492s
[evan@blackbox ~] pgrep emacs
I think the confusion might stem from what Doom Emacs defines a builtin-package i.e. a package from an external repository (MELPA, GNU, etc.) that is shipped with the Doom Emacs distribution and an Emacs built-in package i.e. packages that are “compiled” in Emacs itself (e.g. eglot, eldoc, etc.).
Emacs built-in packages (indicated as “built-in” when visiting M-x list-packages cannot be uninstalled (I guess one would need to recompile Emacs…).
Emacs Doom packages.el is used to handle packages that Doom ships. The documentation says:
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;(package! builtin-package :disable t)