Commit graph

1044 commits

Author SHA1 Message Date
syl20bnr
9c3802b142 core: fix SPC f e R after layer system refactoring
Correctly adds packages when resync the dofile. Also flush the layer
index before rediscovering the layers.
2016-07-29 00:00:55 -04:00
syl20bnr
1c4f685b13 core: refactor layer system
TL;DR Should get 20~25% speed improvement on startup, should get a big
improvement when using ivy or helm SPC h SPC. Users with layers.el files
in their layers must use `configuration-layer/declare-used-layer`
instead of `configuration-layer/declare-layer`

The implementation of the layer system made heavy use of `object-assoc`
and `object-assoc-list` functions which are not efficient. This PR
mainly replaces those object lists with hash maps in order to index the
objects by their name and achieve an O(1) access time.

The old object lists `configuration-layer--layers` and
`configuration-layer--packages` have been each by two variables each:
- `configuration-layer--indexed-layers` which is a hash-map of all the
layer objects and `configuration-layer--used-layers` which is a list of
all _used_ layers symbols,
- symmetrically `configuration-layer--indexed-packages` which is a
hash-map of all the package objects and
`configuration-layer--used-packages` which is a list of all _used_
packages symbols.

The hash map `configuration-layer--layer-paths` is gone, now we create
directly layer objects when discovering the layers and set the :dir
property. Note that previously the layer paths were the parent directory
of the layer, now :dir is the layer path.

The function `configuration-layer//make-layer` is now similar to its
counterpart `configuration-layer//make-package` in the sense that it
takes an optional `obj` to be able to override its properties.

The functions `configuration-layer/declare-layer` and
`configuration-layer/declare-layers` now takes an optional parameter
`usedp` in order to declare used or not used layers. For convenience
new functions have been added: `configuration-layer/declare-used-layer`
and `configuration-layer/declare-used-layers`, users _must_ update all
occurrences of `configuration-layer/declare-layer` by
`configuration-layer/declare-used-layers` in their `layers.el` files.

`helm-spacemacs-help` and `ivy-spacemacs-help` are updated to match the
changes in `core-configuration-layer.el`.

Rename some variables to make them more explicit:
`configuration-layer-no-layer` -> `configuration-layer-exclude-all-layers`
`configuration-layer-distribution` -> `configuration-layer-force-distribution`
2016-07-28 23:26:54 -04:00
Ista Zahn
84580b1d80 User configurable default company-backends 2016-07-26 16:33:42 +09:00
d12frosted
95df82ac23
fix spacemacs|use-package-add-hook usage docstring 2016-07-25 18:04:05 +03:00
Eivind Fonn
8e87132ba7 Fix possibly calling bad code after theme change 2016-07-25 14:00:02 +09:00
Cifer-Y
2e9e44e0e9 add support for omtose-phellack-theme
(omtose-darker and omtose-softer)
https://github.com/syl20bnr/spacemacs/issues/6657
2016-07-25 12:15:58 +09:00
NJBS
37ce95b362 Use Quelpa file fetcher instead of url
An upstream issue with Emacs causes local file urls to incorrectly be
interpreted as FTP addresses on Windows, see #6602.
2016-07-17 02:04:14 -04:00
d12frosted
46cc89457d
allow to install local package using quelpa
Package can be installed using quelpa if it's defined as in following
example.

(package-name :location (recipe :url local))
2016-07-15 15:13:56 +03:00
syl20bnr
653da2a6aa highlight-persist/smartparens overlay: better adaptive face
Choose to inherit from face lazy-highlight instead of region.
Ideally a theme should not set lazy-highlight to the same face as
region.

Also move some function to funcs.el and remove some empty lines.
2016-07-13 10:22:03 -04:00
syl20bnr
f1247c8d18 core: new variable dotspacemacs-frozen-packages
Packages listed in dotspacemacs-frozen-packages cannot be updated or
rollbacked.
2016-07-09 14:58:30 -04:00
syl20bnr
e7dcf16670 core: rename configuration-layer--skipped-packages
to configuration-layer--check-new-version-error-packages
2016-07-09 14:58:30 -04:00
syl20bnr
ad3eb41c52 core: use version info and package desc for dependencies
when installing from ELPA repositories.
2016-07-09 14:58:30 -04:00
syl20bnr
2152f66b9f core: add min-version keyword to package list
Providing a min-version allows to fetch the elpa version of a built-in
package. For intance to install python mode from GNU elpa, add to
the dotspacemacs-additional-packages:

