This work around is taken from dalanicolai's comment on #15505.
It tries to circumvent a name clash between the emacs package
"restart-emacs" and emacs 29 which introduced a function called
"restart-emacs".
The workaround is to load the package after the emacs file
module has been loaded.
The script used to identify and update the change is added into the GitHub
workflows script directory. A workflow action can be created to trigger the
script to update the headers on the first of every new year. Possibly a task for
a consequent PR.
* [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>
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
`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`
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
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
Pressing o `(spacemacs/ace-buffer-links)`
on the Spacemacs home buffer `SPC b h`.
Adds an ace link (one or more highlighted letters),
at the menu buttons, and the startup list entries.
problem:
The text: `[S P A C E M A C S]` gets an ace link,
but it isn't a button.
When the [?] button has been pressed, and the Quick Help
is open, then ace links appear on the open square brackets
for each key binding, but they aren't buttons.
In the lists: recent files, projects, etc.
The ace links appear before the first / (slash).
This means that in windows they appear after `c:`.
solution:
Add the ace links at the beginning of each widget-button.
Spacemacs lacks a keybinding alternative to the most natural way of scrolling
Info pages (i.e. SPC) in vanilla emacs.
Anyway, this commit adds J/K to scroll most naturally through info pages.
Currently, in Info-mode, a keybinding for J is not defined while K is bound to
evil-lookup.
Issue #2828 already adresses the inconsistent experience, and in my opinion this
can and should be improved as navigating Info pages is a very crucial part of
using Emacs.
Personally I have bound J/K to scroll page up/down in buffers/pdf/djvu/doc-view,
which I inherited from using the zathura pdf reader, and I think this is a better
default than the default vim alternatives.
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).
This is a squash commit including below commits
Add dotspacemacs--pretty-ignore-subdirs
Within the specified subdirs of `dotspacemacs-start-dir`,
spacemacs/prettify-org-buffer (and hence space-doc-mode) will not be called.
Without this variable, using spacemacs/open-junk-file to create an Org file will
result in prettification, which is not necessarily the desired behavior.
Call make-directory in spacemacs/open-junk-file
This imitates the behavior of open-junk-file.
Prevent spacemacs/open-junk-file from getting confused by Dired
If we're in a dired buffer, counsel-find-file will ignore
current-directory (i.e. junk-dir) and use (dired-current-directory) instead. We
fool Counsel by shadowing major-mode to nil.
Update CHANGELOG.develop re spacemacs/open-junk-file
Before this, `evil-ex-search-direction` would be left set to 'backward after:
- entering symbol highlight transient state mode (SPC s h)
- exiting the transient state
That means that pressing 'n' would go to the previous result instead of the next one.
problem:
Canceling "spacemacs/ace-buffer-links" with "C-g" showed the error message:
"goto-char: Wrong type argument: number-or-marker-p, t"
solution:
Only go to and press the link if it's a position (number).
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.