;; -*- lexical-binding: t; -*-

(defun surround-with-elem (tagname begin end)
  (interactive "*sEnter a tag name: \nr")
  (let ((end_marker (make-marker)))
    (set-marker end_marker end)
    (goto-char begin)
    (insert "<" tagname ">")
    (goto-char end_marker)
    (insert "</" tagname ">")
    (set-marker end_marker nil)
    )
)
(defun bind-surround-with-elem (tagname)
  (lambda (begin end)
    (interactive "*r")
    (surround-with-elem tagname begin end)))
(global-set-key (kbd "C-, C-c") (bind-surround-with-elem "code"))
(global-set-key (kbd "C-, C-i") (bind-surround-with-elem "i"))
(global-set-key (kbd "C-, C-v") (bind-surround-with-elem "var"))
