Define named functions: spacemacs-buffer/jump-to-...
for the home buffer shortcuts. So that a descriptive name is shown,
in for example the view-lossage (C-h l) buffer.
Before:
r ;; anonymous-command
p ;; anonymous-command
After:
r ;; spacemacs-buffer/jump-to-recent-files
p ;; spacemacs-buffer/jump-to-projects
problem:
When the Emacs frame has the default window width (80 characters).
Then the current restart to update message:
Emacs has to be restarted to actually install the new version of the packages (SPC q r)
is cut off at the Emacs frames right edge:
Emacs has to be restarted to actually install the new version of the packages (S
solution:
Shortening the message:
Restart Emacs to install the updated packages. (SPC q r)
says the same thing, and keeps it within 80 characters.
Moved the function definitions for:
spacemacs//trailing-whitespace
spacemacs//set-whitespace-style-for-diff
from: spacemacs-default/packages.el
to: spacemacs-default/funcs.el
This definition requires 3 arguments. Having only two can cause Emacs a
wrong-number-of-arguments error. So this PR just adds the date when the orginal
functions were removed and the alias was created.
`dotspacemacs-startup-lists` by default shows a number of recent files and
projects as two separate lists. If I've been working with a lot of files in one
project, then all the recent files are from one project, even if I set `recents`
to a large amount like 24. This change allows me to see the recent files by
project. Suppose, for example, I have a `vegetables` project and a `fruit`
project, and set `dotspacemacs-startup-lists` to `(recents-by-file . (2 . 3))`.
In the home buffer I will see something like:
~/vegetables
lettuce.el
squash.el
tomatoes.el
~/fruit
apple.py
orange.py
banana.py
Even though only a subpath is displayed for each file, the click functionality
still works---i.e. the link still has the full path under the covers.
I originally asked a [question](https://emacs.stackexchange.com/q/62524/19069)
on Emacs StackExchange to see if there were any pointers or if this was already
a solved problem. After several days of receiving no answers, and having a
little time to poke at it, I figured I'd implement it myself.
What this does not cover: mixing recent files totally outside projects into this
list. Today they are just filtered out. That is a usecase I didn't need so I
figured that could be done in a subsequent pass if somebody wanted it.
Problem:
When the restart-emacs package is being updated.
The update packages restart message, still shows the (SPC q r) key binding even
though it doesn't work.
Cause:
The member function compared a string against a list of symbols.
A possible improvement:
Explain that the key binding won't work this time.
Before:
Emacs has to be restarted to actually install the new version of the packages (SPC q r).
After:
Emacs has to be restarted to actually install the new version of the packages
(SPC q r) won't work this time, because the restart-emacs package is being updated.
* [core][keybinng] improve minor mode binding
This commit added add a new function defun spacemacs/declare-prefix-for-minor-mode
and improved spacemacs/set-leader-keys-for-minor-mode.
`which-key` package recently introduced a new api
which-key-add-keymap-based-replacements which improves perfomance and allows
prefix and namings to be stored directly in keymap. This is a great improvement.
With this new api we now make change to spacemacs/declare-prefix-for-minor-mode
to manage prefix also. For example:
(spacemacs/set-leader-keys-for-minor-mode 'lsp-mode
"=" "format"
"=b" #'lsp-format-buffer)
Before we had to use another api to bind prefix
spacemacs/declare-prefix-for-mode which only works on major-mode. As lsp-mode is
a minor mode this api causes a lot of problems to which-key performance. An
example is https://github.com/syl20bnr/spacemacs/issues/12455 which led to my
hack in https://github.com/syl20bnr/spacemacs/pull/12474.
The improved spacemacs/set-leader-keys-for-minor-mode will take care of both
prefix and key naming for the minor mode. This will allows us to have a better
set up for dynamic minor modes such as lsp-mode, tide-mode etc.
Also another api is created to make prefix for minor mode:
spacemacs/declare-prefix-for-minor-mode.
Usage:
(spacemacs/declare-prefix-for-minor-mode 'tide-mode "E" "errors")"
* [tide] improve prefix
* [lsp] improve prefix
Many new users (quite logically) assume that the additional-packages list
behaves like installing a layer, so they assume the file is also loaded
automatically. This commit adds info about the requirement to also load the
package with load/require/use-package in the user-config section of the dotfile.