228 Commits

Author SHA1 Message Date
eae2529ed8 fix(popup): ensure hooks run in popup buffer/window
Ref: 13b64229a0
2025-04-09 15:59:47 -04:00
13b64229a0 fix(popup): fringe/margins adjusted in wrong window
Due to a race condition in some contexts, hooks that adjusted window
fringes or margins weren't targeting the windows (usually popups) they
were supposed to, often affecting the last selected window instead. This
could cause the fringes (or margins) to resize or outright vanish
unexpectedly in the wrong windows (e.g. after opening or killing a vterm
or eshell popup).

Fix: #8346
2025-04-07 13:59:30 -04:00
5b11ac7267 feat(popup): +popup/raise: use visible popup if none selected
This command would formerly raise the focused window into a regular
window, erroring out if that window isn't a popup. Now, if the focused
window isn't a popup, any (single) visible popup in the current frame
will be targeted, and if multiple popups are visible, you'll be prompted
to select one.
2025-04-01 00:48:03 -04:00
0a715cc3f2 refactor: (if|when)-let -> (if|when)-let*
With the former macros' future in the air (and likely to be targeted in
future, potentially breaking changes), I'll deal with this now than have
it bite me later.

Ref: https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00637.html
2025-01-08 19:33:37 -05:00
037b018cdd feat: add .doommodule files
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.
2024-09-14 20:47:39 -04:00
d1c2c8c35b fix(popup): don't disable hide-mode-line if enabled globally
Ref: hlissner/emacs-hide-mode-line#11
2024-08-29 02:46:21 -04:00
3c4921cc57 fix(popup): only remap quit-window in popup buffers 2024-08-28 23:04:21 -04:00
5e2e886b35 nit: comment revision & reformatting 2024-08-15 23:18:47 -04:00
334157d741 fix(popup,org): popup management for org-mode
Adapts to changes made upstream to Org's window management logic (e.g.
Org dropped `org-switch-to-buffer-other-window` for
`switch-to-buffer-other-window`, and org-journal renamed one of its
helper functions).
2024-08-09 17:41:48 -04:00
f5a9f5d7ad docs(popup): set-popup-rule!: update docstring 2024-07-18 22:38:59 -04:00
5589722c8e fix(popup): fix typo in local variable name 2024-04-01 13:28:49 -04:00
e27d9b35d3 fix(popup): fix finding of major side window
Fix: #7647
Amend: #7598
2024-03-11 02:55:38 -04:00
5ef7075f96 nit(popup): mention post-command-select-window for 30.x+
Ref: emacs-mirror/emacs@6f75d0f36d
2024-02-08 00:58:20 -05:00
2c15e4e6fc fix(evil): obsolete evil-command-window advice
As noted in #7556, the advice `+popup--evil-command-window-a` fails,
preventing the command window from being opened. This is because
`evil-command-window` has been rewritten extensively.

In particular, emacs-evil/evil@a09fdca0b3 made it use
`display-buffer` instead of `switch-to-buffer`, so that users could
customize how the window opens. Since this was the function of this
advice, it is obsolete and can be removed.

Fix: #7556
Ref: emacs-evil/evil@a09fdca0b3
2024-02-01 02:36:16 -05:00
dca4e4a8ed fix(popup): find internal major side windows
Fix: #5485
2024-01-24 12:16:58 -05:00
c4bb95e073 fix(popup): change evil function to call following upstream rename 2023-10-06 22:38:35 +02:00
88bb045388 docs(*): replace all-the-icons with nerd-icons
Also colorizes the leading icon in notices.
2023-09-16 20:19:11 +02:00
d8372b6e2d fix(popup): +popup/raise: recursive popup
Without this, raising a popup might result in simply opening a popup
with the same rules.
2023-09-11 23:53:59 +02:00
0e8f458d99 fix(popup): add wdired hacks
Previously, wdired actions will not close popup windows, which is
cumbersome to use. We've already added similar hacks to dired. Now it's
time to add similar hacks to wdired.
2023-09-06 14:33:27 +02:00
b84403a9fa nit: remove superfluous package cookies 2023-09-02 11:46:07 -05:00
177157b044 fix(popup): cycle windows with no-other-window property
Previously, +popup/other would do nothing if a window with the
no-other-window property that was not a popup was focused. Now
+popup/other will always select different window if there is another
popup or window with the no-other-window property.

Fix: #7119
2023-07-24 19:18:53 +02:00
TEC
5ac2a5258b docs: change link format 2022-10-05 01:01:19 +02:00
ad6a3d0f33 refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
1abcf913aa revert: fix(docs): set mode in file-local vars
emacs-straight/org-mode@e22b4eb7aa introduced a breaking change that
made it impossible to rely on .dir-locals.el to change org-mode buffers
in $EMACSDIR to doom-docs-org-mode (without infinite recursion), so we
used file-local variables in 7e400ab.

emacs-straight/org-mode@215de6176b reverted that change, so we can use
.dir-locals.el again, and this is my preference, since it requires less
boilerplate across our hundreds of org files.

Ref: emacs-straight/org-mode@215de6176b
Ref: emacs-straight/org-mode@e22b4eb7aa
Revert: 7e400abdc0
2022-08-07 19:08:07 +02:00
1f8bf7accb merge: rewrite-docs
I've omitted docs/*.org from this merge, as there is still work left to
do there, but I am pushing the module docs early so folks can benefit
from the new docs sooner.
2022-08-03 03:27:50 +02:00
7e400abdc0 fix(docs): set mode in file-local vars
Due to emacs-straight/org-mode@e22b4eb, a replacement major mode (for
org-mode) can no longer be specified from .dir-locals.el, as it spirals
into infinite recursion. Therefore, a mode: line is needed in all Doom
docs.

