diff options
author | Dave Mayo <dave_mayo@harvard.edu> | 2018-05-03 15:22:32 -0400 |
---|---|---|
committer | Dave Mayo <dave_mayo@harvard.edu> | 2018-05-03 15:22:32 -0400 |
commit | 4e9797b717e009a2fc67dd4a123f8ed058016bd1 (patch) | |
tree | d4de105b116f11a89a22db4b630cdfa510e0fa1c /emmet-mode.el | |
parent | 7c85cb3135ba6d10ee91cc1b3b310b4e22cbaff4 (diff) | |
download | emmet-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.el | 42 |
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 |