Function: web-mode-block-match
web-mode-block-match is a natively compiled function defined in
web-mode.el.
Signature
(web-mode-block-match &optional POS)
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-block-match (&optional pos)
(unless pos (setq pos (point)))
(let (pos-ori controls control (counter 1) type (continue t) pair)
(setq pos-ori pos)
(goto-char pos)
(setq controls (web-mode-block-controls-get pos))
;;(message "controls=%S" controls)
(cond
(controls
(setq pair (car controls))
(setq control (cdr pair))
(setq type (car pair))
(when (eq type 'inside) (setq type 'close))
(while continue
(cond
((and (> pos-ori 1) (bobp))
(setq continue nil))
((or (and (eq type 'open) (not (web-mode-block-next)))
(and (eq type 'close) (not (web-mode-block-previous))))
(setq continue nil)
)
((null (setq controls (web-mode-block-controls-get (point))))
)
(t
;;TODO : est il nécessaire de faire un reverse sur controls si on doit matcher backward
(dolist (pair controls)
(cond
((not (string= (cdr pair) control))
)
((eq (car pair) 'inside)
)
((eq (car pair) type)
(setq counter (1+ counter)))
(t
(setq counter (1- counter)))
)
) ;dolist
(when (= counter 0)
(setq continue nil))
) ;t
) ;cond
) ;while
(if (= counter 0) (point) nil)
) ;controls
(t
(goto-char pos-ori)
nil
) ;controls = nul
) ;conf
))