Solve part of #7628. Additionally, #7629 is no longer needed.
Add support for formatting lines, functions, and buffers with clang-format. Each
function produces a clear message on success.
The README was updated to reflect the usage of the new key bindings. References
to binding clang-format to the tab key were removed.
- Change nameless prefix to > instead of default :
- Change toggle to SPC m >
- Set nameless separator to nil in order to make it work with any type or separator
- Add diminish unicode ⧁
- Define some default global aliases for Spacemacs source code
- Rename layer variable emacs-lisp-nameless-mode to emacs-lisp-hide-namespace-prefix
- Make variable nameless-current-name safe as a local variable for string values
- Set nameless prefix for core-configuration-layer.el
Fix issue #9981: rcirc /reconnect command reverts to default port.
rcirc has included a built-in /reconnect command since Emacs 25.1, which
makes the rcirc-reconnect package shipped with the Spacemacs rcirc layer
superfluous.
Modify the rcirc layer's initialization not to load rcirc-reconnect, and
delete rcirc-reconnect from the layer's local packages.
The `helm-split-window-in-side-p` variable has been renamed to:
`helm-split-window-inside-p` here: 8b5df59a14
This caused the following variable `helm-always-two-windows` to become enabled.
This patch adds a notmuch[1] layer to Spacemacs!
notmuch is a mail indexing system written in C. It provides an emacs
interface, and this patch adds Spacemacs support for this interface.
Thanks to @FrancescElies for starting this work, and working with me to
get it finished. We have been using the layer for awhile now and are
happy with the initial release!
Closes#2163
[1] https://notmuchmail.org/
Tested-by: Francesc Elies <elies@posteo.net>
Tested-by: William Casarin <jb55@jb55.com>
Signed-off-by: William Casarin <jb55@jb55.com>
Add new packages `mvn` and `maven-test-mode`.
Move `gradle-mode` configuration from groovy layer to java layer
New prefix commands `SPC m m` for maven and `SPC m l` for gradle.
Make maven and gradle commands available in java-mode.
Update documentation.
Some elfeed commands can operate on a number of entries, based on the active
selection. When selecting entries with evil (visual state), the bindings for
these commands are shadowed by visual state bindings, and can't be accessed.
To fix this, the affected elfeed bindings are explicitly defined for visual
state.
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.
As described in issue #9464, this package was removed from melpa for
not having a GPL compatible license and is causing an error every time
spacemacs starts.
Continuation of commit 8c3cf7c3ae
Fix docs for "Fish shell and ansi-term" and explicitly enable `truncate-lines`.
I was using the suggested hook as well as `(setq-default truncate-lines t)`,
so my fish shell was acting funny because `truncate-lines` was being disabled
rather than enabled.
Original Commit List
- update cycle-spacemacs-theme function to work backward with universal arg
- add a transient-state hydra to cycle through the modes
- move the transient-state definition in the +distribution spacemacs-base
- refactor using hydra syntax for expression as command
- modified cycle-theme to handle negative command argument
- add keybing for helm-themes in the transient-state
As described in issue #9464, this package was removed from melpa for
not having a GPL compatible license and is causing an error every time
spacemacs starts.
Apply idiomatic way of configuring org-babel for the cfengine engine.
Remove the documentation about how to configure it since Spacemacs does it
automatically.
Resolves https://github.com/syl20bnr/spacemacs/issues/9663
Tested to work on a created-from-scratch spacemacs-base config created with
Emacs-style, ivy preferences.
I just added below to dotspacemacs-configuration-layers
(org :variables
org-enable-hugo-support t)
After this PR, C-c C-e in an Org file shows the Hugo export options.
There is a space in the buffer name of undo-tree. The popwin did not display right and the function `undo-tree-visualizer-quit` also seems not work well until I correct the buffer name.
Motivation: so layers with their own evil states (e.g. treemacs) can also
contain their own cursor configuration
Example usage: `(spacemacs/add-evil-cursor "treemacs" "RoyalBlue1" '(hbar . 0))`
Layer READMEs don't list the configuration of the package so this commit removes
the mentions of treemacs package readme.
Reformat the documentation of layer variables
Reformat key bindings in table
Respect 80 chars max per line.
In perspective transient state. b and l keys in the docstring have no
corresponding functions declared whenever both helm and ivy layers are not
used.
Add two private variables to fix the issue:
- spacemacs--persp-display-buffers-func
- spacemacs--persp-display-perspectives-func
These variables are set to the correct functions by the helm and ivy layers via
a use-package hook.
Default is `ignore` function so b and l does nothing if both helm and ivy layers
are not used, TODO: we should find a better default function.
Shadowing is now control by layer property ':can-shadow' only.
can-shadow is a commutative relation, if layer1 can shadow layer2 then layer2
can shadow layer1.
the shadow operator is a binary operator accepting two layer names, it is not
commutative and the order of the operands is determined by the order of the
layers in the dotfile (like the ownership stealing mechanism).
If ':can-shadow' is set explicity to nil in the dotfile then the layer won't
shadow any layer.
For instance to install both ivy and helm layer:
(setq dotspacemacs-configuration-layers
'(
ivy
(helm :can-shadow nil)
)
note that due to the commutative relation the above example can also be
written (in this case, ':can-shadow' should be read ':can-be-shawdowed'):
(setq dotspacemacs-configuration-layers
'(
(ivy :can-shadow nil)
helm
)
Layers can now declare in their layers.el file that they shadow one or more
layers using the following functions:
- configuration-layer/shadow-layers
- configuration-layer/shadow-layer
Those function are commutative so:
(configuration-layer/shadow-layer 'layer1 'layer2)
is the same as
(configuration-layer/shadow-layer 'layer2 'layer1)
and means that
layer1 shadows layer2
and
layer2 shadows layer1
The typical use-case is helm and ivy layers. Helm shadows the ivy layer and
Ivy shadows the helm layer.
Shadowing is sensitive to the order of declaration of layers in the dotfile,
for instance:
(setq dotspacemacs-configuration-layers '(
helm
ivy
))
means that ivy shadows helm so helm layer is effectively ignored,
whereas
(setq dotspacemacs-configuration-layers '(
ivy
helm
))
means that helm shadows ivy so ivy layer is effectively ignored.
This mechanism can be turned off using the :can-shadow keyword:
(setq dotspacemacs-configuration-layers '(
ivy
(helm :can-shadow nil)
))
means that both ivy and helm layers will be installed (not recommended in this
case)
Note that the `:can-shadow` mechanism will be fully implemented in a next
commit.
This message is shown when Spacemacs starts:
../../Users/Username/AppData/Roaming/.emacs.d/layers/+spacemacs/spacemacs-purpose/local/spacemacs-purpose-popwin/spacemacs-purpose-popwin.el: Obsolete name arg "pupo" to constructor purpose-conf
The name argument, seems to only be needed for Emacs <= 24.3, according to this
line in the emacs-purpose package:
;; the name arg ("purpose-x-code1") is necessary for Emacs 24.3 and older
source:
00ddafcf48/window-purpose-x.el (L71)
The minimum version supported by Spacemacs is 24.4.
dotspacemacs-directory-snippets-dir contains a path to a directory with yas
snippets in ~/.spacemacs.d (or arbitrary picked dotspacemacs direcotry).
However, while it's not always present (user has to create it manually)
it is always checked while yas is loaded which generates errors.
This diffs forces checking whether the assumed path exists before adding
it to the yas-snippet-dirs.
When `evil-search-module` is set to:
evil-search:
Then `/` search highlights are cleared by pressing: `SPC s c`,
and `C-s` highlights are cleared with `:noh`.
isearch:
Then `/` highlights are cleared with `M-x evil-ex-nohighlight`,
and `C-s` highlights are cleared with both `SPC s c` and `:noh`.
| ~SPC D c~ | open docker containers buffer =*docker-containers*= |
| ~L~ | open log popup for a running container |
| ~L~ | open the log |
| ~SPC b d~ | kill the buffer |
|--------------------+------------------------------------------------------|
| Observed behaviour | the =scratch= buffer is shown |
| Expected behaviour | return to =*docker-containers*= buffer |
This makes Spacemacs stop checking their existence every time it starts,
which performs a refresh of every package archive and makes startup
slower.
firebelly, niflheim, tronesque and pastels-on-dark were all removed from MELPA
because they either don't have licenses or have licenses that are incompatible
with GPL3.
The relevant commits on MELPA are
melpa/melpa@cf92ce1a2bmelpa/melpa@c3366117f3melpa/melpa@75539c0af4
Magithub is a project under developement which took another direction, let's
wait for it to mature before adding it again to the GitHub layer.
To use it before it has been re-activated, add it to your dotfile in
dotspacemacs-additional-packages.
As it was, git-gutter and git-gutter+ get started as soon as emacs starts if
they're enabled. This added about 500ms to startup time on my machine, so this
will instead defer it until emacs has been idle for 5 seconds.
The first improvement consists of running the scale fix only for
graphical emacs. The scale fix is not needed in the terminal. Also some
poeple still have problems with it in the terminal even though they run
latest emacs master and spacemacs develop.
The second improvement is related to the way the margins are scaled. It
was incorrect to calculate the scale factor and apply it to the current
window margin width, it needed to be applied to the initial margin
width.
Solve #9115.
The company-minimum-prefix-length variable shouldn't be set to 1000. Doing so
prevents the company completion popup from showing. Instead, let the
company-minimum-prefix-length stay at its default value.
From <https://golang.org/doc/install> "Installing to a custom location"
> The Go binary distributions assume they will be installed in /usr/local/go
> (or c:\Go under Windows), but it is possible to install the Go tools to a
> different location. In this case you must set the GOROOT environment variable
> to point to the directory in which it was installed.
The function `clojure-toggle-keyword-string` will convert a string to a keyword,
or keyword to a string.
The keybinding is added under the Clojure refactor menu, in the
"cycle/clean/convert" section.
`SPC m r c :`
As this is a `clojure-mode` function, it is defined in the clojure-mode
refactoring keybinding section of packages.el.
Currently, when a tsx file is edited, the typescript layer puts it into web
mode so we can properly edit/format the html that's inside. However, with this
you lose the awesome ", g g" keybinding which takes you to a definition of
the current function/variable. You also lose the ", g u" keybinding which
gives you all references of current function/variable. This PR adds
all the tide bindings that are in typescript mode into web mode while using the typescript layer.
NOTE:
I must add ("gg" tide-jump-to-definition) to the webList because spacemacs-jump-handlers-web-mode does not exist.
Using the header below is now deprecated in React.
```js
/** @jsx React.DOM */
```
However, there are situations where I have to use the *.js extension, and need to tell my text editor that the file has JSX.
I suggest switching to JSX mode if it detects a header starting with `@jsx`. Then I'll be able to do the following without breaking react.
```js
/** @jsx */
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.
`SPC m h h` is conventional key binding to show documentation for thing under
point. It is called by `spacemacs/evil-smart-doc-lookup`, so this change makes
`K` in normal state work as expected.
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.
Problem:
Creating a new workspace from the workspaces transient state, requires that one
first looks for the next available workspace number, and then presses that
number key.
Solution:
Add the keys: `c` and `C` to create a new workspace. Lowercase exits the state
and uppercase keeps it open.
Notes:
This matches the behaviour of 0..9, which exits the state, and C-0..C-9, which
keeps it open.
This is the last key/command, from the C-c C-w eyebrowse key bindings, that was
missing from the workspaces transient state.
This happens when connecting to gitter via irc.gitter.im, for instance.
It turns out that channels are named like #syl20bnr/spacemacs. For the
logging to work, we need to create the directory #syl20bnr first.
Problem:
Two which-key functions doc-strings, state that they are obsolete:
(which-key-declare-prefixes KEY-SEQUENCE REPLACEMENT &rest MORE)
This function is obsolete since 2016-10-05;
use ‘which-key-add-key-based-replacements’ instead.
(which-key-declare-prefixes-for-mode MODE KEY-SEQUENCE REPLACEMENT &rest MORE)
This function is obsolete since 2016-10-05;
use ‘which-key-add-major-mode-key-based-replacements’ instead.
Solution:
Replace the obsolete functions.
Searching with `SPC /` through the .emacs.d folder, didn't find any other
occurrences of these functions.
Problem:
The insert link key binding `, i l` shows:
Wrong type argument: commandp, markdown-insert-link
Cause:
The markdown-mode package has renamed the `markdown-insert-link` function to:
`markdown-insert-inline-link-dwim`.
Solution:
Rename the key bindings function name.
Rename documentation to match the function name.
- bind spacemacs-layouts/non-restricted-buffer-list to SPC b B instead
of SPC B b
- rename buffer listing functions in which-key to be more explicit
PR title:
bindings: non-restricted-buffer-list-* to SPC B b instead of SPC B b
PR message:
I don't know what was the thought behind this, but `spacemacs-layouts/non-restricted-buffers-list-*` was alone in its `SPC B` prefix and `SPC b B` was almost free, only used in one layer that I would be surprised if it was widely used (`ibuffer`).
I also renamed buffers listing functions in `which-key` to be clearer for the user. Indeed, I find that names like `helm-mini` are pretty obscure and kind of defeat the purpose of `which-key` and `spacemacs-layouts-non-restricted-buffer-list-blah` was so long that it couldn't even be displayed.
Now the user can choose between `list-buffers` or `global-list-buffers` for listing buffers.
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.
- Move find-hy-executable to funcs.el and rename
- Don’t set hy-executable (not needed by anything)
- Setup hy only once at startup (allow user to override settings, see #5988)
- Use setup-hy in advice instead of post-activate-hook (works with many more
commands)
- Setup checkers pyenv change, too
- Guard checker setup function for possibly missing flycheck
- Combine all setup functions into one
Hy is typically installed on a python virtual environment, not globally. When
that is the case, init-hy-mode doesn't set any leader keys for hy since it
can't find the hy executable on the path. When a virtual environment is
activated, init-hy-mode is run again to see if it can find a hy executable
and setup the leader keys for hy.
The `swift-mode` REPL bindings have been updated to use a different
naming convention (e.g. a prefix of `swift-mode:` in the CL style).
Typing `, s s` would trigger this error:
```
command-execute: Wrong type argument: commandp, swift-mode-run-repl
```
This change fixes up the command names so that they are usable again
from the leader key.
Text:
- Rewrite, add missing words, etc.
- Remove the begin and end verse block lines, but kept the verse block text,
because Github doesn's show text in .org verse blocks.
- Change _after_ to *after*, because Github doesn't show underscores in .org
files.
- Add the Colemak, Dvorak and Workman layouts vim movement key bindings, and the
key bindings for the lost (overwritten) keys.
- Fix the image link to the workman layout image, it was missing the square
brackets.
- Link replaced: The workmanlayout.com domain name seems to have been lost.
Google Chrome warns "Your connection is not private", and the advanced
information states that the security certificate is from a "just host" domain.
The most stable replacement link seems to be the workman section on the
keyboard layout wikipedia page.
- Indicate the images that have been modified, as suggested by the CC BY-SA
Attribution section.
Images:
- Add the dvorak simplified layout.
- Fix the programmer dvorak layout, the transparent key faces made it almost
invisible when viewed in Spacemacs with a dark background.
- Rename images for type, consistency, and most common usage:
use logo instead of layout for logo names, and use layout for all layout
images, instead of keymap for some and layout for others. Layout is the most
common name, wikipedia even redirects keymap to the keyboard layout page.
- Reduce their width to 640px, so that they fit within column 80.
* restore these functions' signatures to those of their stock evil
counterparts (evil-paste-{before,after}), allowing
`evil-mc-execute-evil-paste` to paste at each cursor when there
are multiple instead of pasting at only one cursor
* retain these functions' ability to directly take a register as
input when called interactively
* regression was caused by bfb565eea9
problem:
The keyboard layouts main image, is displayed as a black rectangle, when the
readme.org file, it's opened in Spacemacs. This seems to be because there's an
issue with the transparency when a .png is saved with indexed colors.
When the transparency issue is fixed, by re-saving it as a non-indexed
(grayscale or RGB) image. Then there still is an issue, with themes that have a
dark background, i.e. spacemacs-dark. The black keys become almost invisible.
solution:
Add a 1px gray border, around the keys.
Looks like pass is trying to use variable which isn't available for some time,
at least there are no other packages using it.
`completing-read` should be universal for all completing needs I hope.