aboutsummaryrefslogtreecommitdiffstats
path: root/src/mode-def.el
diff options
context:
space:
mode:
authorflyingleafe <flyingleafe@gmail.com>2014-09-03 14:06:02 +0400
committerflyingleafe <flyingleafe@gmail.com>2014-09-03 14:06:02 +0400
commitc76f9e62501c240ed8bb9af46f59d2ce4b975b89 (patch)
treed86a0a007f1cea0c3571e4fa86f272aa21ed05b3 /src/mode-def.el
parent390f245bacabb169691bf2ce544ee5384d1112d7 (diff)
parentbd79daecfd6e59deb67c771c6de85817fd478b43 (diff)
downloademmet-mode-c76f9e62501c240ed8bb9af46f59d2ce4b975b89.tar.lz
emmet-mode-c76f9e62501c240ed8bb9af46f59d2ce4b975b89.tar.xz
emmet-mode-c76f9e62501c240ed8bb9af46f59d2ce4b975b89.zip
Merge branch 'master' of github.com:smihica/emmet-mode
Diffstat (limited to 'src/mode-def.el')
-rw-r--r--src/mode-def.el29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/mode-def.el b/src/mode-def.el
index 7cac58d..e0a22b9 100644
--- a/src/mode-def.el
+++ b/src/mode-def.el
@@ -127,6 +127,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.")
@@ -392,9 +393,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)
@@ -422,6 +428,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))