Function: majutsu-interactive-toggle-region

majutsu-interactive-toggle-region is an interactive and natively compiled function defined in majutsu-interactive.el.

Signature

(majutsu-interactive-toggle-region)

Documentation

Toggle selection of the region within the current hunk.

Key Bindings

This command is not in any keymaps.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-interactive.el
(defun majutsu-interactive-toggle-region ()
  "Toggle selection of the region within the current hunk."
  (interactive)
  (unless (use-region-p)
    (user-error "No region active"))
  (magit-section-case
    (jj-hunk
     (let* ((hunk-id (majutsu-interactive--hunk-id it))
            (range (majutsu-interactive--normalize-line-range
                    (region-beginning) (region-end)
                    (oref it content) (oref it end)))
            (current (majutsu-interactive--get-selection hunk-id)))
       (unless range
         (user-error "Region is outside hunk"))
       (cond
        ((eq current :all)
         (majutsu-interactive--set-selection hunk-id (list range)))
        ((consp current)
         (let* ((ranges (if (and current (consp (car current))) current (list current)))
                (ranges (if (member range ranges)
                            (remove range ranges)
                          (cons range ranges)))
                (ranges (majutsu-interactive--ranges-merge ranges)))
           (majutsu-interactive--set-selection hunk-id (and ranges ranges))))
        (t
         (majutsu-interactive--set-selection hunk-id (list range))))
       (majutsu-interactive--render-overlays)
       (deactivate-mark)
       (message "Region selection updated")))))