Function: web-mode-snippet-insert

web-mode-snippet-insert is an interactive and natively compiled function defined in web-mode.el.

Signature

(web-mode-snippet-insert CODE)

Documentation

Insert a snippet.

Key Bindings

web-mode-map C-c C-s

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-snippet-insert (code)
  "Insert a snippet."
  (interactive
   (list (completing-read "Snippet: " (web-mode-snippet-names))))
  (let (beg
        (continue t)
        (counter 0)
        end
        sel
        snippet
        (l (length web-mode-snippets))
        pos)
    (when mark-active
      (setq sel (web-mode-trim (buffer-substring-no-properties
                                (region-beginning) (region-end))))
      (delete-region (region-beginning) (region-end)))
    (while (and continue (< counter l))
      (setq snippet (nth counter web-mode-snippets))
      (when (string= (car snippet) code)
        (setq continue nil))
      (setq counter (1+ counter)))
    (when snippet
      (setq snippet (cdr snippet))
      (setq beg (line-beginning-position))
      (insert snippet)
      (setq pos (point)
            end (point))
      (cond
        ((string-match-p "¦" snippet)
         (search-backward "¦")
         (delete-char 1)
         (setq pos (point)
               end (1- end)))
        ((string-match-p "|" snippet)
         (search-backward "|")
         (delete-char 1)
         (setq pos (point)
               end (1- end)))
        ) ;cond
      (when sel
        (insert sel)
        (setq pos (point)
              end (+ end (length sel))))
      (goto-char end)
      (setq end (line-end-position))
      (unless sel (goto-char pos))
      (indent-region beg end))
    ))