At some point `windmove-find-other-window` stopped loading reliably,
such that `SPC w H` would complain of a missing symbol. Indeed
navigating to the implementation of `windmove` within Emacs's Lisp we
find warnings that it has mostly been superceded by newer window APIs
since 2013, and is implemented in terms of `window-in-direction`.
By using `window-in-direction` directly, the loading problem disappears.
In emacs-29, native tree-sitter adds new major modes for the C++
language, named c++-ts-mode. As a result, hooks in c++-mode will not
run. This commit adds the angle bracket fix hook for c++-ts-mode.
When there are extra yasnippet modes loaded in the current buffer,
prompt user to select one for the new snippet.
If a prefix arg is supplied when calling `+snippets/new`, prompt user to
select any mode.
When adding a snippet/alias to a mode for the first time, setting
`default-directory` before calling `+snippet--ensure-dir` would cause an
error due to the directory not existing. As a fix, return the dir from
`+snippet--ensure-dir` and bind `default-directory` to that.
Additionally, not having a file associated with the buffer caused issues
with loading the snippet after using snippet-mode's C-c C-c binding,
especially when other directories were added to yasnippet's load paths.
As a solution for this, prompt the user for a snippet key and set the
buffer's file name to it within the snippet dir. If an existing file
would be overwritten, ask user for confirmation. As an additional
convenience, set the snippet's key field to the entered value.
Finally, replace %alias with doom-snippets-expand in the generated alias
snippets. Not aware of any history here, but %alias did not work for me.
Rather than attempting to read the uuid from a text property on the
selected completion -- which gets stripped by vertico (and possibly
helm) -- grab it from a lookup alist of completion-candidat->uuid.
Essentially the same as the proposed implementation by @jgrey4296
on #4127Fix: #4127
For evil compatibility (switching to emacs state during multiple
cursors), when evil is enabled locally by evil-local-mode but not
globally by evil-mode, using the former to check is more accurate.
Also make the state variables local since MC maybe used for multiple
buffers: activate current buffer and while not deactivating here, go to
another buffer and activate there.
A warning gets logged if a lazily-loaded evil-collection package is
loaded too early at startup, but the goal posts were in the wrong place,
resulting in unavoidable warnings for packages that weren't actually
loaded too early.
Describes how to disable synchronization between the kill-ring and
system clipboard.
Close: #6947
Co-authored-by: rittelle <rittelle@users.noreply.github.com>
If an org-capture template generates a new, blank file, Doom steps in to
insert a yasnippet file-template into the buffer. If the file template
has text fields, it leaves the new buffer in an "editing snippets"
state (and insert mode) which causes errors downstream when org-capture
tries to modify the buffer.
The file-templates module employs some heuristics to prevent false
positives like these, but packages (and org-capture) can get around this
by simply generating and switching to the org buffer before modifying
it. This commit no-ops file-template expansion in any org-capture
session, which should resolve these issues.
Fix: #6160Fix: #6741
Permit `;;* ...` be recognized by imenu and outline-minor-mode (and
outline's commands). This also patches Lispy to reflect this new
configuration (if :lang emacs-lisp is active).
Close: #6732
Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
Introduces a system to announce what execution contexts are active, so I
can react appropriately, emit more helpful logs/warnings in the case of
issues, and throw more meaningful errors.
* bin/doom: load module CLIs in the 'modules' context.
* lisp/cli/doctor.el: load package files in 'packages' context.
* lisp/doom-cli.el:
- (doom-before-init-hook, doom-after-init-hook): trigger hooks at the
correct time. This may increase startup load time, as the benchmark
now times more of the startup process.
- (doom-cli-execute, doom-cli-context-execute,
doom-cli-context-restore, doom-cli-context-parse,
doom-cli--output-benchmark-h, doom-cli-call, doom-cli--restart,
doom-cli-load, run!): remove redundant context prefix in debug logs,
it's now redundant with doom-context, which doom-log now prefixes
them with.
* lisp/doom-lib.el (doom-log): prefix doom-context to doom-log output,
unless it starts with :.
* lisp/doom-packages.el (package!, doom-packages--read): throw error if
not used in a packages.el file or in the context of our package
manager.
* lisp/doom-profiles.el (doom-profile--generate-init-vars,
doom-profile--generate-load-modules): use modules doom-context instead
of doom-init-time to detect startup.
* lisp/doom-start.el (doom-load-packages-incrementally-h): move function
closer to end of doom-after-init-hook.
* lisp/doom.el:
- (doom-before-init-hook, doom--set-initial-values-h,
doom--begin-init-h): rename doom--set-initial-values-h to
doom--begin-init-h and ensure it runs as late in
doom-before-init-hook as possible, as that is the point where Doom's
"initialization" formally begins.
- (doom-after-init-hook): don't trigger at the end of command-line-1
in non-interactive sessions. This will be triggered manually in
doom-cli.el's run!.
* lisp/lib/config.el (doom/reload, doom/reload-autoloads,
doom/reload-env): use 'reload' context for reload commands.
* modules/lang/emacs-lisp/autoload.el (+emacs-lisp-eval): use 'eval'
context.
* modules/lang/org/config.el: remove doom-reloading-p; check for
'reload' doom context instead.