(python :location elpa :min-version "0.25.2")
2016-07-09 14:58:30 -04:00
syl20bnr
7e82535bf3 core: remove variable user-dropbox-directory
This feels weird to set as default a variable using a third-party
service like Dropbox. Was OK when Spacemacs was less popular, now this
variable has nothing to do in this project.
2016-07-06 20:46:31 -04:00
MadAnd
a87341e8ac Add Dropbox directory to load-path only if exists 2016-07-06 20:45:02 -04:00
deb0ch
e097600279 center ascii banners in home buffers
also remove now unneeded leading whitespaces in ascii banners
2016-07-05 19:50:57 +02:00
d12frosted
5b9e84ea72 improve font documentation
- make it clear that setting dotspacemacs-default-font has no effect in
  terminal
- make it clear that it's user responsibility to install Source Code Pro
  font
2016-07-05 00:23:16 -04:00
deb0ch
862eb68f7c fix home buffer random banner choice
Random banner choice was broken by the presence of the `img` directory.
Even if `random` was set instead of `random*` in .spacemacs file the
cate banner would still show.

This commit fixes this bug while simplifying the existing code by adding
a regexp filter to only choose "*.txt" files.
2016-07-05 00:23:16 -04:00
syl20bnr
85494376c3 core: add tests for make-package 2016-07-05 00:23:16 -04:00
Allen Li
45afa3be19 Don't un-exclude an excluded package
If a layer using a package is loaded after a layer excluding it, the
exclude flag should not be overwritten.
2016-07-05 00:23:16 -04:00
Damon Wang
2b0787f5eb Fixes display of per-binding docs in micro-state
Previous behavior, if a micro-state binding had :doc not nil, was an error
  Wrong type argument: stringp, 1

Detailed reproduction:
cat > /tmp/test.el <<EOF
(spacemacs|define-micro-state test
  :doc "[a] a [b] b [q] quit"
  :bindings
  ("a" nil :doc "a")
  ("b" nil :doc "b")
  ("q" nil :doc "quit" :exit t))

(spacemacs/test-micro-state)
EOF
emacs --load /tmp/test.el

Type a, b, or q and see the error in the echo buffer.
2016-07-05 00:23:16 -04:00
ralesi
1a13cba730 Fix #6429, provide tests for new startup-list. 2016-06-26 14:09:12 -04:00
d12frosted
86c7796fa8 allow to set dotspacemacs-filepath 2016-06-26 14:07:16 -04:00
Eivind Fonn
38814881dc Allow user more control over space-doc mode 2016-06-26 13:27:51 -04:00
bmag
8d0b0354ce Toggles: print message only in interactive usage 2016-06-26 13:25:14 -04:00
syl20bnr
a713189685 core: fix footer display 2016-06-24 18:52:08 -04:00
ralesi
052142ab33 Add list length designstion to startup-list.
* Allow dotspacemacs-startup-list to contain cons cells, specifying list
  length for items.
* Deprecates dotspacemacs-startup-recent-list-size
2016-06-24 18:52:08 -04:00
Eivind Fonn
07829f8e43 Allow space-doc to be excluded 2016-06-24 10:41:10 +02:00
leon
a2448be4f1 Fix spacemacs-start-directory variable definition
Should use defvar so that user can override the default value.
2016-06-23 22:36:03 -04:00
ksjogo
4d4e89641e fix spacemacs buffer for -nw and --batch 2016-06-23 00:42:57 -04:00
syl20bnr
cbb61070fd Replace some emacs-user-directory vars and update documentation 2016-06-23 00:25:04 -04:00
Exaos-memes
904f7ea665 Define new variable: spacemacs-start-directory.
With this new variable, user can load spacemacs anywhere, e.g.
"~/.emacs.d/spacemacs/". Only user's cache directory is still hard-coded
as "~/.emacs.d/.cache/". If user want to use spacemacs this way, drop
one line as the below in "~/.emacs.d/init.el":

    (setq spacemacs-start-directory "~/.emacs.d/spacemacs/")
    (load-file (concat spacemacs-start-directory "init.el"))
