Function: magit-section-context-menu

magit-section-context-menu is a byte-compiled function defined in magit-section.el.

Signature

(magit-section-context-menu MENU CLICK)

Documentation

Populate MENU with Magit-Section commands at CLICK.

Source Code

;; Defined in ~/.emacs.d/elpa/magit-section-20260330.1102/magit-section.el
(defun magit-section-context-menu (menu click)
  "Populate MENU with Magit-Section commands at CLICK."
  (when-let ((section (save-excursion
                        (unless (region-active-p)
                          (mouse-set-point click))
                        (magit-section-at))))
    (unless (region-active-p)
      (setq magit--context-menu-buffer (current-buffer))
      (if-let ((alt (save-excursion
                      (mouse-set-point click)
                      (run-hook-with-args-until-success
                       'magit-menu-alternative-section-hook section))))
          (setq magit--context-menu-section (setq section alt))
        (setq magit--context-menu-section section)
        (magit-section-update-highlight t)))
    (when (magit-section-content-p section)
      (keymap-set-after menu "<magit-section-toggle>"
        `(menu-item
          ,(if (oref section hidden) "Expand section" "Collapse section")
          magit-section-toggle))
      (when-let* ((_(not (oref section hidden)))
                  (children (oref section children))
                  (_(seq-some #'magit-section-content-p children)))
        (when (seq-some (##oref % hidden) children)
          (keymap-set-after menu "<magit-section-show-children>"
            `(menu-item "Expand children"
                        magit-section-show-children)))
        (when (seq-some (##not (oref % hidden)) children)
          (keymap-set-after menu "<magit-section-hide-children>"
            `(menu-item "Collapse children"
                        magit-section-hide-children))))
      (keymap-set-after menu "<separator-magit-1>" menu-bar-separator))
    (keymap-set-after menu "<magit-describe-section>"
      `(menu-item "Describe section" magit-describe-section))
    (when-let ((map (oref section keymap)))
      (keymap-set-after menu "<separator-magit-2>" menu-bar-separator)
      (when (symbolp map)
        (setq map (symbol-value map)))
      (setq magit-menu-common-value (magit-menu-common-value section))
      (setq magit-menu--desc-values (magit-menu--desc-values section))
      (map-keymap (lambda (key binding)
                    (when (consp binding)
                      (define-key-after menu (vector key)
                        (copy-sequence binding))))
                  (menu-bar-keymap map))))
  menu)