diff options
-rw-r--r-- | emmet-mode.el | 23 | ||||
-rw-r--r-- | src/mode-def.el | 23 | ||||
-rw-r--r-- | src/test.el | 21 |
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) |