aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helpful.el10
-rw-r--r--test/helpful-unit-test.el10
2 files changed, 20 insertions, 0 deletions
diff --git a/helpful.el b/helpful.el
index fb82ecd..64200df 100644
--- a/helpful.el
+++ b/helpful.el
@@ -964,6 +964,16 @@ unescaping too."
(while (not (eobp))
(cond
((looking-at
+ (rx "\""))
+ (looking-at
+ ;; Text of the form "foo"
+ (rx "\""))
+ ;; Don't do anything with literal strings.
+ ;; Step over opening doublequote.
+ (forward-char 1)
+ ;; Move past closing doublequote.
+ (search-forward "\""))
+ ((looking-at
;; Text of the form \=X
(rx "\\="))
;; Remove the escaping, then step over the escaped char.
diff --git a/test/helpful-unit-test.el b/test/helpful-unit-test.el
index 4f2379b..6d1e42d 100644
--- a/test/helpful-unit-test.el
+++ b/test/helpful-unit-test.el
@@ -65,6 +65,16 @@
(should
(not (s-contains-p "\\=" formatted-docstring)))))
+(ert-deftest helpful--docstring-strings ()
+ "Double-quoted strings should be treated literally."
+ (let* ((formatted-docstring
+ (helpful--format-docstring
+ "hello \"\\[foo]\" world")))
+ ;; This test will fail in a local Emacs instance that has modified
+ ;; minibuffer keybindings.
+ (should
+ (string-equal formatted-docstring "hello \"\\[foo]\" world"))))
+
(ert-deftest helpful--docstring-keymap ()
"Handle keymap references in docstrings."
(let* ((formatted-docstring