The `SPC f a` keybinding was already used by the `fasd` layer so a
workaround had to be found for the newly introduced one.
Refs: c2e377c902
Refs: #11224
Thanks @agzam for pointing it out and investigating potential solutions.
Define an alias and use it internally so that (1) the name of the command will
be better to understand what it does than the original name and (2) Helm or Ivy
interface is invoked instead of Ido.
These are suggested in PR #11115.
`SPC f e f` key binding is no more present, so moved that table entry to
`SPC h f` in DOCUMENTATION.org.
corrected description of paste transient-state behavior.
* add new dotfile function `dotspacemacs/user-env`
* add ignored env. vars with variable spacemacs-ignored-environment-variables
* ignore env vars: SSH_AUTH_SOCK and DBUS_SESSION_BUS_ADDRESS
* update documentation in DOCUMENTATION.org
* update .spacemacs.template with new function
* rename environment file from spacemacs.env to .spacemacs.env
* move location of .spacemacs.env file to home or dotdirectory
* add a header to the generated .spacemacs.env file to explain what it is
* make SPC f e e fallbacks to the function dotspacemacs/user-env if the user
manages the env var by themselves
* make SPC f e E call the new function dotspacemacs/user-env
* sort environment variables in .spacemacs.env file
See updated DOCUMENTATION.org and FAQ.org for more info.
* add core-env.el
* add library load-env-vars.el
* add bootstrap package dotenv-mode.el
* remove spacemacs-environment from bootstrap layer
* remove dotspacemacs variable dotspacemacs-import-env-vars-from-shell
* remove dotspacemacs variable dotspacemacs-improt-env-vars-shell-file-name
* add new key binding SPC f e e to open spacemacs.env file
* add new key binding SPC f e E to reload environment variable from env file
* add new key binding SPC f e C-e to re-initialize the env file from shell.
* new variable dotspacemacs-import-env-vars-from-shell
* asynchronous import of environments variables
* move loadenv function to funcs.el
* update documentation
Replace push with add-to-list in layer init functions and related code.
Modify spacemacs|add-toggle to check for and update an existing toggle in
spacemacs-toggles and only create a new toggle if none already existed.
Replace a conditional push onto erc-packages with use of :toggle.
When initializing which-key, set which-key-replacement-alist to its default
or customized setting before adding all the Spacemacs replacements. We
want to keep the stock replacements but avoid adding duplicates of the
Spacemacs replacements.
Replace the emacs-lisp-mode-hook lambda with a named function to avoid
adding duplicate hooks (which can add duplicate definitions of the
evil-surround pair).
Emacs 26.1 will introduce a new native line numbers feature:
"display-line-numbers". It includes relative line numbers, is faster than
current linum-mode, and doesn't use the margin area (it has its own area). So
yeah, we want to use the new feature when possible.
No changes are required on the user side, except for Emacs 26 users are
recommended to remove nlinum layer from their configuration (if they have
enabled it).
With this change:
- Emacs 26:
- uses display-line-numbers by default.
- linum and linum-relative packages are excluded.
- Emacs 25:
- does NOT use display-line-numbers.
- continues to use linum and linum-relative.
- nlinum layer:
- can still be used as before in Emacs 25.
- is NOT recommended in Emacs 26, but can be used.
- when enabled, excludes display-line-numbers.
Also contains some bug fixes:
Fixes a bug where setting `dostpacemacs-line-numbers` to `t` or `relative`
enabled line numbers in every buffer, instead of only in buffers that derive
from prog-mode and text-mode.
Likewise fixes a bug where specifying `:enabled-for-modes nil` (or not
specifying `:enabled-for-modes` at all) in `dotspacemacs-line-numbers` settings
meant "enable in all modes" instead of "enable in modes derived from prog-mode
or text-mode".
Because of this change, also adds a way for users to enable line numbers
in *all* buffers.
Removes check for special buffer. All our current checks should be enough to
enable line numbers only where it makes sense. Disabling in all special buffers
is not necessary.
c.f. https://github.com/syl20bnr/spacemacs/issues/1261
I am currently going between many programming languages and the current solution falls short for me. The 'prog-mode-hook seems to work pretty well.
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.
Since we have now a variable for the mode-line theme, it makes sense to move
the scaling of the mode-line to this variable. Thus the property
=:powerline-scale= of variable dotspacemacs-default-font has been removed and
it is replace by the property =:separator-scale= used in the variable
=dotspacemacs-mode-line-theme=.
This commit also adds a the property =:sperator= for the variable
=dotspacemacs-mode-line-theme= which allows to set the separator type.
Example of the final result:
dotspacemacs-mode-line-theme '(all-the-icons
:separator cup
:separator-scale 1.5)
Documentation has been updated to reflect the changes.
New layer variable `dotspacemacs-mode-line-themes`:
Set the theme for the Spaceline. Supported themes are `spacemacs',
`all-the-icons', `custom', `vim-powerline' and `vanilla'. The first three
are spaceline themes. `vanilla' is default Emacs mode-line. `custom' is a
user defined themes, refer to the DOCUMENTATION.org for more info on how
to create your own spaceline theme."
See DOCUMENTATION.org changes for more info.
This commit adds support for `spaceline-all-the-icons` package.
`SPC b H` is available, for opening or selecting the help buffer (if it
exists). This makes it much easier to open the help buffer, than having
to open the buffer list (`SPC b b`), then typing one or more characters,
to select the help buffer, and finally pressing `RET`.
Modify macro spacemacs|add-toggle to create additional sets of functions for
each supported modes when the toggle is major mode specific.
A toggle is major mode specific when it is bound to keys using the keyword
:evil-leader-for-mode
Updare documentation to add a section on toggles in the Spacemacs concepts.
The Frame delete bindings SPC F c and C, are inconsistent with the delete window
and buffer bindings, that use: d and D
Changed the dired-other-frame binding from d to O
Add the key binding: t
to open helm-themes, without having to use the arrow up key.
Reorder/rename: cycles backward and cycles forward
to: next and previous
Next is listed first, because it's the most common action, and it matches the
order in other transient states.
Change the t argument in the call to spacemacs/cycle-spacemacs-theme, to the
symbol 'backward, to make it clear what the argument does.
Add documentation for the Themes Transient State bindings.
We have README files for helm and ivy. Completion section says that user should
refer to specific readme file for further instructions and details. There is no
point to duplicate ivy documentation.
This is similar to the `Ctrl+Shift+T` keybinding found in major browsers, and
helps when accidentally killing a buffer (i.e. fat-fingering `SPC b d` when
meaning to press `SPC b s`).
Only buffers that resolve to existing files will be considered, and stored in a
stack which is pushed to and popped from on buffer kill.
Group together the which-key entries that call the same command:
k and - becomes k,-
u and _ becomes u,_
Declare a prefix name for SPC x i, this changes the SPC x entry:
from: "i -> +prefix"
to: "i -> +inflection".
Capitalize the transient state title, so that it matches the other TS titles.
Sort the code and documentation key bindings alphabetically.
At the moment a Quelpa recipe like `(recipe :fetcher local)` is being translated
to something like
`(recipe :fetcher file :path "my-layer/local/my-pkg/my-pkg.el")`. So we can
build simple single-file local packages.
This commit changes it to translate to the package directory instead of exact lisp
file, so we can build multi-file local packages. Thus, the above example will be
translated to `(recipe :fetcher file :path "my-layer/local/my-pkg")`.
Also, add the relevant info to LAYERS.org.
This commit adds a custom layout for mu4e related buffers. Four different major
modes are used in mu4e buffers based on their purpose, so a function is used to
add buffers in these modes to the new layout. This setup is largely based on
that of the ERC layers custom layout.
The keybinding has changed from `SPC h l` to `SPC r l`; see the changelog, entry
0.200.0 (2016/10/02). So correct the documentation to reflect that.
`SPC h l` is currently bound to `helm-spacemacs-help-layers` (on branch
`develop`).
It is an Emacs-wide convention to use `RET` when referring to the act of
pressing the return key. Spacemacs seems to follow that convention as well. So
fix some Org files that were deviating from this convention.
In particular, replace usages of `<return>` and `return` with `RET`.
Also update the description of an `M-RET` keybinding[1] based on the docstring
of `ido-select-text`.
[1]: Suggested-by: bmag <bmag@users.noreply.github.com>
Add brew commands for Source Code Pro installation to installation instructions
in README.md, describe command usage and add missing capitalisation.
Concentrate installation instructions
Make installation instructions more beginner-friendly, concise and thorough:
- Add Git to prerequisites
- Move specific git clone instructions for Windows users from beginners
tutorial to README.md
- Move fallback font installation instructions and info from beginners tutorial
to README.md
- Remove redundant install steps from beginners tutorial
- Misc. typo fixes and wording improvements
- Fix broken org link, make links relative as in other documentation and get
them to work correctly in github, spacemacs.org and Spacemacs.
- Add instructions for copying the tutorial and editing it for org mode intro
purposes. The instructions for testing org-mode did not work when the tutorial
was opened in read-only mode.
- The link to the FAQ was said to be online while it would open inside
Spacemacs when clicked. The wording is improved to reflect the actual
behaviour.
- Replace instances of "enter" with "~RET~".
It was `SPC q z` but:
1. 'z' is not a mnemonic for "frame" (although it may be more familiar to vim
users).
2. More importantly, it's *really hard* to type 'qz' on a qwerty keyboard.
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
Specifying parent modes (e.g. prog-mode) in :enabled-for-modes and
:disabled-for-modes keys in dotspacemacs-line-numbers catches derived
modes (e.g. c-mode) as well.
Fix bug where an empty :disabled-for-modes and a non-empty :enabled-for-modes
enabled line numbers everywhere, instead of only in modes specified in
:enabled-for-modes. (see https://github.com/syl20bnr/spacemacs/issues/8482)
Add auxiliary function spacemacs/derived-mode-p, similar to derived-mode-p but
takes a major-mode as an argument instead of using the current major-mode.
In this case Spacemacs won't write custom variables to the
dotspacemacs/emacs-custom-settings variable.
Move setq and add-advice to spacemacs/initialize-custom-file which is now
called in spacemacs/init function just after dotspacemacs/user-init function.
New functions:
- configuration-layer/get-location-directory which return the location on disk
given a location
- spacemacs//get-theme-directory which returns the location on disk of the
theme
Add note in documentation to warn about the directory name when :location local
is used, the directory name is the package name not the theme name.
It is now possible to use package properties like :location in
dotspacemacs-themes.
Added hooks ran at the beginning and end of configuration-layer/sync:
- configuration-layer-pre-sync-hook
- configuration-layer-post-sync-hook
configuration-layer-pre-sync-hook is used to hook the new function
spacemacs//add-theme-packages-to-additional-packages. This new function updates
dotspacemacs--additional-theme-packages variables.
Update documentation to mention the new feature.
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
Since org 9 internal links must be declared either as #customID
or textTargetOrFullTextSearch. Relative path links must
be either file:relative/path or ./relative/path. Many links
are using the #customID form to trigger a full text search which is not
defined as to the org documentation. In addition relative file paths are
declared as relative/path which is also not defined. If this is done
the html export can fail. Therefore these links must be corrected
for the files where they break the html export.
Fixes#8054 for all spacemacs documentation files.
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.
Updated the FAQ evil-escape documentation link to point to the "14.1.1 Escaping" section of the documentation, where the evil-escape function is described.
Currently the FAQ evil-escape documentation link points to http://spacemacs.org/doc/DOCUMENTATION.html#orgheadline78, which takes you to the "13.1 Layouts" section of the documentation.
spacemacs/alternate-window was suggested to switch between the last selected
window, or the window-analog of SPC TAB (spacemacs/alternate-buffer). This is
part of a larger family of functions, such as spacemacs/jump-to-last-layout on
SPC l TAB and eyebrowse-last-window-config on SPC l w TAB.
Resolves#7845
CHANGES
-------
Add new keybinding to neotree to allow the copying of nodes from the neotree
buffer. Update documentation as well.
WHY
-------
There appear to be all other common file operations bound to the neotree buffer,
however copying of a node is not.
Amend suggested fixes:
- Add chapter on key notation
- Fix document structure according to conventions
- Add note on emacs path on Windows
- Expand on evil and emacs mode explanations
- Expand on first startup procedure
- Various typo fixes and clarifications
from https://www.emacswiki.org/emacs/CopyingWholeLines
Duplicate current line, or region if active.
With argument N, make N copies.
With negative N, comment out original line and use the absolute value.
keybinding: `SPC x l d` (text - line - duplicate)
Toggling the time is a segment so it is more consistent with the rest
of the lowercase keys.
Toggling the whole mode-line feels better on a capital letter.
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.