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 ...)`.
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.
* [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
problem:
Setting dotspacemacs-which-key-delay to an integer, for example: 4
Makes the following message to appear on startup:
(Spacemacs) Error in dotspacemacs/init: Variable: "dotspacemacs-which-key-delay" has value: "4" that doesn’t match its type: "(float)". Validator message: "(user-error Looking for `(float)' in `4' failed because:
not a float)"
cause:
dotspacemacs-which-key-delay expects the type: float
The float type has the description:
The value must be floating point.
solution:
Change the type to: number
The number type has the description:
The value must be a number (floating point or integer).
Source: info (`C-h i`)
In the section: Elisp > Customization Types > Simple Types
Added support for jumping to two digit numbers.
How quickly two numbers have to be typed,
can be modified with the variable:
spacemacs-buffer-multi-digit-delay
Smartparens seems to cause performance issues for
a lot of users. This PR allows to disable the package
completely.
There are some functions in elisp and common-lisp mode
which dependt on this package and will manually require
it when executed though. But this should only affect
lispers which mostly will want to have some kind of
smartparent functionality anyway.
For the discussion see here #12533.
problem:
Pressing a number key on the Spacemacs home buffer,
doesn't reliably open the expected recent file.
cause:
The number keys are bound to open the files in the
order they are listed in the `recentf-list`.
The `recentf-list` is updated when a file is saved.
The home buffers recent files list is only updated
when the home buffer is created/refreshed/resized.
solution:
Open the recent files in the order they were listed
when the home buffer was last updated.
Fixes: incorrect order number in recent files on home buffer #14471