Ref: emacs-straight/org-mode@e22b4eb7aa
2022-08-03 02:46:33 +02:00
1255315bfc refactor(docs): replace nav menus with virtual one
Now that the header is dynamically generated (when doom-docs-mode is
active), a literal header is unnecessary.
2022-08-02 19:37:07 +02:00
e77a45bc22 docs: use lowercase keywords
As per Org's new defaults, which we're adopting elsewhere, so may as
well adopt it here.
2022-08-02 16:23:43 +02:00
f26094b4ab tweak(popup): 7% bigger help popups by default 2022-02-01 18:56:16 +01:00
7246db457c docs: replace doom-source with doom-repo links
I will later use "source" to refer to module sources, so better we avoid
the terminology for now.
2022-02-01 18:55:27 +01:00
Dan
f458f97760 fix(popup): rules for report-emacs-bug 2021-12-03 16:48:06 +01:00
88844e9cec docs: simplify internal docs links
Fewer links means less confusion.

- Merge doom-issue and doom-commit links into doom-ref (for auto-linking
  Issue/PR/commit references).
- Merge doom-module-source and doom-docs-source links into doom-source.
- Rename doom-report-issue to doom-report.
- Use '!' as the icon for module issues link.
- Remove doom-repo (replaced with "doom:*" in :lang org module).
- Add doomdir and emacsdir links to :lang org module.
2021-11-21 20:04:28 +01:00
b5a2aa48fe docs(:ui): update READMEs to new format 2021-11-21 20:04:28 +01:00
3d91c9aff7 fix(popup): show reftex-citation in popup 2021-11-18 19:09:34 +01:00
db9106f92c fix(popup,undo): show undo-tree visualizer in popup
But only if undo-tree-visualizer-diff is disabled. If it's enabled,
undo-tree has its own opinions on how to manage the two windows which
don't mesh well with our popup manager, so we leave undo-tree to its
devices.

Fix: #5617
2021-10-20 21:42:13 +02:00
b2f27c2b4f refactor(lookup): move xwidget popup rule (#5598)
Setting the rules explicitly was preventing users from customizing how
xwidget popups should behave, so it was moved to the popup module as a 
global default.
2021-10-10 18:22:13 +02:00
b58fad7eee fix: unresponsive which-key C-h bindings
Since the which-key window didn't have focus, its C-h keybinds were
unpredictably unresponsive, making next/previous-page navigation et co
finnicky. This commit restores the needed focus.

Ref https://www.reddit.com/r/emacs/comments/pwr7va/comment/heydq4g
2021-10-01 11:15:17 +02:00
06392a723f refactor: rename orig-fn arg in advice to fn
A minor tweak to our naming conventions for the first argument of an
:around advice.
2021-08-04 01:53:12 -04:00
426369b4d3 revert: feat(popup): switch-to-buffer-obey-display-actions = t
As suspected, there were edge cases. Lots of sporadic window misbehavior
since I turned this on, so I'm reverting this.

Revert df520dfd4
2021-07-31 19:41:17 -04:00
348ff3f65d fix(popup): overaggressive ignoring of popup rules
Would cause errors in some legitimate cases where we want
display-buffer-alist respected.
2021-07-31 04:35:49 -04:00
df520dfd44 feat(popup): switch-to-buffer-obey-display-actions = t
This should give the popup module much more coverage, but *may* also
cause edge cases. Testing needed!
2021-07-28 15:23:56 -04:00
4d862d7770 fix(popup): org-edit-src breaks if forcibly killed
Invoke org-edit-src and an edit buffer is displayed for the src block at
point. If that popup is killed incorrectly, it leaves the original org
buffer (specifically, the src block you were editing) in a half-broken
state; forever waiting for you to finish editing that block.

This can happen when the edit window is a popup window and you switch
workspaces (which temporarily deletes popup windows), so clean up those
popups properly before switching.
2021-07-28 15:16:20 -04:00
d189132be1 fix(org): oversized org-todo popup
In the presence of multiple, horizontal splits, the org-todo popup
consumes ~50% of the vertical real-estate of its northern neighbor when
created. This is due to an edge case with some failsafe code somewhere
down org-fit-window-to-buffer's stack. This fix ensures the popup is
always a sane size.

And by enabling +popup-buffer-mode in it, we ensure it will be treated
as a popup (e.g. solaire-mode will be active in it, no modeline, etc).
2021-07-28 15:15:56 -04:00
2400e8b275 fix(popup): prioritize local actions over popup rules
Otherwise, commands like switch-to-buffer-other-{tab,window,frame} don't
do as they promise and revert to our global popup rules.

Fix #5301
2021-07-28 15:12:37 -04:00
cfcf7e0d03 Open embark grep buffers in popup 2021-07-25 15:47:58 -04:00
34fae1c01c Remove remaining Emacs27+ checks
- Remove remaining `EMACS27+` checks, since the whole codebase is
  assumed to run at version 27 or above now
- Remove `EMACS27+` definition since it's no longer needed
2021-07-10 16:03:41 +03:00
11cbd41b1b Fix process X is not a subprocess errors
When killing repl popups with special processes (e.g. for cider).
2021-03-13 16:33:18 -05:00
cf31b91858 Add default popup rule for *Apropos* buffers 2021-03-12 17:40:47 -05:00
9490d42cd3 Comment revision 2020-12-14 15:48:29 -05:00
9c510159ff popup.el: consider auto-saving indirect buffers too
Function (buffer-file-name) always returns nil with indirect buffer as
an argument. Extracting base buffer and checking if base buffer visiting
file fixes data loss in indirect buffers showed in popups.

E-mail thread in the org-mode mailing list:

  https://lists.gnu.org/archive/html/emacs-orgmode/2020-12/msg00085.html
2020-12-13 15:45:45 +01:00