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)))