iedit does not work already for quite some time. A fix (see
https://github.com/syl20bnr/evil-iedit-state/pull/37) has been proposed, but it
does not get merged (even after multiple reminders). Therefore, I propose to add
this temporary quick fix, that can/should be removed after that PR gets merged.
Seems that we have a lot of places where
evilified-state-evilify has been used
instead of evilified-state-evilify-map.
This causes issues with shadowing of
evilified maps as this is only done by
the later of those two.
Fixes#15150
The auto-completion layer seems not to have been designed/configured correctly.
So that, e.g., when using the julia layer, the `auto-completion/init-yasnippet`
function is called after the `yasnippet-snippets` package has been loaded.
Despite the ``yasnippet-snippets` package containing an `eval-after-load
'yasnippet`, the form within that block is, for some reason, evaluated already
before `auto-completion/init-yasnippet` has been called.
Anyway, what currently happens is that first `(yasnippet-snippets-initialize)`
is evaluated, adding `yasnippet-snippets-dir` to the `yas-snippet-dirs` list.
Then ``auto-completion/init-yasnippet` is called which contains the line `(setq
yas-snippet-dirs nil)`, setting the list to nil again.
As there is quite some logic involved (e.g. the order of evaluation is correct
when the julia layer is not being used), this commit fixes the reported issue by
simply calling `(yasnippet-snippets-initialize)` from
`auto-completion/init-yasnippet` after the yas-snippet-dirs list has been
resetted to nil.
Any cleaner solution is welcome, but I would say this is a 'harmless' very
pragmatic quick fix/solution.
* [git] Fix: Evil-collection @-dispatch keybindings for magit forge.
Load new location for forge '@' dispatch keybindings.
'Evil-collection' has moved keymaps for magit forge from an
'with-eval-after-load' block to newfile 'evil-collection-forge.el' in commit
33461aa545.
As mentioned in the commit, these changes were due to a upstream change in the
'forge' package. Source: https://github.com/emacs-evil/evil-collection/issues/543
* [git] Docs: update README to reflect changes in Forge keybinds.
See https://magit.vc/manual/forge.html#Introduction for more information.
* lsp: Bind =~SPC m g T~ to lsp-treemacs-type-hierarchy
This allows to show the type hierarchy for the type at point.
* lsp: Goto call and type hierarchy are provided by lsp-treemacs
* [compleseus] layout select current project first
* [compleseus] bind embark-export to C-c C-o
same as ivy-occur
* [compleseus] add vertico-{quick, directory}
* [compleseus] set up vertico-repeat
It's nice to have a way to use common SBT commands without having to enter a
Hydra, and without having to type them out or select from a history list. The
following should be standard and quite common:
+ `scalafmtAll`
+ `compile`
+ `test`
Added mnemonic keybindings that I think match Spacemacs conventions. They
behaviors also give better parity with the build capabilities of other major
modes, which frequently support compile, format and test functionality.
Currently most or all auto-completion, using completion-at-point (i.e. the TAB
key), is 'hijacked' by company-capf in emacs-lisp-mode, while in text mode there
is no auto-completion by default at all.
This commit adds auto-completion for text-mode and slightly improves the
situation for emacs-lisp mode.
From org version 9.5 org will not be distributed from Org ELPA but from
ELPA (see https://list.orgmode.org/87lfa7tc9v.fsf@gnu.org/t/). This commit makes
Spacemacs use/install org from ELPA.
Besides that, this commit removes some 'hack' that seemed to have no effect. As
org comes with Emacs `package-installed-p 'org` will always return t. Also
activating org via `configuration-layer//activate-package` seems to have no
effect.
Finally, the package is declared including a :min-version because appending only
`:location melpa` seems to have no effect (this can probably be considered a
bug).
I am almost certain that the information that was added when making org install
from Org ELPA is still relevant also for installing org from ELPA so I have just
adapted the version number from 0.104 to 0.300.
As the "org" archive has been removed, the `ert-deftest` for it can be removed
also.
* Add commands to compleseus+fasd layer (locate,yasnippet,search-from)
* Add metadata classifier (for embark) to fasd-layer
Embark uses metadata of the target under point to determine actions. If the
target lacks a metadata classifier then the [embark
documentation](https://github.com/oantolin/embark#acting-on-targets) recommends
to [add them using the marginalia package](https://github.com/minad/marginalia#adding-custom-annotators-or-classifiers).
This PR adds the file classifier to results for fasd searches.
The documentation of the `themes-megapack` layer states that the layer provides
all themes included in the [theme gallery](https://themegallery.robdor.com/) by
Rob Merrell. However, this theme currently is missing from the layer.
Special mode and its derived mode(s) buffers were made evilified in PRs #14995
and #15050. However, special-mode is too aggressive (as 'warned' for already in
#14995); it makes it hard to overwrite its keybindings (e.g. `evil-local-set-key`,
or using `evil-evilified-state-map` on a derived map have no effect).
Therefore it makes more sense to open the buffers in motion-state instead. This
state also does not hijack the `q` keybindings as defined by special-mode (see
https://www.gnu.org/software/emacs/manual/html_node/elisp/Basic-Major-Modes.html),
although it does still hijack its `g` keybinding, but evil navigation is
considered to have higher priority than revert-buffer anyway.
Related to #15117, this removes the helm-gitignore from the git layer because it
hasn't been updated to use the new git-modes package. The helm-gitignore
functionality isn't particularly useful anyway, it's just a utility to help
generate .gitignore files.
This change can be reverted if the upstream helm-gitignore package is fixed and
people find the functionality it provides to be useful.
Currently the python layer (without anaconda backend) provides only helm-pydoc
or pylookup-lookup-at-point functionality. Both these functions are cumbersome.
`pydoc-at-point-no-jedi` adds simpler doc functionality, therefore this commit
adds this command as a third option. It places it under `SPC m h p` because `SPC
m h h` is already taken by the anaconda doc functionality (it could be placed on
`h h` if anaconda is not available, but I did not bother to implement it)
Currently company-emoji does not get activated by the emoji layer.
Also when it is activated, then the emoji short-name does not get completed to
unicode if `company-emoji-insert-unicode` is `t`.
This commit fixes both issues, by activating company-emoji for text-modes and
advising the emoji inert function to optionally do company-emoji completion.
See joostkremers/ebib#213By remapping spacemacs/kill-buffer to ebib-quit ebib is generally exited 'correctly' (if users really want to kill the buffer and mess up things, they can still do that in plenty of other ways).
Update layers/+readers/djvu/packages.el
Co-authored-by: Lucius Hu <1222865+lebensterben@users.noreply.github.com>
Update layers/+readers/djvu/config.el
to avoid having to add a lot of additional ignore
statements to our .gitignore file.
For now this shall reside in LSP layer if it becomes too big
we can do a more refined design based on the auto-complete
layer.
By enabling all layers referring to lsp and searching packages they depend
on, currently I found these variables:
`lsp-server-install-dir`
`lsp-session-file`
`lsp-eslint-library-choices-file`
`lsp-yaml-schema-store-local-db`
`lsp-vetur-global-snippets-dir`
This layer adds Reddit support to Spacemacs via the package
reddigg. This package allows you to browse reddit in org-mode. You can find more
information in the README.org.
Fix use-package reddigg
Change name to for reddit
Change name according to https://www.reddit.com/wiki/api
This commit makes the latex layer automatically configure pdf-tools as
latex pdf-viewer if the pdf layer is installed.
Additionally it adds a layer variable to configure pdf-tools to open in a
split-window. (Strangely, finding out how to achieve that is far from trivial,
and also not easy to google, because many hits do not provide the "correct"
answer (see the typical example
[here](https://emacs.stackexchange.com/questions/28056/spacemacs-latex-how-to-make-view-command-tile-vertically-with-emacs-window)).
Update layers/+lang/latex/funcs.el
Co-authored-by: Lucius Hu <1222865+lebensterben@users.noreply.github.com>
* [layout] New function spacemacs//ediff-in-comparison-buffer-p
This function is useful to determine whether a given buffer is part of an ediff comparison.
* [layout] New function spacemacs/ediff-balance-windows
Interactive function to balance ediff windows in case they're unbalanced
initially (such as when golden-ratio-mode was active.)
* [navigation] Disables golden-ratio resizing in ediff view
Updates `spacemacs-navigation/init-golden-ratio`:
- inhibits golden-ratio in ediff comparison buffers
- balances the width of ediff comparison buffers on startup
* Updates CHANGELOG.develop with ediff/golden-ratio comment
* [layout] Adds MIT license acknowledgement for new functions
Co-authored-by: Ryan Prior <ryan.prior@coldquanta.com>
As of new OPAM (OCaml package manager) v2.1, `opam config var share` is
no longer supported. Instead, the syntax is `opam var share`. To allow
both, this checks first with the new syntax, then if that doesn't work,
the old is tried. If neither produce any output, it fails as normal.
edit: Fix formatting.
Cider provides the possibility to search the REPL history, for which it opens
the history in a read-only buffer (which as usual, is best initialized in
evilified state).
This commit evilifies the cider-repl-history-mode buffer and defines some common
sense cider-repl-history-mode keybindings.
When we're adding links, without this they get smooshed together under the
curser. Tested to work; resolves https://github.com/syl20bnr/spacemacs/issues/14137
Co-authored-by: Richard Kim <emacs18@gmail.com>
This keybinding could also go under `SPC h M`, but that is currently taken by
`helm-switch-major-mode` (which seems a quite redundant command to me, as you
can switch major-modes directly using `M-x`/`SPC SPC`).
When the buffer's name is uniquified (because multiple buffers have
the same short name), it is no longer equal to the basename of the
buffer's file name, so it is incorrect to use the buffer name in the
rename operation.
problem
`SPC f J` (`spacemacs/open-junk-file`) shows:
cond: Cannot open load file: No such file or directory, helm
cause
`spacemacs/open-junk-file`
expects the completion layer to be either: `helm` or `ivy`
notes
The junk file function searches through the junk files,
when the ARG parameter is non-nil
(when it's called with a prefix argument: `SPC u SPC f J`)
The helm and ivy search functions might be choosing the search tool,
based on the first search tool it finds in the variable:
`dotspacemacs-search-tools`
`("rg" "ag" "pt" "ack" "grep")`
The consult package has these two search functions:
`consult-grep`
`consult-ripgrep`
This fix only uses those two for searching.
It checks for the executable: `rg` before `grep`
* [major-modes] add evil-matchit support for matlab
If `evil-matchit` is available, configure it for us in `matlab-mode`.
Note: This commit by itself doesn't actually do anything, because currently,
`evil-matchit` supports `octave-mode`, but not `matlab-mode`, although it's a
very simple matter of just turning on its `octave-mode` configuration for
`matlab-mode`. I'm submitting a PR against `evil-matchit` in order to support
`matlab-mode` out of the box.
Emacs 28 adds the outline-cycle-buffer feature. Currently there is no keybinding
to fold the outline of a pdf. So let's replace show-all by it for >= Emacs 28,
because it is easier to remember a single keybinding for folding and unfolding
then having separate bindings for those.
problem
opening a prompt, ex: `M-x`
while the Symbol Highlight Transient State (`SPC s h`) is open,
leaves `auto-highlight-symbol-mode` enabled
cause
when the idle timer runs,
it tries to disable ahs mode in the prompt window
In standard notmuch-emacs, one can scroll back and forth the message
pane using `SPC`/`BKSPC`. Obviously, this is not the case in Spacemacs,
where `SPC` is reserved. There was no way to scroll the message pane in
this layer, so I added `M-d` and `M-u` wired to
`notmuch-tree-scroll-message-window` and
`notmuch-tree-scroll-message-window-back`.
Currently when using any python-send-shell command, the output of the evaluation
is not shown in the comint shell (see Emacs bug#49822).
This commit adds a simple function to send input and get the output printed in
the comint process buffer.
This bug exists already since I started using Spacemacs about 1.5 year ago.
Because it was already reported upstreaim in
[this issue](https://github.com/atykhonov/google-translate/issues/52), I
implemented this fix only locally.
However it becomes time now to implement this fix globally, to fix the
google-translate functionality by default.
Toggles are great and all, but the trouble with the various toggles for line
numbers is that they force you to remember and think about the fact that there
are variant forms of line numbers. To beginners or forgetful people the various
combinations of behavior can be unintuitive here (e.g. toggling off relative
line numbers does nothing if you are actual in visual line numbers mode). Though
it doesn't fit exactly into the normal stuff we have for toggles, due to the
complexity of this situation I think it is good to just have a way to say "line
numbers be gone!"
Wasn't sure what keybinding to use, so used a double-tap mnemonic.
If this PR gets rejected, there are a couple minor fixes that should probably be
pulled out and submitted separately.
When providing only the new directory path (i.e. without new filename) while
moving a file to a new directory with `spacemacs/rename-current-buffer-file`,
currently Spacemacs opens the file in a new buffer with the directory name.
Additionally, the `file-renamed-p` gets set the wrong value. To fix both
issues (with minimal work), it is easiest to just fix the `new-name`
value (alternatively fixing the `rename-buffer` and `set-visited-file-name`
forms later would not fix the wrong `file-renamed-p` value issue).
Finally when called with a universal-argument, then that argument
unintentionally gets 'passed' in the interactive call to
projectile-invalidate-cache. So this PR fixes that by changing the interactive
call to a funcall.
Built on consult embark orderless selectrum/vertico.
It's been working ok. Basic features are in, let's merge it and let our community
improve it togegher :)
problem
With the cursor on a parenthesis in js code in a .html document,
pressing:
```
% ;; evilmi-jump-items
```
jumps to the buffers last line.
solution from upstream issue
Jump to end when current line has a "if" keyword in web-mode and html-mode
https://github.com/redguardtoo/evil-matchit/issues/119
problem
The Symbol Highlight Transient State (`SPC s h`) counter
ex: [2/7]
Shows: [0/0]
when opening the TS, either with `SPC s h`, `SPC s H`
or when navigating between symbols with: `#` or `*`
cause
The symbols haven't been counted yet, when the TS is opened.
And the counter is reset when `auto-highlight-symbol-mode` is disabled,
this happens when the TS is restarted, which happens when navigating to the
next/previous symbol with `#` and `*`.
solution
Highlight the symbol before opening the TS.
And only disable `auto-highlight-symbol-mode` when the TS is closed.
(when the TS buffer " *LV*" doesn't exist)
notes
This also shows the "No previously searched for symbol found" message,
when the variable `spacemacs-last-ahs-highlight-p` is void on startup.
problem
navigating to the next/prev symbol,
in the symbol highlight transient state: `SPC s h`
with: `n`, `N` or `p`
soft freezes Emacs (the freeze can be canceled with `C-g` twice)
cause
the upstream variable: `ahs-current-overlay` has been removed
solution
it was replaced with a function called: `ahs-current-overlay-window`
* fix `Symbol’s function definition is void: ahs-highlight-p`
* get rid of 2 instances of `eval`
* improve advicing code with the use of `advice-add`
* eliminate 2 redundant calls to `ahs-highlight-now` in adviced functions
* eliminate redundant `spacemacs/ahs-highlight-now-wrapper`
Fixed an issue where ahs-mode was being enabled before the check for it
already being enabled.
Switched the toggle to be based on the mode instead of the timer hack.
problems:
- Symbol highlighting is enabled on startup.
- The highlight isn't cleared when closing the
Symbol Highlight Transient State
- The `SPC t h a` symbol highlight toggle,
only shows a disabled message,
but the highlighting remains enabled.
cause:
Changes in the upstream package: auto-highlight-symbol
This reverts commit ec57b21a92.
A which-key change caused issues with this fix.
And the fix doesn't seem to be needed anymore.
The correct which-key entries appear without the fix.
This commit adds 3 sets of keybindings and organises the keybindings so that it
can be read easier. The README file is also organised and cleaned up to be read
easier.
1. Marking and labelling
Add a new keybinding to mark torrents and another to set the labels at point
or for marked torrents.
2. Queueing
Keybindings to manage how the queueing of torrents are added using the
uppercase vim movement keys. A keybinding to logically sort by columns is
also added.
3. Turtle mode
A new keybinding while in `transmission-mode` toggles the
`transmission-turtle-mode` minor mode. When it is active, a new set of 3
keybindings will be active to change the settings of the minor mode.
Although there is a keybinding for `transmission-remove` in `transmission-mode`,
a new keybinding for `transmission-delete` is also added. This is done since
`transmission-remove` merely removes the torrent from Transmission but does not
delete the file(s).
The rest of the changes are reflected in `CHANGELOG.develop`.
funcs.el is loaded after packages.el so `spacemacs//support-evilified-buffer-p` is undefined at this point.
moved it inside the `defun` block and it should work.
As described in #9169, when using the emacs editing style the comment inserted at the bottom of a git rebase shows the incorrect key bindings. This is apparently due to `evil-collection` (changing the `git-rebase-mode-hook`)[3ed92cadda/modes/magit/evil-collection-magit.el (L523-L524)].
We can fix the issue by only loading `evil-collection` if we're using an evil-style editing mode.
Closes#9169
The code changed here wants to distinguish the cases of whether `arg` is a list
with one set of args to `spacemacs|diminish` or a list of a list of such args.
It used to look at the second element of `args` to make that distinction.
Consequently, if you want to specify a list of a list of args for
`:spacediminish`, you'd have to have at least two such lists of args in the list.
However in
38f582d785
a usage with a list of just one list of args was introduced.
This fixes changes the detection so that it looks at the first element of `arg`.
If that's a list, `arg` is assumed to be a list of lists of args to
`spacemacs|diminish`. If it's not, it's assumed to be just a list of args to
`spacemacs|diminish`. That works well because the first argument to
`spacemacs|diminish` is a symbol.
Fixes#14726
for it has a lot of side effects by globally replacing
-+- in the entire markdown buffer. Up to now markdown
has its own table insert function available via
`SPC i T` which is to be prefered.
In addition there seems to be no active
binding for `orgtbl-mode` in markdown making it very
unlikely that someone is still using it within markdown-mode.
Shelving and unshelving changelists are operations commonly used when
choosing Perforce as a VCS solution. Package consumed by the "perforce"
layer already provides "p4-shelve" and "p4-unshelve" commands that can
be exposed by the layer. Provide keybindings for these two commands as
well.
In the scheme REPL, RET is bound to `geiser-repl--maybe-send` which most times
sends the input instead of inserting a newline. Therefore this separate
keybinding for that will always insert the newline is required.
Also the geiser-doc-mode is a read-only mode which should get evilified to
unshadow the convenient evil-like default Emacs keybindings.
Remove `C-o` keybinding from helm-bookmarks.
Add `S-RET` keybinding to open file/buffer/bookmark in other window for
helm-files helm-buffers and helm-bookmarks.
Advantage: Consistent behavior. It is pretty cumbersome to use the persistent
action provided by helm to open files/buffers/bookmarks in the other window.
`xref-find-definitions` is an interactive function that requires one argument `identifier`. You either need to `call-interactively`, or better yet, call it by forwarding the `sym-name` as the `identifier`.
Emacs mode is clearly better than vim mode, because j and k keys are already
bound to down/up motion. In addition as the tree mode is traversed, the
matching code pops up on the left in emacs mode but not in vim mode.
`lsp-use-upstream-bindings` set to `t` then Spacemacs will bind all
`lsp-command-map` behind `SPC m`, `,` and `M-m`. This way the bidings will be
managed by upstream `lsp-mode` which is documented at
https://emacs-lsp.github.io/lsp-mode/page/keybindings/.
Spacemacs only replaces the prefix `s-l` with `SPC m`. For example:
| lsp binding | Spacemacs binding |
|-------------+-------------------------------------|
| `s-l w s` | `SPC m w s` or `, w s` or `M-m w s` |
### Added workspace action messages
`SPC l w` followed by a number key `0-9`
or `SPC l w s` single window workspace
>Workspace 2 created
`SPC l w 1` from another workspace
>Workspace switched to 1
`SPC l w 1` from the same workspace
>Already on Workspace 1
`SPC l w c` clones the current workspace to the next free slot
>Workspace 1 cloned to 3
`SPC l w d` close the current workspace
Workspace 3 closed
### And
Open the Spacemacs home buffer when creating a new workspace
with the number keys. Previously it opened the scratch buffer.
I'm not sure how best to start doing this, but the branch over at
timor:spacemacsOS has moved ahead a bit. I've grown used to a lot of these
changes, and would like to see them moved to the main develop branch. But, the
pull request (formed by merging in CestDiego:spacemacs/SpacemacsOS in #3321)
started diverging.
Again, I'm not sure how to approach moving together these two changes. Maybe
@timor can help somehow??
This at the least moves in some little things from Timor's branch:
- Can enable exwm-systemtray with `exwm-enable-systray`
- Can enable running XDG autostart applications (only in XDG_USER_HOME/autostart
for now) with `exwm-autostart-xdg-applications`
- Support for reading `.desktop` files and XDG autostart.
- Can specify additional code appended to exwm-init hook with `exwm-custom-init`
---
This PR also fixed some other existing issues, and improved documentation.
Co-authored-by: timor <timor.dd@googlemail.com>
Co-authored-by: Benjamin Yang <be11ng@users.noreply.github.com>
problem
Trying to clone a workspace `SPC l w c`
Does create a new workspace,
but it just shows the scratch buffer.
notes
In addition to fixing the cloning.
Show a minibuffer message:
Workspace: 1, cloned to Workspace: 2
To make it clear that the cloning worked.
Because the only visible difference, is that
one of the left side mode line numbers changed.
- Labelled `elixir-backend` as safe local variable.
- Added local variable hooks of elixir mode:
- `spacemacs//elixir-setup-backend`
All other setup functions are already added to local variable hook.
See: https://github.com/syl20bnr/spacemacs/issues/14653
`first` and `list-length` are aliases for `car` and `cl-list-length`
respectively. Using these aliases causes emacs to error with a `symbol's function
definition is void` error, but using their real names causes no error.
Replaced them with `car` and `length`.
* Add Emacs Window Manager (EXWM) Layer
The time has come of SpacemacsOS
* set window manager name to EXWM
* update copyright notice
* start server when EXWM is active
When using EXWM, Emacs should be ready to receive clients but the final choice
should be the user's in their shell configuration.
* respect Spacemacs naming conventions and layer organization
* leave keyboard remapping to users
* add EXWM states for Evil
* add support for helm-exwm when helm is in use
* use both exwm-randr and exwm-systemtray
* set up workspaces to match displays by default
* use ido-config instead of the deprecated workaround
When using helm-exwm, its sources distinguish title and class automatically. It
is only necessary to keep the buffer name updated when the window title changes.
When using ido, rename differently for different applications.
* add bindings for common X keys
* use standard prefix commands where available
Spacemacs already has prefix commands for controlling windows.
These are directly available in exwm-state as well as in exwm-insert-state
through leader
* remove most keybindings as they are available directly in exwm-state
* enable exwm directly in the layer configuration
It is safe to enable it here as an existing window manager will simply fail with
a warning.
* add user-configurable variables for RandR and workspaces
By default, create as many workspaces as there are displays and assign them in
RandR order.
* fix naming convention for variables
* use helm for launching applications when possible
* fix conditional helm-exwm leader keys
* remove redundant function
EXWM provides the equivalent
* conform to naming convention for Spacemacs
* separate prefix commands into those for major mode and global
* remove all default bindings
* improve readability
* clean up bindings
* remove obsolete comments
Co-authored-by: M. Domenzain <luis.domenzain@parrot.com>
Racket describe mode comes with its own keybinding (i.e. `q` for quit).
Additionally it contains links, so this PR binds `o` to `link-hint-open-link`
(`ace-link` does not support this mode)
* core-customization: improved SAFE variable handling
- SAFE can either be a function or t.
- When it's t, use a default validation function
`(lambda (val) (validate-value val TYPE t))`
- When it's a function, use the supplied function.
* Fixed bugs in go and groovy layer
In almost any cases, it's better to supply `t` instead of a function, to
`SAFE` argument of `spacemacs|defc`.
For example,
```elisp
(spacemacs|defc go-use-gocheck-for-testing nil
"If using gocheck for testing when running the tests -check.f will be used instead of -run to specify the test that will be ran. Gocheck is mandatory for testing suites."
'boolean nil #'booleanp)
```
If its value is nil, it evaluate to `nil`, which means that `nil` is not
a safe value for `go-use-gocheck-for-testing` local variable.
But clearly it is.
* core-customization: improved SAFE variable handling
- Added a function `spacemacs-customization//get-variable-validator`.
This function is designed to be used with `safe-local-variable`
property of spacemacs custom variables.
See details in the docstring.
```elisp
(put 'FOO 'safe-local-variable
(apply-partially 'spacemacs-customization//get-variable-validator
'FOO))
```
- This is better than a lambda since `apply-partially` returns a compiled
function. (Though the performace gain may be tiny.)
- This is better than simply calling `validate-value`, because it returns
nil when value is nil. But sometimes nil is a valid value.
Co-authored-by: Lucius Hu <lebensterben@users.noreply.github.com>
With this fix it is now possible to select different backends in
different project using the directory variables mechanism of Emacs
(the file .dir-local.el)
- Labelled `go-backend` and `go-format-on-save` as safe local variable.
- Added local variable hooks of go mode:
- `spacemacs//go-setup-backend`
- `spacemacs//go-setup-eldoc`
- `spacemacs//go-setup-format`
See: https://github.com/syl20bnr/spacemacs/issues/14653
Eww was wrongly classified as web-service.
It can now be found under tools hence the global
binding was changed from `SPC a w e` to
`SPC a t e`.
Also I have removed parts of the documentation
still refering to this layer not being part of
Spacemacs.
Fixes: vim layer key binding of "J" in dired mode #14614https://github.com/syl20bnr/spacemacs/issues/14614
problem
The evil collection binds "J" to `dired-go-to-file`
It overrides the Spacemacs `helm` and `ivy` equivalent commands.
`spacemacs/helm-find-files' has fuzzy matching and other features
`spacemacs/counsel-find-file' has more `M-o' actions
And the `ivy` layer uses the `spacemacs/helm-find-files` command.
solution
Move the Spacemacs definitions of "J",
after the evil collection dired keys have been setup
from: `spacemacs-bootstrap/packages.el`
to: `spacemacs-evil/init-evil-collection`
And use `spacemacs/counsel-find-file` in the `ivy` layer.
problem
In the `spacemacs-base` distribution.
When the `git-enable-magit-todos-plugin`
layer variable is enabled.
Then the following message appears on startup:
>An error occurred while pre-configuring magit-todos in layer git (error: (void-variable spacemacs-evil-collection-allowed-list))
cause
The `spacemacs-evil-collection-allowed-list` variable
is assigned in the `git` layer.
But it's defined in the `spacemacs-evil` layer.
The `spacemacs-evil` layer isn't used by default
in the `spacemacs-base` distribution.
solution
Check that the `spacemacs-evil` layer is used
before adding to the variable.
The configuration for various scheme implementations has been split out of the
geiser package, breaking the current layer support for the implementations.
This commit adds a simple fix for the scheme implementations support.
Anybody is free to improve the code, but at least the layer will be fixed.
make bindings stick to minor modes of helm/counsel-gtags-mode not major mode. so
the bindings will only be in force when ggtags-mode is enabled.
deprecate functions spacemacs/counsel-gtags-define-keys-for-mode and
spacemacs/helm-gtags-define-keys-for-mode that add ggtags bindings to major
mode. Next step is to remove these function calls from client layers.
currently toggle `:if` for meghanada with `use-package` only tells `use-package`
not to load `meghanada` but spacemacs still downloads `meghanada`.
also we shouldn't care about emacs 25 anymore.
- Replaced `dos.el` with `bat-mode`
- `dos.el` is superseded by `bat-mode`
- `dos.el` is localised package
- `bat-mode` is a built-in mode
- Added `bmx-mode`
- `bmx-mode` provided syntax highlighting, code-navigation and refactoring
capabilities on top of `bat-mode`
- Introduced a new command cargo-process-outdated
- Certain commands are known to change Cargo.toml and needs to reload workspace,
wrapper functions that automatically reload workspace are added.
- spacemacs/cargo-process-add
- spacemacs/cargo-process-rm
- spacemacs/cargo-process-outdated
- Added a layer variable for rust layer, cargo-process-reload-on-modify,
which toggle the aforementioned behaviour.
- Added a new utility function in LSP layer, which returns server ID associated
with current project.
- spacemacs//lsp-client-server-id
- Rearranged keybindings for rust layers (see table below for details)
Commands wrapped with auto-reload functionality:
|Command |Binding |
|-------------------------|-------------|
|`cargo-process-repeat` |`SPC m c .` |
|`cargo-process-add` |`SPC m c a` |
|`cargo-process-rm` |`SPC m c r` |
|`cargo-process-upgrade` |`SPC m c U` |
Commands with new bindings:
|Command |Old Binding |New Binding |
|-----------------------------------|------------|------------|
|`cargo-process-search` |`SPC m c s` |`SPC m c /` |
|`cargo-process-fmt` |`SPC m c f` |`SPC m c =` |
|`cargo-process-current-file-tests` |`SPC m c o` |`SPC m t b` |
|`cargo-process-current-test` |`SPC m c t` |`SPC m t t` |
|`cargo-process-test` |`SPC m t` |`SPC m t a` |
* Point org-journal to dalanicolai's fork (temporarily)
The Spacemacs for using org-journal are written, assuming that some PR's by
dalanicolai get merged. As the merge takes more time than expected, we
temporarily point Spacemacs to use his fork.
Additionally, a subsequent commit that adds agenda usage recommendations also
assumes these org-journal PR's got merged.
* Add to docs agenda usage recommendations
The Emacs documentation is not very clear about the best way to use org-agenda,
especially regarding integration of the diary into org. This commit adds most
sensible configuration recommendations.
- fix/improve docs for org-wild-notifier
- document how to use agenda (recommendations)
- Added `magit-todos` package, toggled by `git-enable-magit-todos-plugin`.
- Improved installation and loading of all magit-plugins:
- All magit plugins are toggled by their corresponding layer variables
PRE-INSTALLATION, instead of PRE-LOADING. That is, they are installed
only when the toggle is non nil.
- The `use-package` call is more specific now.
- Hooks goes to `:hook`.
- Removed `:defer` since it's implied by `:hook`, and it's actually not
doing anything.
- Improved the documentation.
* [Python layer] Document Nix + Microsoft LSP
* Document how to make Nix + Microsoft LSP work
* Add links to Microsoft LSP and Pyright repos
* Remove nix part
Added a new keyword to `use-package`, `:spacediminish` which calls
`spacemacs|diminish`.
Supported patterns:
- nil
- SYMBOL
- STRING
- (SYMBOL STRING)
- (STRING STRING)
- (SYMBOL STRING STRING)
- List of patterns above
When `SYMBOL` is missing, it's inferred from the package name, e.g
`(use-package foo :spacediminish nil)` becomes
`(use-package foo :spacediminish foo-mode)`.
This PR aims to replace explict calls to `spacemacs|diminish` and brings more
declarative flavour to layer configuration.
For example, the following form
```elisp
(use-package highlight-indentation
:config
(progn
(spacemacs|diminish highlight-indentation-mode " ⓗi" " hi")
(spacemacs|diminish
highlight-indentation-current-column-mode " ⓗc" " hc")))
```
can be replaced by
```elisp
(use-package highlight-indentation
:spacediminish ((" ⓗi" " hi")
(highlight-indentation-current-column-mode " ⓗc" " hc")))
```