aboutsummaryrefslogtreecommitdiffstats
path: root/emmet-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'emmet-mode.el')
-rw-r--r--emmet-mode.el29
1 files changed, 26 insertions, 3 deletions
diff --git a/emmet-mode.el b/emmet-mode.el
index 2b4ddf7..8a9d5fb 100644
--- a/emmet-mode.el
+++ b/emmet-mode.el
@@ -3616,6 +3616,7 @@ For more information see `emmet-mode'."
(define-key map (kbd "<C-return>") 'emmet-expand-line)
(define-key map (kbd "<C-M-right>") 'emmet-next-edit-point)
(define-key map (kbd "<C-M-left>") 'emmet-prev-edit-point)
+ (define-key map (kbd "C-c w") 'emmet-wrap-with-markup)
map)
"Keymap for emmet minor mode.")
@@ -3881,9 +3882,14 @@ accept it or skip it."
((between-tags
(if only-before-closed-tag "\\(><\\)/" "\\(><\\)"))
(indented-line "\\(^[[:blank:]]+$\\)")
- (between-quotes "\\(=\\(\"\\|'\\)\\{2\\}\\)")
- (edit-point (format "\\(%s\\|%s\\|%s\\)"
- between-tags indented-line between-quotes)))
+ (between-quotes
+ (if emmet-move-cursor-between-quotes "\\(=\\(\"\\|'\\)\\{2\\}\\)" nil))
+ (whole-regex
+ (mapconcat 'identity
+ (delq nil
+ (list between-tags indented-line between-quotes))
+ "\\|"))
+ (edit-point (format "\\(%s\\)" whole-regex)))
(if (> count 0)
(progn
(forward-char)
@@ -3911,6 +3917,23 @@ accept it or skip it."
(forward-char)))))))
;;;###autoload
+(defun emmet-wrap-with-markup (wrap-with)
+ "Wrap region with markup."
+ (interactive "sExpression to wrap with: ")
+ (let* ((emmet-move-cursor-between-quotes nil)
+ (to-wrap (buffer-substring-no-properties (region-beginning) (region-end)))
+ (expr (concat wrap-with ">{!EMMET-TO-WRAP-REPLACEMENT!}"))
+ (markup (replace-regexp-in-string
+ "!EMMET-TO-WRAP-REPLACEMENT!" to-wrap
+ (emmet-transform expr)
+ t t)))
+ (when markup
+ (delete-region (region-beginning) (region-end))
+ (insert markup)
+ (indent-region (region-beginning) (region-end))
+ )))
+
+;;;###autoload
(defun emmet-next-edit-point (count)
(interactive "^p")
(unless (or emmet-use-css-transform (emmet-go-to-edit-point count))