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`).
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.
* 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
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).
Defines a transient state for symbol-overlay, and bind it to ~SPC s o~ and ~SPC s O~.
Updates:
* update due to the signature change of `symbol-overlay-get-list`.
* align the docstring using `^^` and add `quit` button.
By analogy with the "zz", "zb", "zt" vim / evil bindings, this adds an
additional key binding "z" for `recenter-top-bottom` to the following
transient states which navigate around the buffer in large jumps:
- auto-symbol-highlight
- error
- buffer
- vcs
- org-babel
This allows for repositioning of the buffer for visibility without having to
exit the transient state.
Minor updates are also made to documentation of other transient states.
Reduce the width of the listed key bindings by:
Moving the range and highlighted symbols counter to the right of the transient
state title.
Shorten some key description names.
Reduce three instances of "search" to just one.
And reorder the listed keys based on their search scope, small to large:
swoop, buffers, files, project.
This idea is to have the spacemacs-base distribution only configure defaults for
built-in packages. Those buit-in packages are now configured in the new layer
spacemacs-defaults.
Additionally some other packages of spacemacs-base have been dispatched to
better suiting spacemacs layers.
Projectile has been moved to the new layer spacemacs-project
- Move the following packages to bootsrap distributio layer:
- exec-path-from-shell
- evil-evilified-state
- holy-mode
- hybrid-mode
- spacemacs-theme
- ace-window has been moved to spacemacs-navigation
- centered-buffer-mode has been moved to spacemacs-editing-visual
- pcre2el has been moved to spacemacs-editing
- evil-escape and evil-visualstar have been moved to spacemacs-evil
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.
The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
Add two new functions: `spacemacs/transient-state-register-add-bindings`
and `spacemacs/transient-state-register-remove-bindings` to prevent layer
authors and end users from dealing with the underlying variables' subtleties.
Highlight should already be done automatocally.
This highlight is not desirable because it breaks `n` and `N` search of
occurences and it breaks `:nohl:` as well making it impossible to revert an
highlighted word.
These drawbacks were maybe intentional since it was about highlighting
_permanently_ but it goes against principle of least astonishement, users will
be consufed about an highlight that cannot be reverted whatsoever.
We need an highlighting facility in Spacemacs, there was one at some point with
the package `hl-anything` but at the time it was buggy and removed from
Spacemacs (see layer spacemacs-editing-visual). Maybe we could try it again.
Create new layers:
- spacemacs-navigation: contains packages whose principal goal is navigation
- spacemacs-modeline: contains packages about mode line
Merge spacemacs-ui and spacemacs-ui-visual into layer spacemacs-visual.