Change how we detect and suppress file template expansion in org-capture
buffers (which are indirect clones). Since 99.99% of the time, an
indirect clone means we're doing something special in that buffer, it
seemed sensible to always suppress file templates in them. Hopefully
this will be more robust than the former advice.
As described at https://www.json.org/json-en.html, JSON has multiple
top-level forms (at least objects and arrays, and potentially all values
as well, depending on who you ask). Of these, I would not say array is a
good default. I frequently find myself deleting this default, generally
to use an object instead.
Because there is no consistent winner, and because the template is so
trivial, it seems best to simply delete it: the cost of the template not
matching the user's intent outweighs any benefit it stands to deliver
when it does match the user's intent.
Our hacks were too eagerly clearning evil-mc's state. These changes will
ensure that doesn't happen.
Perhaps its time I package this up into a PR upstream?
Fix: #6091
Taking a look at the built in windmove functions shows that Emacs has a
built in function for swapping windows called `window-swap-states`.
Using this ensures the window state is maintained.
Ref: #6023
Co-authored-by: luveti <luveti@users.noreply.github.com>
evil-mc's design is bizarre. Its variables and hooks are lazy loaded
rather than declared at top-level, some hooks aren't defined or
documented, it's a bit initializer-function drunk, and its minor modes
are intended to be perpetually active -- even when no cursors are active
(causing #6021). I undo all of that here.
Fix: #6021
evil-collection-smerge-mode is broken due to incorrect pathing upstream,
so evilified keybinds for smerge-mode will have to wait until it is
addressed there.
Amend: 8d6221bc1e
Amend: 7bbc3bc48e
Emacs 27 introduced a bunch of `window-*-change-functions` hooks,
including `window-selection-change-functions` and
`window-buffer-change-functions`, which handles 98% of the use case for
Doom's `doom-switch-{buffer,window,frame}-hook` hooks, so I've rewritten
them to use them under the hood, which amounts to simpler code and fewer
hacks.
`+snippets-prompt-private` was overzealous intercepting the candidates fed to
`yas-choose-value`. For example, expanding the `jupyter` snippet in org mode
results in:
\#+begin_src jupyter-Wrong type argument: yas--template, "python" :session :async yes
...
\#+end_src
Unify flycheck-list-errors and flymake-show-diagnostics-buffer under
+default/diagnostics, and use consult-lsp-diagnostics if the lsp and
vertico modules are active.
This doesn't fix a particular issue, but makes designing keybinds for
org-mode more predictable and less vulnerable to unpredictable changes
imposed by evil-collection.
a2a128d3 changed prefix-help-command to use embark. This commit fixes
prefix-help-command getting reset to describe-prefix-bindings due to
help.el setting it at top-level because it is eventually loaded twice
due to defer-feature!, which removes a symbol from emacs' list of loaded
features.
Ref a2a128d3a5