Function: majutsu-bookmark--wash-list

majutsu-bookmark--wash-list is a natively compiled function defined in majutsu-bookmark.el.

Signature

(majutsu-bookmark--wash-list ARGS)

Documentation

Wash structured row output into local, remote, and Git sections.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-bookmark.el
(defun majutsu-bookmark--wash-list (_args)
  "Wash structured row output into local, remote, and Git sections."
  (let* ((compiled (majutsu-bookmark--ensure-list-template))
         (parsed (majutsu-row-read-buffer compiled))
         (entries (plist-get parsed :entries))
         local git remotes displayed
         (inhibit-read-only t))
    (majutsu-row-report-diagnostics (plist-get parsed :diagnostics))
    (dolist (entry entries)
      (let ((remote (majutsu-row-column entry 'remote)))
        (cond ((null remote) (push entry local))
              ((equal remote "git") (push entry git))
              (t (push entry (alist-get remote remotes nil nil #'equal))))))
    (when majutsu-bookmark--list-remotes
      (maphash (lambda (name _entry)
                 (unless (assoc name remotes)
                   (push (list name) remotes)))
               majutsu-bookmark--list-remotes))
    (setq local (nreverse local) git (nreverse git)
          remotes (sort remotes (lambda (a b) (string< (car a) (car b)))))
    (delete-region (point-min) (point-max))
    (majutsu-bookmark--insert-list-group 'local "Local bookmarks" local compiled)
    (setq displayed local)
    (magit-insert-section (bookmark-group 'remote)
      (magit-insert-heading "Remote bookmarks")
      (dolist (group remotes)
        (let ((refs (nreverse (cdr group))))
          (magit-insert-section (jj-git-remote (car group))
            (magit-insert-heading (majutsu-bookmark--remote-heading (car group)))
            (if refs
                (dolist (entry refs)
                  (majutsu-bookmark--insert-list-entry entry compiled))
              (insert (propertize "  No bookmarks\n" 'font-lock-face 'shadow))))
          (setq displayed (append displayed refs))))
      (insert "\n"))
    (when git
      (majutsu-bookmark--insert-list-group 'git "Git tracking bookmarks" git compiled)
      (setq displayed (append displayed git)))
    (majutsu-row-set-buffer-data compiled displayed)))