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.
spacemacs|define-jump-handlers only defines a variable
`spacemacs-jump-handlers-MODE' to which handlers can be added and sets up key
bindings for mode. MODE must be a major mode,. It won't add function to mode
hook anymore.
`jump-to-definition` will walk through the three lists of handlers in the
following order: spacemacs-jump-handlers, spacemacs-jump-handlers-MODE, and
finally spacemacs-default-jump-handlers.
Dynamic handlers like lsp, tide, ggtags use spacemacs-jump-handlers to register
(add-to-list 'spacemacs-jump-handlers 'jump-hanlder)
Conventional static handlers should use spacemacs-jump-handlers-MODE
After new custom `dotspacemacs-*` variables being introduced in
`core/core-dotspacemacs.el`, if one has an old `.spacemacs` without these
variables set, `SPC f e R` will complain error messages like
```
Variable: "dotspacemacs-emacs-dumper-dump-file" has value: "nil" that doesn't
match its type: "string"...
```
even if these variables have already had initial value.
This is because `dotspacemacs||let-init-test` macro only locally declares these
variables without setting them with their initial value.
This pull request fix this issue by expanding (dotspacemacs/get-variable-list)
into `'((var1 value1) (var2 value2) ...)` list instead of `(var1 var2 ...)`.
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)
problem:
`SPC f e U` checks if packages have updates.
But if the current buffer isn't the Spacemacs home buffer,
then the minibuffer just shows:
>Do you want to update 1 package(s)? (y or n)
There's no information about which packages have updates.
Canceling the prompt with: `n`
and switching to the messages buffer `SPC b m`, does list them.
>(Spacemacs) --> Found 1 package(s) to update:
>
>(Spacemacs) dap-mode
But it doesn't work to switch to the home buffer,
because that information was erased when the home buffer was refreshed.
solution:
Switch to the home buffer before checking for updates.
- 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.
* [init] Disable GUI elements in early-init as well
Can provide a smoother startup by reducing graphical artifacts.
* [core] Add file for early-init functions
Needed to make the tests to work as early-init.el is not sourced
during tests.
Fixes error:
Symbol’s function definition is void: spacemacs/removes-gui-elements
* [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")))
```