aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--emmet-mode.el23
-rw-r--r--src/mode-def.el23
-rw-r--r--src/test.el21
3 files changed, 57 insertions, 10 deletions
diff --git a/emmet-mode.el b/emmet-mode.el
index f868694..5d9b913 100644
--- a/emmet-mode.el
+++ b/emmet-mode.el
@@ -3924,12 +3924,25 @@ accept it or skip it."
(to-wrap (buffer-substring-no-properties (region-beginning) (region-end)))
(expr (concat wrap-with
">{"
- (replace-regexp-in-string "}" "!EMMET-BRACKET-REPLACEMENT!" to-wrap)
+ (replace-regexp-in-string
+ "\\$"
+ "!EMMET-DOLLAR-REPLACEMENT!"
+ (replace-regexp-in-string
+ "}"
+ "!EMMET-BRACKET-REPLACEMENT!"
+ to-wrap nil t) nil t)
"}"))
- (markup (replace-regexp-in-string "!EMMET-BRACKET-REPLACEMENT!" "}" (emmet-transform expr))))
- (when markup
- (delete-region (region-beginning) (region-end))
- (insert markup))))
+ (markup (replace-regexp-in-string
+ "!EMMET-DOLLAR-REPLACEMENT!"
+ "$"
+ (replace-regexp-in-string
+ "!EMMET-BRACKET-REPLACEMENT!"
+ "}" (emmet-transform expr) nil t) nil t)))
+ (when markup
+ (delete-region (region-beginning) (region-end))
+ (insert markup)
+ (indent-region (region-beginning) (region-end))
+ )))
;;;###autoload
(defun emmet-next-edit-point (count)
diff --git a/src/mode-def.el b/src/mode-def.el
index efe08a9..515b51a 100644
--- a/src/mode-def.el
+++ b/src/mode-def.el
@@ -435,12 +435,25 @@ accept it or skip it."
(to-wrap (buffer-substring-no-properties (region-beginning) (region-end)))
(expr (concat wrap-with
">{"
- (replace-regexp-in-string "}" "!EMMET-BRACKET-REPLACEMENT!" to-wrap)
+ (replace-regexp-in-string
+ "\\$"
+ "!EMMET-DOLLAR-REPLACEMENT!"
+ (replace-regexp-in-string
+ "}"
+ "!EMMET-BRACKET-REPLACEMENT!"
+ to-wrap nil t) nil t)
"}"))
- (markup (replace-regexp-in-string "!EMMET-BRACKET-REPLACEMENT!" "}" (emmet-transform expr))))
- (when markup
- (delete-region (region-beginning) (region-end))
- (insert markup))))
+ (markup (replace-regexp-in-string
+ "!EMMET-DOLLAR-REPLACEMENT!"
+ "$"
+ (replace-regexp-in-string
+ "!EMMET-BRACKET-REPLACEMENT!"
+ "}" (emmet-transform expr) nil t) nil t)))
+ (when markup
+ (delete-region (region-beginning) (region-end))
+ (insert markup)
+ (indent-region (region-beginning) (region-end))
+ )))
;;;###autoload
(defun emmet-next-edit-point (count)
diff --git a/src/test.el b/src/test.el
index 69c5a3c..48bb5ed 100644
--- a/src/test.el
+++ b/src/test.el
@@ -622,5 +622,26 @@
;; Old tests for previous indent behavior last seen:
;; commit: f56174e5905a40583b47f9737abee3af8da3faeb
+(defun emmet-wrap-with-markup-test (lis)
+ (let ((es (car lis))
+ (indent-tabs-mode nil)
+ (tab-width 2)
+ (standard-indent 2))
+ (with-temp-buffer
+ (emmet-mode 1)
+ (sgml-mode)
+ (set-mark (point))
+ (insert "This is gnarly text with $$$s and <span>markup</span> and end brackets}}s")
+ (emmet-wrap-with-markup es)
+ (buffer-string))))
+
+(emmet-run-test-case "Wrap with markup on text with brackets and markup"
+ #'emmet-wrap-with-markup-test
+ '((("div>ul>li") . "<div>\n <ul>\n <li>This is gnarly text with $$$s and <span>markup</span> and end brackets}}s</li>\n </ul>\n</div>")))
+
+(emmet-run-test-case "Wrap with markup multiplier"
+ #'emmet-wrap-with-markup-test
+ '((("div>ul>li*3") . "<div>\n <ul>\n <li>This is gnarly text with $$$s and <span>markup</span> and end brackets}}s</li>\n <li>This is gnarly text with $$$s and <span>markup</span> and end brackets}}s</li>\n <li>This is gnarly text with $$$s and <span>markup</span> and end brackets}}s</li>\n </ul>\n</div>")))
+
;; start
(emmet-test-cases)