branch: externals/marginalia
commit 43cf0455f93fb3c7901e2d2609302326584f40a7
Author: Daniel Mendler <[email protected]>
Commit: Daniel Mendler <[email protected]>
marginalia-annotate-frame: Handle frame-id
---
CHANGELOG.org | 2 +-
marginalia.el | 10 +++++++---
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.org b/CHANGELOG.org
index 21f48db97f..f5945e2b71 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -4,7 +4,7 @@
* Development
-- Add ~marginalia-annotate-frame~ for ~select-by-frame-name~.
+- Add ~marginalia-annotate-frame~ for ~select-by-frame-name~ and
~select-frame-by-id~.
- Fix ~marginalia-annotate-embark-keybinding~.
* Version 2.8 (2026-01-17)
diff --git a/marginalia.el b/marginalia.el
index f710f5057c..dc29d7dd3e 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -1183,9 +1183,13 @@ These annotations are skipped for remote paths."
(defun marginalia-annotate-frame (cand)
"Annotate frame named CAND with window and buffer information."
- (when-let* ((frame (cl-loop for f in (frame-list)
- if (equal cand (frame-parameter f 'name))
- return f)))
+ (when-let* ((frame (cl-loop
+ for f in (frame-list)
+ if (or (equal cand (frame-parameter f 'name))
+ ;; `frame-id' is an Emacs 31 addition
+ (when (fboundp 'frame-id)
+ (equal cand (number-to-string (frame-id f)))))
+ return f)))
(let ((wins (window-list frame)))
(marginalia--fields
((length wins) :format "win:%s" :face 'marginalia-size)