Function: web-mode-element-wrap
web-mode-element-wrap is an interactive and natively compiled function
defined in web-mode.el.
Signature
(web-mode-element-wrap &optional TAG-NAME)
Documentation
Wrap current REGION with start and end tags.
Prompt user if TAG-NAME isn't provided.
Key Bindings
web-mode-map C-c C-e w
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-wrap (&optional tag-name)
"Wrap current REGION with start and end tags.
Prompt user if TAG-NAME isn't provided."
(interactive)
(let (beg end pos tag sep)
(save-excursion
(setq tag (or tag-name (web-mode-element-complete)))
(setq pos (point))
(cond
(mark-active
(setq beg (region-beginning)
end (region-end)))
((get-text-property pos 'tag-type)
(setq beg (web-mode-element-beginning-position pos)
end (1+ (web-mode-element-end-position pos))))
((setq beg (web-mode-element-parent-position pos))
(setq end (1+ (web-mode-element-end-position pos))))
)
;; (message "beg(%S) end(%S)" beg end)
(when (and beg end (> end 0))
(setq sep (if (get-text-property beg 'tag-beg) "\n" ""))
(web-mode-insert-text-at-pos (concat sep "</" tag ">") end)
(web-mode-insert-text-at-pos (concat "<" tag ">" sep) beg)
(when (string= sep "\n") (indent-region beg (+ end (* (+ 3 (length tag)) 2))))
)
) ;save-excursion
(web-mode-go beg)))