doomemacs/modules/lang/emacs-lisp
Henrik Lissner afa154db27
refactor!(emacs-lisp): flycheck config in non-packages
BREAKING CHANGE: This performs the following backwards-incompatible
changes:

- Replaces `+emacs-lisp-reduce-flycheck-errors-in-emacs-config-h` with a
  `+emacs-lisp-non-package-mode` minor-mode.
- Removed the `+emacs-lisp-disable-flycheck-in-dirs` variable, as this
  mechanism no longer checks a directory list to detect a "non-package".

If you've referenced either of these symbols, you'll need to
update/remove them from your config. No extra config is needed
otherwise.

Why: Doom has always tried to reduce the verbosity of Flycheck when
viewing elisp config files or scripts (i.e. non-packages). These are so
stateful that the byte-compiler, package-lint, and checkdoc inundate
users with false positives that are more overwhelming than helpful.

The heuristic for this has always been a simple "is this file in
$DOOMDIR or $EMACSDIR", but this wasn't robust enough, especially in
cases where symlinking was involved, so I've employed a new, more
general heuristic for detecting non-package files:

- The file isn't a theme in `custom-theme-load-path`,
- The file doesn't have a (provide ...) or (provide-theme ...)
  statement whose first argument matches the file name,
- The file lives in a project with a .doommodule file (doom modules
  never have convention package files in them),
- Or the file is a dotfile (like .dir-locals.el or .doomrc).

I've also tweaked byte-compile-warnings to yield a little more output,
but not by much. Whether this is too permissive or not will require
further testing to determine.

What's more, I've updated this to reflect recent changes to Doom's
startup process (in c05e615).

Ref: c05e61536e
2022-09-12 11:45:56 +02:00
..
autoload.el refactor!(emacs-lisp): flycheck config in non-packages 2022-09-12 11:45:56 +02:00
config.el refactor!(emacs-lisp): flycheck config in non-packages 2022-09-12 11:45:56 +02:00
demos.org refactor: deprecate doom-private-dir for doom-user-dir 2022-08-14 20:43:35 +02:00
packages.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
README.org revert: fix(docs): set mode in file-local vars 2022-08-07 19:08:07 +02:00

:lang emacs-lisp

Description   unfold

This module extends support for Emacs Lisp in Doom Emacs.

  • Macro expansion
  • Go-to-definitions or references functionality
  • Syntax highlighting for defined and quoted symbols
  • Replaces the built-in help with the more powerful helpful
  • Adds function example uses to documentation

Module flags

This module has no flags.

Hacks

  • Symbols that are defined in the current session are highlighted with font-lock-variable-face.
  • Eldoc will display the values of variables next to its documentation.
  • elisp-demos was modified to display API demos for Doom's standard library (in docs/api.org).
  • This module extends imenu support for Doom's API (e.g. package!, use-package, after!)
  • Flycheck has been configured to tone down the false positives when you are editing your Emacs or Doom config.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module's sole dependency is Emacs. It's very obscure, you wouldn't know about it.

TODO Usage

🔨 This module has no usage documentation yet. Write some?

TODO Configuration

🔨 This module has no configuration documentation yet. Write some?

Troubleshooting

There are no known problems with this module. Report one?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

🔨 This module has no appendix yet. Write one?