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.
- Use completing-read when called interactively
- Check for string locations in addition to built-in etc.
- Don’t double-princ on/off for toggles
- Bind to SPC hdP
This new variable replace dotspacemacs-delete-orphan-packages
It defines the behaviour of Spacemacs when downloading packages.
Possible values are `used', `used-but-keep-unused' and `all'.
- `used' will download only explicitly used packages and remove any
unused packages as well as their dependencies.
- `used-but-keep-unused' will download only the used packages but won't
delete them if they become unused.
- `all' will download all the packages regardless if they are used or
not and packages won't be deleted by Spacemacs.
Default value is `used`.
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.
The purpose of `projectile-find-test-file` is not obvious
and it is not applicable to all languages.
Actually running the tests seems like a more useful and intuitive binding.
New section Special Mentions, first mentions attributed to:
StreakyCobra
justbur
CestDiego
JAremko
Rename Special section to Special Titles
Give The Librarian special title to JAremko
By convention, jump back should be on `b`, not `u`
Since `SPC j u` is free, move as well `SPC j U` to `SPC j u`.
`SPC j b` for bookmark jump is already available under `SPC f b`
Also:
- switch spacemacs layouts to the same.
- Add “wD” for ace-delete-window
- switch window dedication toggle to “wt”
- all documentation has been updated to reflect these changes
Closes#5031
Unless there is a valid reason why these shouldn't be included I think
we should keep them. after all we can yank with `v y` right?
squash! Add documentation
Key bindings should not be choosen given a package name, some helm
key bindings are under `SPC h` which are corrected the following way:
SPC h l for helm-resume to SPC r l (resume last completion)
SPC s l for last-search to SPC r s (resume search) (SPC s l is still
available)
SPC h L for helm-locate-library to SPC s L
Resolve#4592
Bind it to `SPC h d d` as it's a way to describe a lot of elements:
- commands
- functions
- classes
- generic functions
- variables
- faces
- helm-attributes
Is also bound on `SPC F1` and will also stay there.
`SPC j j` is now for avy-goto-char (SPC SPC in 0.105)
`SPC j J` is for avy-goto-char-2
`SPC j s` is for splitting strings or sexps
`SPC j S` is for splitting strings of sexps, insert new line and indent
`SPC j n` is to split line at point, insert new line and indent
Use mnemonic j for jumping commands. Although some of these commands
exist in other places, they are duplicated here when they don't
conflict.
Add:
1. jb for bookmark-jump
2. jc for avy char jump
3. jd for dired-jump
4. jD for dired-jump-other-window
5. jf for find-function-at-point
6. ji for spacemacs/jump-in-buffer (imenu)
7. jI for helm imenu in all buffers
8. jl for avy go to line
9. ju for avy-pop-mark (u for "undo")
10. jU for spacmacs/avy-goto-url
11. jv for find-variable-at-point
12. jw for avy go to word or subword
Move:
1. jh to j0 (push mark and go to beginning of line)
1. jl to j$ (push mark and go to end of line)
This make `SPC h SPC` as default binding for accessing `helm-spacemacs`,
by either A) changing all the documentation; and B) adding a deprecation
message for `SPC f e h`.
The deprecation use a warning, because if a message is used it's hidden
directly when the helm buffer is shown, making it nearly unnoticeable
for the user.
This commit merge the `CONTRIBUTING.md` and `doc/CONTRIBUTE.org` file
into a new `CONTRIBUTING.org` file. It also refactors the content to be
more organized and make its navigation more goal-oriented.
Github displays a link to the `CONTRIBUTING.*` file when people are
opening new issues or proposing new PRs. This file is important because
it is the entry-point to contributions guidelines for most of the users.
The current setup is non-optimal, even broken, as it adds a level of
indirection, and points to a contributing file that has broken
links (due to the new documentation format). The possible drawback of
the proposed solution is that I'm not sure if it is possible to include
it into the new online documentation as it is not in `doc/` folder.
The other possibility is to keep a small `CONTRIBUTING.md` file, as it
is now, pointing to the new documentation system (once online), but I'm
preferring the proposed solution for the following reasons:
- People that are willing to contribute will probably open Github
first (for forking, creating PR, etc), not the online documentation.
- It has one level of indirection less when people click on the
guidelines guide from a new issue/PR.
- `CONTRIBUTING.*` is by convention a special kind of file on github, so
it's valid reason to break the rule and not having it in the `doc/`
folder.
The Tiler: bmag
The Geometer: TheBB
The Tiler is for being an Emacs windows expert.
The Geometer is for being an expert in Emacs mode-line and for the "line"
and "segments" (spaceline).
* Set `neo-vc-integration` to `nil` for much better performance
* Add documentation for the `neo-vc-integration` setting.
* Add documentation for the `neo-theme` setting.
- Default projectile settings are to disable caching when indexing
method is `alien. So setting the indexing method should be enough.
- On windows we keep the 'native method unless find is found
I found it annoying to have to re-navigate to the *compilation* window
and close it after every time I compile with `SPC p c`.
This patch adds a binding to make closing this window fast and easy.
Also a little bit of clean up.
As `SPC L` has moved to `SPC l` and avy is now on `SPC y`, the FAQ has
to be updated because the evil-leader example doesn't make sense any
longer. The question is also moved to "How do I …" where it belongs.
The code has also been updated to be a little bit cleaner.
After the change in 1d340dcc77,
there was some grumbling in gitter that `SPC L` is not as convenient
as `SPC l`. Apparently avy-goto-line is a popular function.
`SPC y` is chosen because it is:
- currently unused (as far as I can tell).
- sort of mnemonic because "avy" has a "y" in it.
- doesn't require SHIFT to type
- is accessible even on non-US keyboards
(there were suggestions such ";" and "\" that are not as accessible
on non-US keyboards)
This change also updates the documentation regarding the change from
ace-jump-mode to avy.
I feel that it is not needed because it makes not a lot of sense to
have it non global since it is a dotfile variable.
Also remove ' from the docstring for consistency.
Add the `lorem-ipsum` package to insert text, and bind it to:
* `xil`: lorem-ipsum-insert-list
* `xip`: lorem-ipsum-insert-paragraphs
* `xis`: lorem-ipsum-insert-sentences
`x` as it's text related, and `l` for `list, `p` for `paragraph` and `s`
for sentences.
`global-linum-mode` is making line numbers appearing in `*spacemacs*`
and `helm` buffers, what is annoying.
This change make the linum `SPC t n` toggle buffer-local, and add a
customization variable in `.spacemacs` to enable line numbers globally.
«Globally» here as to be understood as «in `prog-mode` and `text-mode`».
Merging the HOW-TOs inside the FAQ allows to have a central place to
look for information. It will also offer all HOW-TOs through the
`SPC f e h` helm search.
This commit apply the following changes:
- Remove leading whitespaces
- Apply fill-paragraph to justify answers' paragraphs.
- Add question: how to define/change an evil-leader prefix?
- Add question: user-init or user-config?
For buffers, `*` search for the word under the cursor, and `/` ask to
search for an expression. To keep the same mnemonic at project level,
this commit change `SPC /` to ask for an expression to search, and add
`SPC *` to search for the expression under the cursor (in fact the only
difference being the expression pre-filled inside the input field).
Add a release note about the limitation of org loading since 0.105, and
also document it in the org-layer's README.
Close#3277
Move note to FAQ and correct text to 0.104
Add a spacemacs update button to the spacemacs buffer, and relabel the
package update button to read "Update Packages". This will hopefully
resolve some confusion about updating spacemacs vs. updating the
packages.
I also tweaked the switch-to-version function to make it a little more
verbose to use it for the spacemacs update button.
This makes all Notes in DOCUMENTATION.org be *Note*: and changes the
markup around the spacemacs init file path in jabbers README.org to
proper org markup.
This change add a `switch-to-scratch-buffer` function allowing to – you
guessed it – switch to the `*scratch*` buffer, taking care of creating
it if necessary. The function is bind to `SPC b s`, `b` as it concerns
buffers, and `s` for `scratch`.
Emacs provides a `count-words-region' which is badly named as it counts
not only words, but also characters and lines. The current keybinding
for this function `SPC x w c' implies it's referring to words only. The
new mapping `SPC x c` is more coherent since it means counting text,
whether it is characters, words or lines. An alias `count-region` is
created to be less confusing in which-key description.
`SPC x w c` being free, `spacemacs/count-words-analysis` is remapped to
it instead of `SPC x w C` to save one keystroke.
The function `spacemacs/avy-open-url` allows to easily select an URL on
the screen with `avy` and open it. The function is bind to `SPC x o`,
`x` as it is text-related and `o` for open.
Add the `FAQ.org` file as a source in helm-spacemacs (`SPC f e h`).
Define a new keybinding for looking directly inside the FAQ with helm:
`SPC f e f`.
With help from TheBB, thanks!
"Search for files" means that the command looks for files, while actually `SPC s f` searches in some files for lines that match the given search pattern. Changed it to "search in files" to better reflect what the command does.
Import TheBB configuration into Spacemacs and add `C-S-h` to replace
redefined `C-h` binidng.
Also remove the go up a directory behavior on backspace, now backspace
is a regular backspace.
Put the toggles on SPC t E with
SPC t E h -> holy-mode
SPC t E y -> hybrid-mode
Make the mode-line diminished lighter consistent with the key bindings,
so holy is Ⓔh and hybrid is Ⓔy
Add seamless switch between holy and hybrid.