Before this commit when running "touch init.el; emacs", then the
compilation triggered by `auto-compile-on-load-mode' resulted in:
Warning (bytecomp): the following functions might not be defined at runtime:
server-running-p, magit-add-section-hook
Warning (bytecomp): the following functions are not known to be defined:
indent-spaces-mode, indicate-buffer-boundaries-left
While "make build-init" only resulted in:
init.el:193:1: Warning: the function ‘magit-add-section-hook’ might not be
defined at runtime.
This commit addresses all of these warnings:
- Don't sharp quote functions, because they resulted in invalid
warnings.
- Use the `use-package' keyword `:commands' to suppress the other
warnings, because `:functions' fails to its job even though
theoretically it is more suitable in these cases.
Multiple packages require these libraries and we don't want to
attribute the time it takes to load these libraries to whatever
dependent package happens to be loaded first.
We don't do the same for `cl-lib' because `borg' itself requires,
which is done without `use-package', i.e. without timing how long
it takes.
The mode functions may not be defined when using an Emacs compiled
with "--without-x", in which case disabling these modes (1) isn't
necessary because they can't possibly be enabled and (2) trying to
call one of these undefined function would result in an error.
Closes#21.
That way "init.el" can also benefit from `auto-compile-on-load-mode'
and `load-prefer-newer'. "early-init.el" still cannot of course,
but we already don't compile that file (for this very reason).
By default this face is not neither used nor has a visible effect.
It is used if it does `face-differs-from-default-p', in which case
it replaces `smerge-refined-removed' and `smerge-refined-added'.
Setting `:extend' makes the `face-differs-from-default-p', but it does
not make it *look* different from `default', so doing that effectively
hides the refinements.
This prevents `custom.el' from being loaded again when compiling
`init.el'. Preventing that is necessary because the use face would
otherwise be reloaded, which would undo all changes to faces that
were done using `set-face-attribute' or similar.
Many users set `indent-tabs-mode' global value to nil. And I agree with
those users, this should have been the default. But the reality is that
it isn't the default.
If you change the default locally, then your default is different from
the "default default", which is a problem because most files that were
authored by people who prefer to use tabs do NOT explicitly set the
file local value to t, because that doing so would (theoretically) be
redundant.
If you do set `indent-tabs-mode' to nil despite this, then you will end
up using spaces for indentation in files whose author decided to use
tabs. What I do instead is to set the file-/buffer-local value for all
files whose author I am. That's a bit inconvenient, but if I didn't do
that then I would have to check every contributions for tabs.