1. Don't use beginning-of-buffer (or end):
These are for interactive use only according to compiler
2. reduce => cl-reduce
3. next-line => forward-line
next-line is only for interactive use
4. set-default-font => set-frame-font
set-default-font is obsolete since 23.1
5. show-subtree => outline-show-subtree (alias)
6. show-all => outline-show-all (alias)
package-refresh-packages was called every time a bootstrap package or
a theme was installed
Use configuration-layer/retrieve-package-archives to install bootstrap
packages and themes
Add a reentrance boolean to configuration-layer/retrieve-package-archives
Add force and quiet optional arguments to configuration-layer/retrieve-package-archives
Force refresh of archive when the user requests an update of packages
Add request.el to core/libs
Refactor package.el initialization in configuration-layer.el
Cosmetic improvements to loading messages
Remove redefinition of package-refresh-packages
- Introduced new variable `spacemacs-spacemacs-number-of-rollback-slots'
which holds the maximum number of desired rollback slots.
- Introduced functionality to delete oldest rollback slot directories if
total number exceeds the configuration value.
post value for package :step property is both useless and considered
harmful. It would hijack the determinism of the loading order.
'pre value is used very very rarely and I even think it is not even
used since most of the time a package that must be loaded in pre step
is a bootstrap package. But we keep 'pre since it can be useful to
have it for _exceptional_ cases.
While doing the tests I encountered an edge case where a package owned
by the dotfile could be passed either a 'private or 'local location
which is ambiguous (moreover where do we put packages with 'local
location ?).
We remove the ambiguity by removing the 'private value and push the
path ~/.emacs.d/private/local/pkg/ when the owner of a local
package PKG is the dotfile.
When the owner of a local package is a layer then the load path is
in the "local" subdirectory of the layer directory. It adds no value
to use the old 'private location in this case.
When the package already exists, use configuration-layer/make-package
to copy information into the existing package object.
This allows overwriting location, step and excluded, but NOT owner,
pre-layers or post-layers.
Should fix#2849. The new package-delete tries to save changes to the
selected package variable during the update process and this can cause
conflicts with how spacemacs wants to update packages (and even lead to
the .spacemacs file being deleted. This is also unnecessary, because we
are only deleting the packages temporarily to be installed at the next
boot, so there should be no need to update this variable.
This change only affects Emacs 25 users.
Instead of error, show a warning that the unavailable package(s) were
skipped. This should handle situations were a package is temporarily
unavailable from MELPA (or other sources).
Helm seems to treat "!" specially in pattern matching, so having a ! in
the pattern string when traversing directories is problematic. This
change fixes#2737, because as far as I can tell "+" has no special
meaning in a helm pattern.
Of course, we can choose a different character, but I'm fond of "+" as
representing "more layers here".
- Rename contrib directory to layers
- Add new variable dotspacemacs-distribution
- Move spacemacs layer to layers/!distribution
- New layer spacemacs-core in layers/!distribution
- User can now set dotspacemacs-distribution to spacemacs or
spacemacs-core (default spacemacs)
spacemacs-core is very lightweight layer sufficient to build upon
spacemacs.
instead of the downloaded package archive. It fixes a case where
a package maintainer removes a dependency D of a package P and spacemacs
detects it which has the effect of deleting the obsolete package D, but
package-alist is not yet updated, because package-alist is updated only
when P is reinstalled (or upgraded).
Also it is not need to pass a list, example:
```
(setq dotspacemacs-configuration-layers
'((auto-completion :disabled-for org git)))
```
Will disable auto-completion for org and git layers.
Example:
(setq dotspacemacs-configuration-layers
'((auto-completion :disabled-for (org))))
Will not run any org/pre-init-xxx or org/post-init-xxx functions where
xxx is a package owned by the auto-completion layer.
Limitation:
If ownership of an auto-completion package P is stolen by another layer L
then :disabled-for must also be declared with L, otherwise the P will
be configured for org.
(setq dotspacemacs-configuration-layers
'((auto-completion :disabled-for (org))
(L :disabled-for (org)))
The user should not change the default owner of a layer unless really
required (for instance to use his own fork).
- configuration-layer/declare-layers
- configuration-layer/declare-layer
These functions can be used in the config.el file of a layer to add
required layers.
For instance the react layer needs both html and javascript layers.
salt layer needs the yaml layer (see the following commits)
It is now possible to override the recipe in a custom layer.
For instance to override the recipe R for package P in layer L
In a private layer L' put at the end of dotspacemacs-configuration-layers
and listing P with an init function for P, L' becomes the ower of
P and the recipe R' defined in L' overrides the recipe R.
The `package-delete` function refuses to delete a package that is a
depency by default, which prevents the spacemacs update function from
working most of the time.
This commit sets the flag to force deletion for Emacs 25.
Allowed properties to be overridden are: location, step and excluded
This mechanism allow the user to alter the location of a given
package, for instance if she wants to use her own fork instead of the
version in ELPA.
Note that for now there is no easy way to override the package recipes.
So if called using the universal argument or with a parameter yes is
assumed to the question to update packages. Useful for calling Emacs
in batch mode to update Spacemacs.
It's important to make templating variables something unique-looking so
that you don't accidentally write template variables where you don't
mean to. For example, in extensions.template, "package names go here"
was being replaced with "package <name of package>s go here", etc.
Also Search case-insensitively for good measure
Adding packages to this list will install them without
needing them to be wrapped in a layer.
Ideal for niche languages of any package that don't need
any configuration.
Now in addition to the <layer>/init-<pkg> function there are
- <layer>/pre-init-<pkg> (executed before <layer>/init-<pkg>)
- <layer>/post-init-<pkg> (executed after <layer>/init-<pkg>)
The init function is mandatory, if it is not present then the
package is ignored and not installed.
This mechanism allows soft (implicit) cross layers dependencies
between packages (see company for more info).
It is now possible to remove flycheck from spacemacs layer and
move it to its own syntax-checking layer.
- backup the packages to be updated
- then delete them
- the user restart emacs and spacemacs will install the last version
Fixes some update errors related to byte-compilation like the one
which affected the powerline (void variable left)
This commit also adds some page break for clarity
To prevent the .git directory from showing up when hitting "SPC f e h"
it should not be included. Hiding all hidden directories is likely the
desired behavior, instead of just ignoring ".git".