Function: web-mode-element-vanish

web-mode-element-vanish is an interactive and natively compiled function defined in web-mode.el.

Signature

(web-mode-element-vanish &optional ARG)

Documentation

Vanish the current html element. The content of the element is kept.

Key Bindings

web-mode-map C-c C-e v

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-vanish (&optional arg)
  "Vanish the current html element. The content of the element is kept."
  (interactive "p")
  (let (type (pos (point)) start-b start-e end-b end-e)
    (while (>= arg 1)
      (setq type (get-text-property pos 'tag-type))
      (when type
        (cond
          ((member type '(void))
           (web-mode-element-kill)
           (set-mark (point))
           (web-mode-tag-match)
           (web-mode-tag-end)
           (exchange-point-and-mark))
          ((member type '(start))
           (setq start-b (web-mode-tag-beginning-position)
                 start-e (web-mode-tag-end-position))
           (when (web-mode-tag-match)
             (setq end-b (web-mode-tag-beginning-position)
                   end-e (web-mode-tag-end-position)))
           )
          (t
           (setq end-b (web-mode-tag-beginning-position)
                 end-e (web-mode-tag-end-position))
           (when (web-mode-tag-match)
             (setq start-b (web-mode-tag-beginning-position)
                   start-e (web-mode-tag-end-position)))
           ) ;t
          ) ;cond
        (when (and start-b end-b)
          (goto-char end-b)
          (delete-region end-b (1+ end-e))
          (delete-blank-lines)
          (goto-char start-b)
          (delete-region start-b (1+ start-e))
          (delete-blank-lines)
          (web-mode-buffer-indent)
          )
        ;;        (message "start %S %S - end %S %S" start-b start-e end-b end-e))
        ) ;when
      (skip-chars-forward "[:space:]\n")
      (setq arg (1- arg))
      ) ;while
    ) ;let
  )