Function: majutsu-op--insert-diff-node

majutsu-op--insert-diff-node is a natively compiled function defined in majutsu-op.el.

Signature

(majutsu-op--insert-diff-node NODE)

Documentation

Insert one parsed operation diff NODE.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-op.el
(defun majutsu-op--insert-diff-node (node)
  "Insert one parsed operation diff NODE."
  (pcase (plist-get node :type)
    ('group
     (magit-insert-section (jj-op-group (list :kind (plist-get node :kind)
                                              :title (plist-get node :title)))
       (magit-insert-heading (majutsu-op--node-display-text node))
       (dolist (child (plist-get node :children))
         (majutsu-op--insert-diff-node child))))
    ('ref
     (magit-insert-section (jj-op-ref (plist-get node :name))
       (magit-insert-heading (majutsu-op--node-display-text node))
       (dolist (child (plist-get node :children))
         (majutsu-op--insert-diff-node child))))
    ('commit-line
     (let ((value (plist-get node :value)))
       (magit-insert-section (jj-op-commit-line value)
         (if-let* ((commit-id (plist-get value :commit-id)))
             (magit-insert-section (jj-commit commit-id)
               (magit-insert-heading (majutsu-op--format-diff-line value)))
           (magit-insert-heading (majutsu-op--format-diff-line value))))))
    ('ref-line
     (let ((value (plist-get node :value)))
       (magit-insert-section (jj-op-ref-line value)
         (if-let* ((commit-id (and (not (plist-get value :absent))
                                   (plist-get value :commit-id))))
             (magit-insert-section (jj-commit commit-id)
               (magit-insert-heading (majutsu-op--format-diff-line value)))
           (magit-insert-heading (majutsu-op--format-diff-line value))))))
    ('warning
     (magit-insert-section (jj-op-warning nil)
       (magit-insert-heading (propertize (majutsu-op--node-display-text node)
                                         'face 'font-lock-warning-face))))
    ('elision
     (magit-insert-section (jj-op-elision nil)
       (magit-insert-heading (propertize (string-trim-left
                                          (majutsu-op--node-display-text node))
                                         'face 'shadow))))
    (_
     (magit-insert-section (jj-op-raw-line nil)
       (magit-insert-heading (majutsu-op--node-display-text node))))))