doomemacs/lisp
Henrik Lissner 42ac62df74
fix: defer projectile's project cleanup
There are two issues here.

1. Projectile uses file-remote-p to check for remote (tramp) paths in
   its known project list, when it automatically cleans it up on
   projectile-mode's activation. This causes tramp.el to be loaded,
   which is expensive.
2. file-remote-p relies on an entry in file-name-handler-alist
   (autoloaded by tramp.el) to detect remote paths, which causes tramp
   to be loaded. However, Doom sets file-name-handler-alist to nil at
   startup for a noteable boost in startup performance.

   Normally, this is not an issue, as I defer projectile-mode until well
   after file-name-handler-alist is restored, but it is trivial for a
   user to inadvertantly load it too early (often as part of another
   package that depends on it, or by blindly following projectile's
   install instructions and calling projectile-mode themselves).

In order to address both of these, I defer projectile's cleanup process
altogether. Another approach I considered was to ensure projectile-mode
wasn't activated until the right time, regardless of when projectile is
loaded, but this may trouble savvier Emacs users who need projectile's
API early during startup, so it needs more consideration.

Fix: #6552
Ref: bbatsov/projectile#1649
2022-09-06 22:55:47 +02:00
..
cli refactor: move file-name-handler-alist hack to early-init 2022-09-06 22:55:46 +02:00
lib refactor: move doom-*-reload-hook to lib/config.el 2022-09-06 22:55:47 +02:00
doom-cli-lib.el fix(cli): void-variable test error on Emacs 27.x 2022-08-18 16:14:06 +02:00
doom-cli.el refactor: deprecate doom-etc-dir for doom-data-dir 2022-08-14 20:43:35 +02:00
doom-editor.el refactor: deprecate doom-etc-dir for doom-data-dir 2022-08-14 20:43:35 +02:00
doom-keybinds.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
doom-lib.el feat(lib): backport bol & eol from 29 2022-09-06 22:55:46 +02:00
doom-modules.el fix: remove use-package-font-lock-keywords reference 2022-09-06 22:55:46 +02:00
doom-packages.el tweak: disable ahead-of-time native compilation 2022-09-06 22:55:47 +02:00
doom-projects.el fix: defer projectile's project cleanup 2022-09-06 22:55:47 +02:00
doom-start.el refactor: move gcmh config to doom-start 2022-09-06 22:55:47 +02:00
doom-ui.el refactor: deprecate doom-private-dir for doom-user-dir 2022-08-14 20:43:35 +02:00
doom.el refactor: move gcmh config to doom-start 2022-09-06 22:55:47 +02:00
packages.el refactor!: restructure Doom core 2022-07-30 22:41:13 +02:00