setting +write-mode-hook had no effect because +write-mode-hook was not
defined yet, it is only defined by the minor mode definition inside
autoload.el (which didn't get autoloaded yet).
Due to this when activating `+write-mode` the `mixed-pitch-mode` did not
get activated.
Fix this by moving these all to autoload.
Signed-off-by: Edwin Török <edwin@etorok.net>
Fixes an issue where reading TAGS files could cause "%s is a large file,
open literally to avoid performance issues?" prompts every time you open
a project file, if the tags file was larger than `doom-large-file-size'
If you accidentally open multiple magit status windows, you'll be stuck
in a deadlock, where `q` will do nothing. Now, +magit/quit will use
`quit-window` on excess magit-status windows instead.
Caused my misuse of if-let* to let-bind dynamic variables. The expanded
code doesn't quite work out the way I expected, causing
python-shell-interpreter to be nil regardless of which side of the
if-else statement ran.
Uses a less destructive method (the same that Spacemacs uses) than the
one introduced in 13cee68, by introducing MODE-local-vars-hook hooks,
which run after local vars have been initialized.
The old method was to call `hack-local-variables` *before* mode hooks
run, however, this causes variables set by modes to have higher
precedence than local vars, which is unacceptable.
Also moved intero-mode & dante-mode to haskell-mode-local-vars-hook
The default behavior is to read file+directory-local variables after the
major mode and its hooks have run. I think this is backwards. What if we
want to use these local variables to customize the things running in
hooks?
This does mean hack-local-variables will run at least twice when the
mode changes, but this is an acceptable compromise.
A minor optimization. assq is significantly faster than assoc (not that
it matters for this incredibly insignificant use-case, but yay for
premature optimization!)
+ Add doom-serif-font variable
+ Update docstrings of all doom-*font variables to mention that they all
support font-specs, font objects, XFT strings and XLFD strings.
+ Set doom-font if the user hasn't, ensuring that other functions know
what the current, default font is set to (fixes doom-big-font-mode not
switching back to normal when disabled).
Now that projectile-project-root has changed not throw errors (depending
on projectile-require-project-root), it is safe to change this, in case
you use other projectile commands that do require a project.