aboutsummaryrefslogtreecommitdiffstats
path: root/emmet-mode.el
diff options
context:
space:
mode:
authorDave Mayo <dave_mayo@harvard.edu>2018-05-03 15:22:32 -0400
committerDave Mayo <dave_mayo@harvard.edu>2018-05-03 15:22:32 -0400
commit4e9797b717e009a2fc67dd4a123f8ed058016bd1 (patch)
treed4de105b116f11a89a22db4b630cdfa510e0fa1c /emmet-mode.el
parent7c85cb3135ba6d10ee91cc1b3b310b4e22cbaff4 (diff)
downloademmet-mode-4e9797b717e009a2fc67dd4a123f8ed058016bd1.tar.lz
emmet-mode-4e9797b717e009a2fc67dd4a123f8ed058016bd1.tar.xz
emmet-mode-4e9797b717e009a2fc67dd4a123f8ed058016bd1.zip
Moved changes into src, and created config value for postwrap behavior
Diffstat (limited to 'emmet-mode.el')
-rw-r--r--emmet-mode.el42
1 files changed, 25 insertions, 17 deletions
diff --git a/emmet-mode.el b/emmet-mode.el
index 346c6af..5131e82 100644
--- a/emmet-mode.el
+++ b/emmet-mode.el
@@ -305,7 +305,8 @@ For more information see `emmet-mode'."
(emmet-reposition-cursor expr))))))))
(defvar emmet-mode-keymap
- (let ((map (make-sparse-keymap)))
+ (let
+ ((map (make-sparse-keymap)))
(define-key map (kbd "C-j") 'emmet-expand-line)
(define-key map (kbd "<C-return>") 'emmet-expand-line)
(define-key map (kbd "<C-M-right>") 'emmet-next-edit-point)
@@ -650,28 +651,29 @@ See `emmet-preview-online'."
(point))
(forward-char)))))))
+(defcustom emmet-postwrap-goto-edit-point f
+ "Goto first edit point after wrapping markup?"
+ :type 'boolean
+ :group 'emmet)
+
;;;###autoload
(defun emmet-wrap-with-markup (wrap-with)
"Wrap region with markup."
(interactive "sExpression to wrap with: ")
(let* ((multi (string-match "\\*$" wrap-with))
- (txt (buffer-substring-no-properties
- (region-beginning) (region-end)))
+ (txt (buffer-substring-no-properties (region-beginning) (region-end)))
(to-wrap (if multi
(split-string txt "\n")
(list txt)))
- (initial-elements
- (replace-regexp-in-string
- "\\(.*\\(\\+\\|>\\)\\)?[^>*]+\\*?[[:digit:]]*$"
- "\\1" wrap-with t))
- (terminal-element
- (replace-regexp-in-string
- "\\(.*>\\)?\\([^>*]+\\)\\(\\*[[:digit:]]+$\\)?\\*?$"
- "\\2" wrap-with t))
- (multiplier-expr
- (replace-regexp-in-string
- "\\(.*>\\)?\\([^>*]+\\)\\(\\*[[:digit:]]+$\\)?\\*?$"
- "\\3" wrap-with t))
+ (initial-elements (replace-regexp-in-string
+ "\\(.*\\(\\+\\|>\\)\\)?[^>*]+\\*?[[:digit:]]*$"
+ "\\1" wrap-with t))
+ (terminal-element (replace-regexp-in-string
+ "\\(.*>\\)?\\([^>*]+\\)\\(\\*[[:digit:]]+$\\)?\\*?$"
+ "\\2" wrap-with t))
+ (multiplier-expr (replace-regexp-in-string
+ "\\(.*>\\)?\\([^>*]+\\)\\(\\*[[:digit:]]+$\\)?\\*?$"
+ "\\3" wrap-with t))
(expr (concat
initial-elements
(mapconcat (lambda (el)
@@ -694,7 +696,13 @@ See `emmet-preview-online'."
(when markup
(delete-region (region-beginning) (region-end))
(insert markup)
- (indent-region (region-beginning) (region-end)))))
+ (indent-region (region-beginning) (region-end))
+ (if emmet-postwrap-goto-edit-point
+ (let ((end (region-end)))
+ (goto-char (region-beginning))
+ (unless (ignore-errors (progn (emmet-next-edit-point 1) t))
+ (goto-char end)))
+ ))))
;;;###autoload
(defun emmet-next-edit-point (count)
@@ -4020,7 +4028,7 @@ tbl))
(emmet-join-string
(mapcar
#'(lambda (expr)
- (let*
+ (let*
((hash-map (if emmet-use-sass-syntax emmet-sass-snippets emmet-css-snippets))
(basement
(emmet-aif