Function: web-mode-element-boundaries

web-mode-element-boundaries is a natively compiled function defined in web-mode.el.

Signature

(web-mode-element-boundaries &optional POS)

Documentation

Return ((start-tag-beg . start-tag-end) . (end-tag-beg . end-tag-end)) First level car and cdr are the same with void elements. Pos should be in a tag.

Source Code

;; Defined in /nix/store/2qgnz1rp30nzfz6w0apx4kdm14if1bbs-emacs-packages-deps/share/emacs/site-lisp/elpa/web-mode-20260831.219/web-mode.el
(defun web-mode-element-boundaries (&optional pos)
  "Return ((start-tag-beg . start-tag-end) . (end-tag-beg . end-tag-end))
First level car and cdr are the same with void elements.
Pos should be in a tag."
  (unless pos (setq pos (point)))
  (let (start-tag-beg start-tag-end end-tag-beg end-tag-end)
    (cond
      ((eq (get-text-property pos 'tag-type) 'start)
       (setq start-tag-beg (web-mode-tag-beginning-position pos)
             start-tag-end (web-mode-tag-end-position pos))
       (when (setq pos (web-mode-tag-match-position pos))
         (setq end-tag-beg pos
               end-tag-end (web-mode-tag-end-position pos)))
       )
      ((eq (get-text-property pos 'tag-type) 'end)
       (setq end-tag-beg (web-mode-tag-beginning-position pos)
             end-tag-end (web-mode-tag-end-position pos))
       (when (setq pos (web-mode-tag-match-position pos))
         (setq start-tag-beg pos
               start-tag-end (web-mode-tag-end-position pos)))
       )
      ((eq (get-text-property pos 'tag-type) 'void)
       (setq start-tag-beg (web-mode-tag-beginning-position pos)
             start-tag-end (web-mode-tag-end-position pos))
       (setq end-tag-beg start-tag-beg
             end-tag-end start-tag-end)
       )
      ) ;cond
    (if (and start-tag-beg start-tag-end end-tag-beg end-tag-end)
        (cons (cons start-tag-beg start-tag-end) (cons end-tag-beg end-tag-end))
        nil)
    ))