* [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`).
When the buffer's name is uniquified (because multiple buffers have
the same short name), it is no longer equal to the basename of the
buffer's file name, so it is incorrect to use the buffer name in the
rename operation.
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
This bug exists already since I started using Spacemacs about 1.5 year ago.
Because it was already reported upstreaim in
[this issue](https://github.com/atykhonov/google-translate/issues/52), I
implemented this fix only locally.
However it becomes time now to implement this fix globally, to fix the
google-translate functionality by default.
Toggles are great and all, but the trouble with the various toggles for line
numbers is that they force you to remember and think about the fact that there
are variant forms of line numbers. To beginners or forgetful people the various
combinations of behavior can be unintuitive here (e.g. toggling off relative
line numbers does nothing if you are actual in visual line numbers mode). Though
it doesn't fit exactly into the normal stuff we have for toggles, due to the
complexity of this situation I think it is good to just have a way to say "line
numbers be gone!"
Wasn't sure what keybinding to use, so used a double-tap mnemonic.
If this PR gets rejected, there are a couple minor fixes that should probably be
pulled out and submitted separately.
When providing only the new directory path (i.e. without new filename) while
moving a file to a new directory with `spacemacs/rename-current-buffer-file`,
currently Spacemacs opens the file in a new buffer with the directory name.
Additionally, the `file-renamed-p` gets set the wrong value. To fix both
issues (with minimal work), it is easiest to just fix the `new-name`
value (alternatively fixing the `rename-buffer` and `set-visited-file-name`
forms later would not fix the wrong `file-renamed-p` value issue).
Finally when called with a universal-argument, then that argument
unintentionally gets 'passed' in the interactive call to
projectile-invalidate-cache. So this PR fixes that by changing the interactive
call to a funcall.
Built on consult embark orderless selectrum/vertico.
It's been working ok. Basic features are in, let's merge it and let our community
improve it togegher :)
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
This reverts commit ec57b21a92.
A which-key change caused issues with this fix.
And the fix doesn't seem to be needed anymore.
The correct which-key entries appear without the fix.
### Added workspace action messages
`SPC l w` followed by a number key `0-9`
or `SPC l w s` single window workspace
>Workspace 2 created
`SPC l w 1` from another workspace
>Workspace switched to 1
`SPC l w 1` from the same workspace
>Already on Workspace 1
`SPC l w c` clones the current workspace to the next free slot
>Workspace 1 cloned to 3
`SPC l w d` close the current workspace
Workspace 3 closed
### And
Open the Spacemacs home buffer when creating a new workspace
with the number keys. Previously it opened the scratch buffer.
problem
Trying to clone a workspace `SPC l w c`
Does create a new workspace,
but it just shows the scratch buffer.
notes
In addition to fixing the cloning.
Show a minibuffer message:
Workspace: 1, cloned to Workspace: 2
To make it clear that the cloning worked.
Because the only visible difference, is that
one of the left side mode line numbers changed.
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.