aboutsummaryrefslogtreecommitdiffstats
path: root/emmet-mode.el
diff options
context:
space:
mode:
authorWilliam David Mayo ("Dave") <pobocks@gmail.com>2014-08-28 09:28:08 -0400
committerWilliam David Mayo ("Dave") <pobocks@gmail.com>2014-08-28 09:28:08 -0400
commitbd79daecfd6e59deb67c771c6de85817fd478b43 (patch)
treed86a0a007f1cea0c3571e4fa86f272aa21ed05b3 /emmet-mode.el
parent288fbf15b73b391e339e45573739688c3be8b7ae (diff)
parente0e0a29bcf13f29c004de6c54ea2879738cc2ecb (diff)
downloademmet-mode-bd79daecfd6e59deb67c771c6de85817fd478b43.tar.lz
emmet-mode-bd79daecfd6e59deb67c771c6de85817fd478b43.tar.xz
emmet-mode-bd79daecfd6e59deb67c771c6de85817fd478b43.zip
Merge pull request #46 from pobocks/wrap_with_markup
Wrap with markup
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))