outshine layer: Add "Features:" section to the README
outorg: use `a O` instead of `a o o` as a prefix
outshine: add transient state
outshine layer: (re)document keybindings, add imenu keybinding
outshine layer: fix outorg mode keybinding documentation
address review comments
README.org
Buffer formatting, first paragraph
The apostrophes before: yapf and black
caused the org emphasis verbatim equal signs to be visible.
config.el
python-formatter variable docstring
An apostrophe instead of a backtick, before the possible value: lsp
caused it to be shown with the default docstring color.
After the latest change the list of bindings
has been changed to a dynamic form which
is not only slow but very hard to maintain.
I have replaced the list with the original one
and replaced the fixed line with backquote notation
to keep it static.
* Issue
* It could not correctly bind a prefix.
* where `dotspacemacs-emacs-command-key` is modified,
* it continuously binds a `M-x` prefix to `SPC`
* `SPC` always looks as `M-x`
* Solution
* `SPC`, hard coded `string`, was modified to `dotspacemacs-emacs-command-key`
* Expectation
* When a `SPC` prefix is bound, it should be displayed as the registered name.
Some modes have compilation-mode as parent mode but the ansi coloring
scheme is breaking their highlighting.
i.e. https://github.com/Wilfred/ag.el/issues/124
Fix this by applying ansi-colors only when the major mode is
compilation-mode.
Signed-off-by: Loys Ollivier <loys.ollivier@gmail.com>
Back in commit ac3752ffd, the binding for `vterm` was updated to fit in with the
rest of the `shell` layer bindings (under `SPC a t s v`). However, the `README`
was not updated to match. This commit updates the `README` for the `shell`
layer.
Relates to #13503.
After using Java mode, Gradle keybindings infect or even clobber keybindings of
any subsequently used major-mode. For example, the critical Agda major mode
keybinding of `l` as `agda2-load` gets with a Gradle menu!
The cause, found by @duianto, is that `emacs-gradle-mode` sets itself to a
[global](e4d665d578/gradle-mode.el (L176-L183))
minor mode. The docs for `define-minor-mode` say about `:global:`
> If non-nil specifies that the minor mode is not meant to be
> buffer-local, so don't make the variable MODE buffer-local.
> By default, the mode is buffer-local.
I don't know why `gradle-mode` is doing this; presumably there is some reason or
need for it. But the author of that package hasn't been on GitHub since 2017,
and the last update of the package itself is from early 2015.
To seal the deal, `gradle-mode` hasn't been working anyway (at least, I've never
got it to work). I've been running Gradle by launching a terminal within Emacs.
Fixes#13750.
Add key bindings to refactor namespace forms for existing functions in CIDER.
"ran" 'clojure-insert-ns-form
"raN" 'clojure-insert-ns-form-at-point
"run" 'clojure-update-ns
The evil state foreground color on the mode-line was set to
the mode-line background color.
This caused problems with some themes.
[FEATURE REQUEST] Darker option for mode-line color codes #13731
Solution:
Set the evil state foreground color to the darker of the
mode-line face foreground or background colors.
* Sending <kbd>Esc</kbd> to vterm using `vterm--self-insert` results in `1;5u`,
using `vterm-send-escape` instead.
* <kbd>Ret</kbd> is not sent by `vterm--self-insert`, using `vterm-send-return`
instead.
A few of the layer's keybindings are shadowed when using the LSP backend:
- `F` - format buffer using stylish
- `hh` - lookup on Hoogle
- `gi` - navigate to imports
These are useful shortcuts to keep, so when the LSP backend is in use they are
rebound like this:
- `F` -> `S`
- `hh` -> `hg`
- `gi` -> `gl`
- `hH` -> `hG` (not one that is shadowed, but rebound to bind external and local
Hoogle lookups to similir shortcuts)
Popwin automatically configures pupo purposes
if properly configured. While I was checking
the existing configs I have found that the
settings will be ignored if the config is not
done via a post-config hook.
A quick search revealed a lot of popwin configs
which never had any effect.
This commit fixes these and with this also
restores the missing pupo configs.
refactor key bindings for applications to provide additional room for
applications and use lower case characters.
Move calc-dispatch to `SPC a *`
Relates to #13503
spacemacs/go-run-test-current-function() previously failed when point was
anywhere but at the end of the line on the first line of the test function to
run.
According to the README, `SPC a t v t` should start `vagrant-tramp-term`, but
instead, it seems to have been bound to `SPC a t v`. This means that it
overrode all of the other vagrant keybindings under the prefix `SPC a t v`.
The issue seems to have been a typo from commit e38c33f.
Relates to #13503.
User purposes are exclusively for user configs.
Layers shall set purpose extensions instead to allow
reconfiguration.
The existing layers have been refactored to use
extensions now. So this kind of hack is not longer
needed.
The purpose config was declared by using user mode purposes
which are reserved for user configuration.
I have also fixed the license header for config.el which did
not mention Sylvain Benner & Contributors.
In the old form the wrong type of extension
was added, this prevented any reconfiguration
of purpose allocations in the dotfile.
Now the right type of allocation is used
allowing users to overwrite the config easily.
How this is done is described in
the purpose layer.
spacemacs//fixup-window-configs is added as an `:around` advice for
`rename-buffer`. It should preserve `rename-buffer`'s return value,
which is the new name of the buffer.
f553b3622d indicated that Spacemacs no
longer uses `exec-path-from-shell`, and instead relies on
`spacemacs-env-vars-file` to make sure environment variables are
set correctly. This caused `gls` not to be used on macOS any more.
This commit re-enables support for automatically using `gls` in dired.
Fix#10957.
Fuel mode is responsible to connect to a Factor instance. This change extends
the Factor layer to handle a graphical listener process, to which fuel can
connect afterwards.
A major motivation is also to make it easier to develop with different Factor
versions, which can be specified with (project-/directory-specific) variables.
When starting a Factor listener in a certain location this way, the elisp code
for fuel/factor mode is reloaded from that location.
AUCTeX is weird: It reports major-mode as latex-mode (since TeX-latex-mode is
applied as an :override advice on the basic built-in latex-mode), but its mode
hook is LaTeX-mode-hook, not latex-mode-hook (which is only run by the built-in
latex-mode). Since bind-map uses the value of major-mode, we must pass
latex-mode to spacemacs|define-jump-handlers. But then
spacemacs//init-jump-handlers-latex-mode gets added to latex-mode-hook, which
never gets run. So we must manualy add it to LaTeX-mode-hook.
[latex] Use dumb-jump as primary jump handler
Otherwise, the default is used, which prioritizes evil-goto-definition over
dumb-jump-go. Dumb Jump tends to Just Work, while evil-goto-definition doesn't
handle LaTeX very well, at least not without a TAGS table.
[latex] Update CHANGELOG.develop
When mu4e layer is present org-store-link doesn't work immediately when you
start Emacs, unless you explicitly load mu4e.
It'd display "Please load mu4e before mu4e-org" message and do nothing.
Having an explicit dependency on lsp-treemacs for post-init-lsp-treemacs is no
longer necessary in the Scala layer, as lsp-metals superseeds it.
Removed lsp-metals-treeview-enable as it no longer exists.
This is a squash commit, it includes:
* Add go run and go test command variables
* Update go README for go-run-command and go-test-command
* Update CHANGELOG
As per the README, `SPC m s B' should put the REPL buffer in insert state, but
the keybinding as defined puts the racket file itself into insert state, not the
REPL. This means that on returning to the racket file buffer, the cursor is
left in insert state, which means it is easy to accidentally add unwanted text
into the file.
To fix this, a `with-current-buffer' wraps the `evil-insert-state', so that
insert state is enabled in the REPL buffer, not the file being edited.
The first time this is run, `racket-run-and-switch-to-repl' is asynchronous of
`evil-insert-state', so trying to get the Racket REPL buffer will error. To fix
this problem, we wrap the `with-current-buffer' with a check to determine that
the Racket REPL buffer is live. The first time the Racket REPL buffer is
created, the contents will not run, since the Racket REPL buffer will not yet be
live. This is fine, since we enter the REPL in insert state automagically.
This change does not need to be done to `spacemacs/racket-send-last-sexp-focus',
`spacemacs/racket-send-definition-focus', or
`spacemacs/racket-send-region-focus' since these functions follow all of their
racket-send functions with `(racket-repl)' before calling `evil-insert-state'.
flycheck-mix has been removed by the package author as being
obsolete with proper lsp and alchemist support. Therefore
the layer also has been cleared of it as it cannot longer
be found on Melpa.
Mustache is the preferred templating in modern versions of CFEngine and it's
nice to have syntax highlighting when working with templates.
Now, when the CFEngine layer is in use, files ending in .mustache will be opened
in mustache-mode.
Helm v3.3 no longer uses ido to get buffer list. So the change perp-mode makes
to ido won't affect helm anymore. Hence helm buffer list commands such as
helm-mini and helm-buffer-list will shows all buffers regardless of current
layout. Also `SPC l l` crashes with new helm.
This PR fixes them. We use the new helm variable helm-buffer-list-reorder-fn
to filter buffers. Because we compose this value users are still able to
customize this variable.
Minified hint:
Chunks: n N p P RET Commits: b r f e q
Full hint:
Chunks Commits Other
[p/P] prev /same commit [b] adding lines [c] cycle style
[n/N] next /same commit [r] removing lines [Y] copy hash
[RET] show commit [f] last commit with lines [B] magit-blame
[e] echo [Q] quit TS
[q] quit blaming
As of Scala 2.13, Unicode arrows are deprecated:
* https://github.com/scala/scala/pull/7540
* https://github.com/scala/scala-dev/issues/585
* https://github.com/scala/bug/issues/11210
Using one will give a deprecation warnings like so:
> The unicode arrow `⇒` is deprecated, use `=>` instead. If you still wish to
> display it as one character, consider using a font with programming ligatures
> such as Fira Code.
As such the Scala layer's version slick capability to replace ASCII arrows with
Unicode ones is no longer useful, and I have removed it.
Based on my tests it doesn't seem that there is a need for a more graceful way
to deprecate this: i.e. nothing fails if there is extra junk in `:variables`.
Before the decision which linter to run before golangci-lint has been
taken by the layer. However this can also directly be done by the
checkers.
Also golangci-lint did run even when the previous checker still reported
errors. With this it is only called if the previous checker is satisfied.
All thanks goes to Tommi Komulainen.
Flycheck-golangci was not properly conigured which resulted in
not replacing disabled standard linters like go-test.
In addition there seems to be an issue in the current golangci
build causing the linter to fail. In this case spacemacs now
shows at least basic errors from go-build. When they are fixed
the linter should be able to work normally again.
From the author of mu4e, org-mu4e.el is not supported anymore. Load the
supported org functionality from mu4e-org.el instead.
mu4e author -- "org-mu4e.el has been obsoleted in mu4e 1.4.x... the supported
parts are in mu4e-org.el now. And there's currently no real expectation you can
load those separately (it might work)."
I believe by separately means loading mu4e-org w/o having loaded mu4e.
A BEGIN_SRC block in the documents had no language specified
which would break CI.
I have also changed the eldoc setup to run each time the mode is
entered instead of only in the initially loaded buffer.
The previous way of adding dap to a layer did add the mode
unconditionally to `spacemacs--dap-supported-modes` causing
dap bindings to be added also when no lsp backend was used.
The variable: layouts-enable-local-variables
and function: spacemacs/make-variable-layout-local
are defined in the layer: spacemacs-layouts
But the spacemacs-layouts layer isn't loaded
in the distribution: spacemacs-base
racket-xp-mode is an optional minor mode that enhances the racket-mode to
explain and explore Racket code. The racket-xp-mode is started with a mode-hook
on racket-mode. Deprecated racket-mode functions are replaced with their
racket-xp-mode versions. The remaining racket-xp-mode functions are added to
keybindings as per Spacemacs conventions.
Also add the racket-mode directory to .gitignore.
Install ubuntu(18.04) libvterm-dev will cause compilation error,
update latest doc from emacs-libvterm, it shall download
latest libvterm automatically.
To optimise performance of lsp mode in emacs 27 and above
I have introduced a new dotfile variable to define the size
of data read from external processes. The default I have
set to the recommended setting from lsp-mode.
In addition I have introduced a new layer variable for
auto-complete-layer to define the minimum prefix length.
I have also added instructions to auto-complete's readme
how to set these variables to the recommended settings
for lsp-mode.
Changes inspired from #13507
Following the advice from duianto #13100 we are
setting completion-styles for helm-M-x to include
the emacs version specific fuzzy strategy as last
resort.
Before no fuzzy matching occured within command
searches.
In the Wakatime layer add a line to the readme to highlight the fact that having the api key in the main layer config will submit it as part of a bug report. There is probably a better way to achieve this but at least this highlights it for now.
for verb-response-headers-mode It's a major mode not a minor one.
lazy loading verb-response-body-mode
Without this change `C-h k` will crash throwing verb-response-headers-mode
variable is void.
Opening a dired buffer from the Treemacs buffer,
right after starting Spacemacs, shows the error message:
>treemacs-icons-dired--display: Wrong type argument: char-or-string-p, nil
Loading `treemacs-icons-dired-mode` from the `dired-load-hook`,
instead of from the `dired-mode-hook`, seems to fix it.
The `dired-load-hook` docstring says:
>Run after loading Dired.
The `dired-mode-hook` docstring says:
>Run at the very end of ‘dired-mode’.
Also adjusted the tags to match the folders the layers
are in. I have also updated the binding for imenu mentioned
in protobuf layer and adapted the kubernetes tags to register
as tool instead of as os.
This layer was using two global bindings SPC a w and SPC a W.
As the available keybindings in that sub-menu are dwindling
I have moved the bindings to SPC a w w and SPC a w W instead.
- added the same bindings you normally have under `SPC m d` under `SPC d`
similar to what Debug layer does. Most of the dap-bindings are not content
sensitive(e. g. rerun last debug session) and it doesn't make sense to restrict
them only to particular major modes.
- Moved `spacemacs/browse-docs-online-at-point` from `SPC d b` to `SPC h b d` to
avoid collisions.
- reuse the botom window for all windows that are in compilation mode and in
dap-server-log-mode. Without this change you will get two windows on top of each
other when you do `SPC c c` and then `SPC m d d d`
org-journal-new-scheduled-entry and org-journal-schedule-view are
both basic org-journal features. Besides providing these shortcuts,
their documentation exposes this functionality to the user.
Add layer variable documentation for persp-autokill-buffer-on-remove
Set to kill-weak, then buffers are deleted when the layout is deleted.
https://github.com/Bad-ptr/persp-mode.el#suggested-configuration
Add usage section
- describe the core usage of layouts
Add keybindings section
- include all keybindings for the layer
Fix formatting
- = instead of ~ and vice versa
Resolve#11698
Add keybindings for the built in Emacs application called Easy PG, that provides
tools to encrypt/decrypt/sign/verify files and regions using PGP encryption.
Keybindings are defined using spacebind.
Resolve#13319
As discussed at length in #13392, the primary developer of EIN insists
on updating the spacemacs bindings to avoid several-iterations stale commands of
dubious functionality (in particular, multi-worksheet commands).
As the transient state docstring must be "mated" to the updated bindings, he prefers
not having to manually curate it, and exhorts the return of the
automated docstring. He doesn't insist on it, though, like the above.
bind-map.el counterfeits ein:notebook-mode
bind-map replaces on the `minor-mode-map-alist` the keymap for
ein:notebook-mode with the evilified map, thus making the original
ein:notebook-mode-map inaccessible.
This is might be intentional as one wonders whether having active both the
original keymap and the evilified keymap makes sense.
In EIN's case, yes, we really want the original keymap, e.g., C-c C-c
to execute, to work. Otherwise C-c C-c defaults to running a python
shell via the python-mode-map, which is really not what we want.
When the bépo layout is set from the `keyboard-layout` layer, the
message `(wrong-type-argument keymapp nil)` shows up. After some
digging, it turns out Spacemacs tries to set shortcuts for `nil`
`map` variables in this function.
This commit ensures it is impossible to try to set a shortcut for an
inexisting keymap.
This commit has been tested with Emacs 27.0.90.
It also removes an unused `if` statement
We probably want to update the `markdown` layer to be able to do this directly
with `firefox`; having to kill and restart all of your `chrome` processes before
using `flymd` is a little clunky! It's nice that we have the upstream workaround
inlined in spacemacs, though.
Org-capture abord bindings were only available after having entered
insert state at least once. Bindings are now applied immediately on
entering the minor mode.
Fixes#13084
Go layer now supports dap, therefore when lsp is selected the layer
will load dap which in turn will load lsp to enable debugging capabilities
for all lsp users.
Show results of evaluating Clojure code in the same format they would be written
in the source code. This is especially useful for results that are
collections and nested collections.
Pretty print results as a comment.
Before M-1 M-2 M-3 M-4 were bound by magit to show fixed numbers
of details. Now these bindings are available with 1 2 3 4 instead.
The M-X bindings are now used for quick switching of windows as in the
rest of spacemacs.
New bindings:
`gr` - `helpful-update`, reload helpful buffer.
`SPC m q` - `helpful-kill-buffers`, kill all helpful buffers.
Move `o` binding definition into separate post-init function, so the binding
is defined only if the `link-hint` package is actually installed.
Add documentation of the added bindings.
1. Previously, the code had references to ein:notebook-mode which doesn't seem
to work (anymore), so I changed these references to ein:notebook.
2. The previous code had a big convoluted function that produced the
doc-string and that was difficult to read that depended on some other
smaller functions, though not enough of them to make the code
sufficiently modular, and therefore, it wasn't very maintainable.
Besides, when I tried the previous version with the name of the mode fixed,
spacemacs hung for a long time -- it's a mystery whether spacemacs would
have continued normally if I had waited long enough. Therefore I replaced
the doc-string with a hard coded one.
3. I added some keybindings from tkamat's fork to the code for I didn't see
a good reason not to
4. I removed the cl- prefix from "second" and "mapcan", because cl is a
deprecated package. However, I'm afraid the names without the prefix might
end up being unrecognized by previous versions of emacs.
This is a squash commit including below commits
Add dotspacemacs--pretty-ignore-subdirs
Within the specified subdirs of `dotspacemacs-start-dir`,
spacemacs/prettify-org-buffer (and hence space-doc-mode) will not be called.
Without this variable, using spacemacs/open-junk-file to create an Org file will
result in prettification, which is not necessarily the desired behavior.
Call make-directory in spacemacs/open-junk-file
This imitates the behavior of open-junk-file.
Prevent spacemacs/open-junk-file from getting confused by Dired
If we're in a dired buffer, counsel-find-file will ignore
current-directory (i.e. junk-dir) and use (dired-current-directory) instead. We
fool Counsel by shadowing major-mode to nil.
Update CHANGELOG.develop re spacemacs/open-junk-file
Ivy-hydra is autoloaded so the require statement here is unnecessary. Because this require (commented out) statement was here before I uncommented it in the last PR (#13377), I leave it here (commented out) as it was before that PR.
Theme transient state key-binding `t` is broken if `ivy` completion framework is
used. The binding unconditionally invokes `helm-themes`.
This change adds a new function which takes care of invoking correct
theme-loader function based on completion framework currently in use.
The old binding used `helm-themes` but the new function uses already defined
`spacemacs/helm-themes` which removes the number of candidates limit.
notmuch help uses emacs view mode which has never been evilified.
With this I am trying to make it closable with q again.
Known issue: q seems only to work the second time it is used, Q can be used
instead.
notmuch-hello was using an evilified buffer which broke the embedded search
widget in the buffer. I have changed the evilification to using normal mode
with manual bindings instead.
In addition I have made the notmuch message buffer closable using "q"
and added the missing notmuch-hello keybindings to the docs.
There have been complains about issues with `clean-aindent-mode` from
multiple users. For some of these deactivating the mode in their user-init
did not work as intended. Therefore I have added a setting for it in the
dotfile.
Ensime seems to be finally dead, as ensime-mode is not longer
available on melpa. The same applies to ob-scala the package
which delivered scala support for org babel.
I have changed the layers default to metals and took care that
ensime is not tried to be installed until it is really selected
as a package.
In addition I have also fixed some smaller issues in the layer
which caused ensime specific settings to be forced even when
metals was selected as a backend.
I have also removed the not longer existing org-babel support
for scala as it requires ob-scala which in turn is based on ensime.
See https://github.com/hvesalai/emacs-scala-mode/issues/155 for details.
Modus themes are highly accessible themes for GNU Emacs, conforming with the
highest accessibility standard for colour contrast between background and
foreground values (WCAG AAA standard).
Screenshots: https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
I have also updated the installation instructions as tsserver is not
longer available as single executable on npm. Also I've made sure that
modes register for tide backend only if it is really intended to.
Before this, `evil-ex-search-direction` would be left set to 'backward after:
- entering symbol highlight transient state mode (SPC s h)
- exiting the transient state
That means that pressing 'n' would go to the previous result instead of the next one.