reddit / emacs

What does ! in use-package or package?

wWA5RnA4n2P3w2WvfHq · 2022-04-28 11:35
Please see this peace of code ((from here)[https://github.com/ThomasFKJorna/org-roam-timestamps/#doom-emacs]) where a "periode" (`!`) is used after `package!` and `use-package!`. ``` ;;packages.el (package! org-roam-timestamps) (use-package! org-roam-timestamps :after org-roam :config (org-roam-timestamps-mode)) ``` I have never seen this before. What is this for?
whudwl · 2022-04-28 11:43
It's a macro. Macro name is `use-package!`. `!` can be used in function /macro names. see here https://github.com/hlissner/doom-emacs/blob/6bf725837def83acd140d9431d799c8b09abebf3/core/core-modules.el#L489
JohnathanDee · 2022-04-28 15:16
Is a doom macro yah? Are you using Doom Emacs or GNU?
XCapitan_1 · 2022-04-28 18:31
`!` is just a symbol that you can have in a name. Lisp is less restrictive about identifier names, for instance `/` is also allowed and commonly used. Using `!` is a Doom emacs convention, they have a bunch of macros like `require!` and `!` at the end is just a reminder that it's a Doom thing and not Emacs built-in. Or correct me if I'm wrong, I don't actually use Doom.
wWA5RnA4n2P3w2WvfHq · 2022-04-29 10:01
I use Emacs from the official Debian repository. I don't know what the difference is and why there is an Emacs version named after an old but iconic game. ;)
JohnathanDee · 2022-04-29 10:05
Gotcha, then that is not Doom Emacs, and you shouldn't use that snippet as-is. Doom is a "distro" of Emacs, preconfigured for new users and users coming from Vim background (uses vim keybindings by default). I can't be much more help than that... I have never used Doom, though I do use doom themes which can be separately installed