This refactor was premature. It still worked, but only by accident.
This is not a *full* revert; +magit--pos has been renamed for clarity.
Revert: d4c02bcd08
This prevents naming collisions between projects that resolve to the
same name (e.g. foo/bar/src and baz/foo/src both resolve to the same
project name: "src"), causing Magit to destructively reuse magit
bufffers across projects (which is especially disruptive if you use
workspaces and are using magit in both, in unrelated projects that
happen to have the same name).
Redesign this hook around `after-focus-change-function`, along with
debouncing, to prevent it from triggering too aggressively (due to
misbehaving desktop environments, elisp packages that tinker with frame
focus, or accidental (and rapid) focus changes by the user).
`doom-switch-{window,buffer}-hook` have also been simplified, and
`doom-switch-window-hook` now will not trigger when focusing another
frame (only when you switch windows *within* any one frame).
This also fixes diff-hl not updating when refocusing an Emacs frame.
This module has been deprecated for a while as it's much too trivial to
warrant being its own module, has been incomplete since its inception,
and there's no interest in maintaining, finishing, or expanding it.
These fixes for evil-collection-magit-section weren't being applied
since 2f7f37d49b, but any combination of `after!` (or
`{with-}eval-after-load`) will convolute load order for users trying to
rebind their own keys on top of ours *and* evil-collection's, and using
`evil-collection-setup-hook` for this is clumsy, so I must resort to
advice.
Amend: 2f7f37d49b
- Ensure `magit-log-select-mode` windows use the same window as the
magit-status buffer, and that the revision buffer is displayed below
it (similar to commit window configs).
- Uses the same window when invoking diffs (#8083).
Fix: #8083
With the combination of a bad value for
`transient-display-buffer-action` and a non-nil
`transient-show-during-minibuffer-read`, transient may jumble up
adjacent popup/side windows, particularly those belonging to plugins
with their own popup management and dedicated side windows (i.e.
`display-buffer-alist` rules) like Helm or Doom's popups.
Fix: #8319Fix: #8235
Co-authored-by: tarsius <tarsius@users.noreply.github.com>
In the interest of slimming down Doom's core (as we near v3), I've
deprecated these macros. They doesn't really need to exist. Sure, the
alternatives aren't as ergonomic or elegant, but they're good enough
that we don't need these trivial wrappers. Their local uses have been
refactored out as well.
Since dumb-jump-go is deprecated, we want to use the xref backend.
Due to how lsp-mode integrates with xref-backend-functions currently,
it's not as simple as just adding dumb-jump-xref-activate to the
xref-backend-functions so this is a bit of a hacky workaround.
Going forward, I'll leave it to each :lang module to document the LSP
clients they support/favor, and defer to lsp-mode/eglot's docs for their
support tables rather than maintain our own.
Close: #8131
The +eval/send-region-to-repl command was adding an extra newline when
sending regions to REPLs, causing double prompts to appear. This removes
the extra newline for cleaner REPL interaction across all language modes.
* modules/tools/eval/autoload/repl.el (+eval/send-region-to-repl):
remove concatenation of newline after region
BREAKING CHANGE: This backports some architectural choices from v3.0.
This changes Doom's module API, renaming some functions and removing
others, in order to facilitate some new features, prepare to move Doom's
modules into separate repos, and make way for two, much larger breaking
commits coming in the next few days.
This commit won't break anything for users unless they're tinkering with
Doom's internals/using its `doom-module-*` API directly. I am avoiding
broader backwards incompatibilities until the 3.0 release.
What's new:
- Negated flags. (modulep! :editor evil -everywhere) will return non-nil
if :editor evil is active without its +everywhere flag.
- `modulep!` now takes multiple flags to simplify AND checks. E.g.
(and (modulep! +foo)
(modulep! +bar)
(not (modulep! +baz)))
Can now be expressed with:
(modulep! +foo +bar -baz)
- Adds pcase matchers for `doom-module-context` and `doom-module`
structs, making the following destructuring binds possible:
(pcase-dolist ((doom-module group name flags features)
(hash-table-values doom-modules))
...)
This will be used more in v3.0.
- Adds file cookie support to module init.el and config.el files.
Here's a summary of breaking changes made in this commit:
- `doom-module-context` was changed from a vector to a struct (record).
- `doom-modules` is now a table of `doom-module` structs, rather than
free-form plists.
- The following macros have been renamed:
- `doom-context-with` -> `with-doom-context`
- `doom-module-context-with` -> `with-doom-module`
- The followings functions have been replaced/removed:
- `doom-module-context`+`doom-module-context-get` -> `doom-module`
- `doom-module-set` -> `doom-module--put`
- `doom-module-p` -> `doom-module-active-p`
- `doom-module-context-key` (is now a getter with the same name)
- `doom-module-put` (removed)
- `doom-module--context-field` (removed)
- The signatures for these functions have changed:
- `doom-module-get CATEGORY &optional MODULE PROP` ->
`doom-module-get (GROUP . MODULE) &optional PROP`
- `doom-module-locate-path CATEGORY &optional MODULE FILE` ->
`doom-module-locate-path (GROUP . MODULE) &optional FILE`
- `doom-module-expand-path CATEGORY MODULE &optional FILE` ->
`doom-module-expand-path (GROUP . MODULE) &optional FILE`
- Adds the following functions
- `doom-module-exists-p`
- `doom-module-key`
- `doom-module->context`
- `doom-module<-context`
- Removes the following variables
- `doom-module--empty-context`
This commit results in a little redundancy, which I will address in
parts 2/3 and/or v3.0.
These optional dotfiles indicate the root of a module or module
group (:lang), and will later contain module metadata. They will also
serve as an alternative to packages.el and doctor.el, and will aide the
parts of the v3.0 module API concerned with resolving the current module
from a path (`doom-module-from-path`), which currently rely too heavily
on parsing path strings.
For now, however, they're simply placeholders.
`git-commit` is no longer distributed with `magit` and no longer
declares its dependencies, causing "file missing: with-editor" and
similar errors for folks who don't have magit installed. Also, VC's
commit workflows don't utilize the mode, so there's no reason to keep it
in this module.
Ref: magit/magit@c170fcf399
Ref: #8003
0893ede removed magit-todos from the default magit module configuration.
Users are expected to install it by themselves, if they wish to use the
package, given it's simple config.
Amend: 0893edefae
This is only a concern for lsp-mode, which tries to auto-install servers
if `lsp-enable-suggest-server-download` is non-nil (which it is, by
default).
Amend: #7346
"\\'" will match the true end-of-string, whereas "$" will also match
just before a newline character. Not that there's much risk that
there'll be newlines in a filepath, but I'd rather be consistent. It
also makes these entries easier for users to remove from
auto-mode-alist.
This issue seems to come up a lot, and I've been unable to reproduce it,
but at the very least I can disable the lsp-terraform client for folks
that don't need it.
Fix: #7713
Ref: emacs-lsp/lsp-mode#3577