The PR fixes an issue where spacemacs is in a bad state after upgrading. I
suppose what happens is that `evil-set-undo-system` is invoked before `evil` is necessarily the correct version.
org-jira is typically used from org major mode - new keybindings add a more
convenient way of invoking its functions.
The new org-jira submenu is available under "mj" - using the same pattern as
org-trello.
Add org-roam support along with keybindings under new menu prefix "SPC a o r".
Assign layer search keybinding ("SPC a o /") to helm-org-rifle, falling back to
previously assigned function (org-occur-in-agenda-files) when using ivy.
Creating another keybinding for org-occur-in-agenda-files is not necessary,
as it can be accessed with another existing keybinding ("SPC a o o /").
problem:
The following error messages are shown.
When trying to move, select or swap the current buffer,
to a window nr greater than the total number of open windows.
For example:
With only one window open.
`SPC b 2`
>ad-Advice-select-window: Wrong type argument: window-live-p, nil
In the Buffer Transient State (`SPC b .`):
- `C-2` (`spacemacs/buffer-transient-state/winum-select-window-2`)
>Wrong type argument: window-valid-p, #<window 12>
- `2` (`spacemacs/buffer-transient-state/move-buffer-window-no-follow-2`)
>Wrong type argument: window-live-p, #<window 14>
- `M-2` (`spacemacs/buffer-transient-state/swap-buffer-window-no-follow-2`)
>Wrong type argument: stringp, nil
Solution:
Show a descriptive message, if the target window nr is greater than the number
of open windows. And ignore the LV buffer (hydra).
Helm already has spacemacs/resume-last-search-buffer bound to it and is in my
muscle memory. spacemacs/resume-last-search-buffer doesn't work with ivy, so
just use ivy-resume.
Spacemacs uses spacemacs/swiper functions that use the less sophisticated
spacemacs//counsel-current-region-or-symbol instead of ivy's native
ivy-thing-at-point function. This commit removes those spacemacs functions and
rebinds the shortcuts to their better native equivalents.
New command added to CIDER in version 0.26 to evaluate the list around the
current point, different to evaluate sexp around point which also evaluates
symbols.
https://github.com/clojure-emacs/cider/pull/2881
Resolves#13948
problem:
The p key tries to paste in the read-only magit buffer,
instead of calling magit-push.
After toggling text-mode on and off (C-t or \),
because evil-mc-mode becomes enabled when text-mode is enabled.
Missing parentheses around:
"\\.ron\\'" . ron-mode
in the line:
:mode "\\.ron\\'" . ron-mode
Updated the rust readme to mention the .ron support.
And added a changelog.develop entry.
* alphabetize slack keybindings
Alphabetization makes it easier...
- to read the list
- to add new keybindings (because there's an obvious place)
- to merge this file (because insertions won't all happen at the end)
* Add more slack keybindings
T 'slack-all-threads
u 'slack-all-unreads
* Update documentation and changelog for slack keybindings
Also alphabetized the keybindings in the slack README
Co-authored-by: Damon Wang <damon.wang@gmail.com>
When Spacemacs' fancy logic works well, it is breathtaking. Sometimes, however,
you may need a way to reach in for something a little more raw: in this case,
going straight to `next-error` rather than `spacemacs/next-error`.
I chose `cn`/`cN` because:
* They seem to be unused thus far
* It makes sense to put these keybinding under compile, since they are
associated with Emac's base functionality for compilation.
* The analogous Ex commands are `:cn` and `:cN`. They work this way even in
Spacemacs (but I am trying to wean myself off Ex mode, since I see the
Spacemacs keybindings as far superior most scenarios).
* `cp` was already taken, so `cN` had to be used for going back.
Fixes#13815.
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
* 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.
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.
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.
Spacemacs allows to define layers declaratively like so:
dotspacemacs-configuration-layers
`(,(when (eq system-type 'darwin) 'osx))
The problem - in Linux that would add a nil element into the list, which then
makes it unable to run dotspacemacs/sync-configuration-layers <SPC f e R>, the
tests won't pass.
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.
time-date.el requires cl-lib under Emacs 27 and above. Then the around advice
spacemacs//timed-require and spacemacs//load-timer of require will cause
recursive load under emacs 27 and above. The load sequences is: requiring cl-lib
uses autoload function time-since which loads time-date.el and then time-date.el
requires cl-lib.
The solution to break this recursive load sequence is to load time-date.el
before adding the around advice spacemacs//timed-require and
spacemacs//load-timer to require.
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
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'.
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.
In a terminal, when a modes mode line name is diminished,
to two characters, and the first one is a unicode character,
then the second character overlaps the right side of the first character.
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`.
Add doom-gruvbox-light theme to prevent Spacemacs from trying to download a
package with the same name from elpa (and failing because there is no such
package).
doom-gruvbox-theme can now be included in dotspacemacs-themes configuration
without generating an error or trying to download a non-existent package.
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 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
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
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’.
- 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.
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.
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
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.
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
This layer adds tidal-mode, to use TidalCycles (https://tidalcycles.org)
from Spacemacs. It also remaps some keybindings in places that are more
idiomatic to Spacemacs.
The gnus variables were set in the `gnus/init-gnus`
functions `:config` section, that made them override
any user configurations.
Moving the variable declarations to the `:init`
section made them user configurable.
Instructoins on the following external dependencies required by certain
functions are added/updated to the README file:
- `cargo-edit`
- `cargo-audit`
- `rustfmt`
- `clippy`
Signed-off-by: Lucius Hu <lebensterben@users.noreply.github.com>
Clojure (CIDER) is missing the incredibly useful function that jumps to the end
of the line and evaluates the last s-expression.
This function is in Emacs Lisp major mode under `SPC m e $` and `SPC m e l`
The function `spacemacs/cider-eval-sexp-end-of-line` is a copy of
`lisp-state-eval-end-of-line` with the last line replaced to call the equivalent
cider function, `cider-eval-last-sexp`.
The same keybindings are added to the Clojure layer as used for elisp.
The keybindings follow the Spacemacs convention for evaluation, as defined in
https://github.com/syl20bnr/spacemacs/blob/master/doc/CONVENTIONS.org#evaluationResolves#4124
When purpose mode is enabled, Spacemacs fails to assign correct mu4e buffers to
correct windows when we're in headers view and select an e-mail from the list.
Since `*mu4e-headers*` and `*mu4e-view*` buffers have the same purpose
name (`mail`), and `*mu4e-loading*` buffer is either `fundamental` (or with a
recent version of upstream mu4e `mu4e-loading-mode`) which has the purpose
`general`.
So what happens is, when we select an e-mail from the list, e-mail opens up at
the headers' window, and loading opens up in the lower window which should have
displayed the actual email content.
With this commit, there will be two purpose names which will prevent this issue
from happening.