Previously we entered the CUSTOM IDs manually into the
documentation files to fix the html export.
However today this is done automatically during export.
In this case the manually added ids are interfering
with this process and consequently are visible in the
web pages. Therefore I have removed them again.
problem: The TOC link: Layers tips and tricks > Use-package
navigates to: The Emacs loading process > Use-package
solution: Rename: Layers tips and tricks > Use-package
to: Layers tips and tricks > Use-package init and config
As discussed in #8054 and #8136, org doesn't always export links correctly if
the syntax deviates from the one given on the org mode website. This results
in broken links on github and/or spacemacs.org as in #6722, #8036, #8054, #7956
and possibly others.
This modifies all links not already fixed in #8136. Internal links are
handled with Custom IDs. External file links are formatted according to org
guidelines as well (see bottom), and if they point to a specific headline in an
external file, a custom ID is created as well.
Fixes#6722, #8036, #7956, #7916 as well as other unreported broken
links.
http://orgmode.org/manual/External-links.html#External-linkshttp://orgmode.org/manual/Internal-links.html#Internal-links
TODO: make Custom IDs invisble in space-org-mode
Enabling a company backend for a specific mode was a tedious tasks with code
scattered at different locations, one for local variable definitions, one for
company hook function definitions and another where the backends were pushed to
the local variables (which was problematic, since we ended up pushing the same
backends over and over again with `SPC f e R`, pushes have been replaced by
add-to-list calls in the new macro).
All these steps are now put together at one place with the new macro
spacemacs|add-company-backends, check its docstring for more info on its
arguments.
This macro also allows to define arbitrary buffer local variables to tune
company for specific modes (similar to layer variables via a keyword :variables)
The code related to company backends management has been moved to the
auto-completion layer in the funcs.el file. A nice side effect of this move is
that it enforces correct encapsulation of company backends related code. We can
now easily detect if there is some configuration leakage when the
auto-completion layer is not used. But we loose macro expansion at file loading
time (not sue it is a big concern though).
The function spacemacs|enable-auto-complete was never used so it has been
deleted which led to the deletion of the now empty file core-auto-completion.el.
The example in LAYERS.org regarding auto-completion is now out of date and has
been deleted. An example to setup auto-completion is provided in the README.org
file of the auto-completion layer.
The information about location of local packages is noted in the parent section. While this can be considered enough I kept re-reading `packages.el` and couldn't find the information. Adding the information here as well makes the section more self-contained.
The new layer file `layers.el` is used to declared additional layers.
It is like the sibling of packages.el except that for now it does not
take a list (can do this in a futur commit).
The new order for file loading is the following:
layers.el > packages.el > funcs.el > config.el > keybindings.el
Since packages.el relies on some undefined stuff encapsulated
in init functions, it is not meant to be byte compiled. OTOH funcs.el
(where lies most of the computation added by a package config) should
be compilable.
Since we load packages.el very early it is not possible to use
`configuration-layer/package-usedp` in funcs.el.
This commit also fixes the tests.
Change the semantic of the files for a better control over the
configuration (like being able to use package-usedp function to
guard package configuration and function definition).
This is a big change!
The list of packages of the layer must now be placed in config.el
packages.el only contains pre-init, init and post-init functions
Now both packages.el and funcs.el can use
configuration-layer/package-usedp which is much more powerful than
just configuration-layer/layer-usedp.
Also merging into one file the layer variable and the list of packages
make sense (in this case config.el).
It also means that we can quickly load all the packages declared in
all layer for helm and ivy sources by just loading the config.el file.
Expect some regressions introduced by this change, like the helm
and ivy sources, they will be fixed in other commits.