Function: majutsu-conflict--match-line
majutsu-conflict--match-line is a natively compiled function defined
in majutsu-conflict.el.
Signature
(majutsu-conflict--match-line LIMIT)
Documentation
Match any line within JJ conflict. Font-lock ANCHORED-MATCHER.
Sets match-data and updates state variables.
Source Code
;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-conflict.el
(defun majutsu-conflict--match-line (limit)
"Match any line within JJ conflict. Font-lock ANCHORED-MATCHER.
Sets match-data and updates state variables."
(when (< (point) limit)
(let* ((line-beg (line-beginning-position))
(line-end (line-end-position))
(line (buffer-substring-no-properties line-beg line-end))
(expected-len (or majutsu-conflict--marker-len
majutsu-conflict-min-marker-len))
(parsed (majutsu-conflict--parse-marker-line line expected-len))
(kind (and parsed
(majutsu-conflict--marker-kind (plist-get parsed :char)))))
(cond
;; Marker line
((memq kind '(begin end diff add remove))
(pcase kind
('begin
;; Detect style from first body line using this conflict's marker length.
(setq majutsu-conflict--marker-len (plist-get parsed :len)
majutsu-conflict--in-diff nil
majutsu-conflict--in-add nil
majutsu-conflict--in-remove nil
majutsu-conflict--add-count 0)
(setq majutsu-conflict--style
(majutsu-conflict--detect-style line-beg majutsu-conflict--marker-len)))
('end
(setq majutsu-conflict--in-diff nil
majutsu-conflict--in-add nil
majutsu-conflict--in-remove nil
majutsu-conflict--marker-len nil))
('diff
(setq majutsu-conflict--in-diff t
majutsu-conflict--in-add nil
majutsu-conflict--in-remove nil))
('add
(setq majutsu-conflict--in-diff nil
majutsu-conflict--in-add t
majutsu-conflict--in-remove nil)
(cl-incf majutsu-conflict--add-count))
('remove
(setq majutsu-conflict--in-diff nil
majutsu-conflict--in-add nil
majutsu-conflict--in-remove t)))
(set-match-data (list line-beg (min (1+ line-end) (point-max))))
(goto-char (min (1+ line-end) (point-max)))
t)
;; Note marker
((eq kind 'note)
(set-match-data (list line-beg (min (1+ line-end) (point-max))))
(goto-char (min (1+ line-end) (point-max)))
t)
;; Content line
(t
(set-match-data (list line-beg (min (1+ line-end) (point-max))))
(goto-char (min (1+ line-end) (point-max)))
t)))))