branch: externals/marginalia
commit f73a31dd7afb1061395fc00ecf11f10a89854863
Author: Daniel Mendler <[email protected]>
Commit: Daniel Mendler <[email protected]>

    Add marginalia-annotate-frame
---
 CHANGELOG.org |  5 +++++
 marginalia.el | 15 +++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index d04b194d47..21f48db97f 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -2,6 +2,11 @@
 #+author: Omar AntolĂ­n Camarena, Daniel Mendler
 #+language: en
 
+* Development
+
+- Add ~marginalia-annotate-frame~ for ~select-by-frame-name~.
+- Fix ~marginalia-annotate-embark-keybinding~.
+
 * Version 2.8 (2026-01-17)
 
 - Use =when-let*= instead of =when-let=.
diff --git a/marginalia.el b/marginalia.el
index d2362229ee..f710f5057c 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -115,6 +115,7 @@ displayed instead."
      (library ,#'marginalia-annotate-library)
      (theme ,#'marginalia-annotate-theme)
      (tab ,#'marginalia-annotate-tab)
+     (frame ,#'marginalia-annotate-frame)
      (multi-category ,#'marginalia-annotate-multi-category)))
   "Annotator function registry.
 Associates completion categories with annotation functions.  Each
@@ -150,6 +151,7 @@ determine it."
     ("\\<minor mode\\>" . minor-mode)
     ("\\<kill-ring\\>" . kill-ring)
     ("\\<tab by name\\>" . tab)
+    ("\\<frame\\>" . frame)
     ("\\<library\\>" . library)
     ("\\<theme\\>" . theme))
   "Associates regexps to match against minibuffer prompts with categories.
@@ -1179,6 +1181,19 @@ These annotations are skipped for remote paths."
      ((abbreviate-file-name (file-name-directory file))
       :truncate -1.0 :face 'marginalia-file-name))))
 
+(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)))
+    (let ((wins (window-list frame)))
+      (marginalia--fields
+       ((length wins) :format "win:%s" :face 'marginalia-size)
+       ((if (eq frame (selected-frame))
+            "(current frame)"
+          (mapconcat (lambda (w) (buffer-name (window-buffer w))) wins " "))
+        :face 'marginalia-documentation)))))
+
 (defun marginalia-annotate-tab (cand)
   "Annotate named tab CAND with tab index, window and buffer information."
   (when-let* ((tabs (funcall tab-bar-tabs-function))

Reply via email to