Commit graph

30 commits

Author SHA1 Message Date
syl20bnr
584392bd92 [core] Fix layer dependencies based on layer variables
There was a edge case with the declaration of the `lsp` layer in `layers.el`
files.
The `hy` layer depends on the `python` layer which in turn depends on the `lsp`
layer if and only if the `python-backend` layer variable is set to `lsp`.
When the `hy` layer was declared first then it declares the `python` layer
without its layer variables, thus the `lsp` layer was not declared because the
`python-backend` variable was not set.

The fix is to gather all the layer dependencies and resolve them only after all
the used layers have been declared.

* new function `configuration-layer/declare-layer-dependencies`
* replace all calls to `configuration-layer/declare-layer` by the new function
  except for distribution layers (we declare layer dependencies right away in
  distribution layers)
2019-09-30 02:00:48 -04:00
Brett Campbell
f170c732d7 Improve regexp for detecting Ansible files
Additional path names are now detected.

However, the patterns have also been anchored more tightly, meaning they
are more accurate, so they will match less slop (this may affect certain
edge cases where people unknowingly depended on false-positives, e.g.,
`parasite.yml').

Technical details about regexp changes:
  * Remove unnecessary `.*' at beginning
  * Anchor file names with leading `/' to prevent partial matches
      - (eg., don't match `not-main.yml')
  * Restructure capture groups so that `\\.yml' extension is at very end
  * Support `.yaml' extensions as well
  * Anchor the very end with `$'
2019-09-22 19:40:45 +02:00
duianto
5900e85abd [ansible] Fix filename regexp, escape period
The `\` backslash before `.yml` in the regex has an orange (warning)
color and describe-char says:
There are text properties here:
  face                 (font-lock-warning-face font-lock-string-face)
  fontified            nil
  help-echo            "This \\ has no effect"

Thanks smile13241324 for pointing out that double backslash escapes
a . (period).
2019-09-10 20:53:54 +02:00
duianto
145f7e56cc [ansible] Fix void-variable company-backends 2019-08-30 10:22:43 -04:00
Anatoli Babenia
c5c63f48ca ansible: simplify filename matching re 2019-08-29 21:18:28 +02:00
Ayush Goyal
5df46b200e Fix ansible layer for upstream changes in ansible minor mode
Ansible minor mode was recently updated to follow emacs-lisp style naming
convention. This commit makes corresponding function name changes in spacemacs
to fix ansible layer.

Reference:
* https://github.com/k1LoW/emacs-ansible/issues/28
* https://github.com/k1LoW/emacs-ansible/pull/31
2019-07-09 01:48:12 +02:00
Anton-Latukha
f6660f82d4
Switch to the new layers generator 2019-05-15 21:08:21 +03:00
JAremko
5d02b1c4bb Add more tags 2019-05-03 03:44:19 +03:00
Marco Zucconelli
1e84ee25be Fixing incorrect shortcuts in README 2019-02-16 10:22:35 -05:00
emacspace
45276bd96f documentation formatting: Wed Dec 5 03:03:03 UTC 2018 2018-12-04 22:06:14 -05:00
JAremko
cd39f80c24 Reformat documentation 2018-10-11 00:13:43 +03:00
Codruț Constantin Gușoi
a3debe1570 Fixes ansible key errors 2018-05-16 19:44:47 +01:00
syl20bnr
ebe4c60264 Revert "Defer packages by default using use-package-always-defer"
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.

The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
2018-03-03 23:40:10 -05:00
syl20bnr
29c78ce841 Defer packages by default using use-package-always-defer
Warning now `:defer t` is implied, to force a package to load `:demand t` is
now necessary.
2018-02-27 23:32:52 -05:00
smile13241324
82b6ee3498 Fix doc for spell-checking and ansible layer 2018-02-17 17:30:44 +02:00
syl20bnr
d1b7872ced ansible: fix error void function ansible:auto-decrypt-encrypt 2018-01-29 13:52:39 -05:00
syl20bnr
326965d4ce Happy New Year 2018! 2018-01-04 02:00:25 -05:00
Eivind Fonn
f4b53d2a4f Rename :depends to :requires 2017-07-03 09:54:53 +02:00
Eivind Fonn
08561d8631 core: implement :depends for package declarations
This replaces the older pattern
:toggle (configuration-layer/package-usedp ..)

This implementation ensures that :disabled-for honors dependent packages, i.e.
if package a depends on package b, which is owned by layer c, and layer c is
disabled for layer d, then neither package a nor b will be configured for layer
d. Previously, this was only true for package a, but not b.

This commit also fixes:

- configuration-layer/describe-package now shows which post-init and pre-init
  functions are disabled, if any
- Does not recreate all layer objects unconditionally when calling
  configuration-layer/discover-layers. Previously, this led to all layers being
  recreated after e.g. `SPC h SPC`, without any of the dotfile information.
  Since this information is now necessary for
  configuration-layer/describe-package, it’s important that we don’t clear the
  indexed layers when invoking this function.
2017-06-22 11:53:05 +02:00
Codruț Constantin Gușoi
9efe92e70d Fixes ansible-doc-mode error on SPC h d k 2017-06-14 10:49:06 +02:00
JAremko
6c5a0b2b14 update docs to the new toc-org format 2017-05-22 18:35:37 +03:00
Jody Frankowski
7c9dcbfba4 Fix ansible layer typos 2017-04-19 22:49:37 -04:00
syl20bnr
31bd788ed6 ansible: add support for multiple vault password files 2017-04-19 14:02:49 -04:00
syl20bnr
bc76c39dcb ansible: remove temporary fix
It has been fixed upstream
2017-04-19 14:02:49 -04:00
syl20bnr
fb27ede558 Bump year in copyright headers
Happy New Year 2017!
2017-01-05 23:08:17 -05:00
syl20bnr
533b80fecf ansible: temporary hack to fix modified buffer on decryption 2016-12-16 09:17:05 -05:00
syl20bnr
7b9143832d ansible: add support for company-ansible and ansible-vault
New key bindings to encrypt decrypt ansible-vault encrypted files.
New layer variable ansible-auto-encrypt-descrypt to control seamless edition
of encrypted files.
2016-12-16 08:57:45 -05:00
syl20bnr
564cbc40ed core: better behavior for dotspacemacs-download-packages
See end of this message for important breaking changes.

Previous behavior was to configure any installed package which caused
a lot of bad side effects and could make spacemacs unusable. This
behavior made little sense and does not fit with spacemacs.

This commit fixes this behavior by separating installed packages from
configured packages. In short dostspacemacs-download-packages variable
now only affect package installation. Packages are now configured if and
only if they are effectively *used* (i.e. listed in variable
dotspacemacs-configuration-layers or dotspacemacs-additional-packages).

IMPORTANT CHANGE: functions `configuration-layer/declare-used-layer` and
`configuration-layer/declare-used-layers` have been removed. These
functions have been introduced in develop branch only so the impact
should be minimal.
2016-08-19 21:04:33 -03: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
syl20bnr
2dd53426a6 Replace +config-files category by +tools category 2016-06-09 23:56:09 -04:00