2016-06-23 00:19:34 -04:00
syl20bnr
290f5fd6a2 core: add argument to cfgl-package-enablep to disable messages
To avoid logging the same messages each time the toggle is resolved.
2016-06-21 19:04:59 -04:00
km
d7820aafd6 Remove even more 24.3 related configuration
Helm-flx, which is included as a core package, requires a minimum Emacs
version of 24.4. As it stands attempting to install Spacemacs on Emacs
24.3 or below will break on helm-flx.
2016-06-20 22:26:53 -04:00
Eivind Fonn
92b48eadea 💣 Drop support for Emacs 24.3
Spacemacs now needs at least 24.4 to launch.
2016-06-20 22:05:56 -04:00
syl20bnr
117dcba0ed Revert "Drop support for Emacs 24.3"
This reverts commit 31bab70397 making
a new commit to put TheBB as the author.
2016-06-20 22:05:12 -04:00
syl20bnr
31bab70397 💣 Drop support for Emacs 24.3
Spacemacs now needs at least 24.4 to launch.
2016-06-20 21:55:36 -04:00
syl20bnr
41af5fd9d7 Change default dotspacemacs-startup-lists value to nil
I think it is a better default since it makes the startup buffer less
bloated which is a good thing for newcomers.
2016-06-20 21:32:07 -04:00
syl20bnr
57350a3b48 core: reimplement :packages keyword and update documentation
Old implementation excluded package that were not selected, this
implementation does not excluded them, it simply ignore it in the
layer where they are not selected. This reimplementation comes from
a refactor of the way packages.el files are loaded, instead of loading
these files at the moment of resolving the list of used packages, they
are now loaded when making the layer objects. A neat consequence is that
side effects is better confined and the configuration-layer/get-packages
is now pure (at least a lot more pure than before).
In the `cfgl-layer` class the slot `:user-packages` has been renamed
to `:selected-packages` which defaults to `'all` meaning that all
the packages in `:packages` are selected. `:selected-packages` value
is given by the new function `configuration-layer//select-packages`.
Effectively selected packages are given by a new method for `cfgl-layer`
class called `cfgl-layer-get-packages`.

Tests have been updated to reflect the changes.

Also documentation on configuration layer declaration in the dotfile
section of DOCUMENTATION.org has been greatly improved (I hope) and
reflect the last feature added to the
`dotspacemacs-configuration-layers` list.
2016-06-20 20:48:25 -04:00
ralesi
704732fc84 Reimplement #5339 by justbur to add :packages keyword. 2016-06-19 22:07:44 -04:00
Eivind Fonn
dfad604faa core: fix possibly negative string length 2016-06-13 10:59:29 +02:00
syl20bnr
8368be3c89 core: display a numerical progression in mode-line
Represents the number of packages to configure.
2016-06-13 00:56:25 -04:00
neutralevil
8b6356d270 Fix init error for emacs in terminal mode
The code block passed to `spacemacs|do-after-display-system-init`
is never invoked if emacs is running in terminal mode.
2016-06-13 00:25:39 -04:00
syl20bnr
dc94784e70 Remove leuven theme from spacemas-ui-visual and simplify default value
for dotspacemacs-themes, set only the spacemacs themes.
2016-06-12 21:15:10 -04:00
Albin Ludvig Otterhäll
9e3f75a36f Remove references to Solarized themes
Solarized themes has been removed from the default distribution of
Spacemacs.
2016-06-12 21:12:34 -04:00
syl20bnr
768ec3fc50 core: fix configuration-layer//warning function
Correctly apply arguments to the spacemacs-buffer/warning funcion.
2016-06-12 21:09:22 -04:00
Carl Lange
a00045d410 Fix duplicated layer string format error
I had a duplicated layer, but the message that's printed broke spacemacs starting up because it was a format string but wasn't in a `format` form. Simple fix. Spacemacs works again! Yay!

This issue was introduced in c0851ddcb3, according to a quick `git bisect`. :)
2016-06-12 12:58:38 +01:00
syl20bnr
1b77fd84b0 core: fix infinite loop :-) 2016-06-11 01:15:35 -04:00
syl20bnr
4f5d7670f1 core: fix typo with configuration-layer--inhibit-warnings 2016-06-10 23:41:33 -04:00
syl20bnr
c0851ddcb3 core: new variable configuration-layer--inhibit-warnings
If non nil then the configuration system does not emit warning.
2016-06-10 22:47:45 -04:00