commit c1fa68fa092201353d3666040c1e89bd31720227
parent 4ab9da8f434b0d0c17e80e29f7d56e02ae43f8bd
Author: Wilfred Hughes <me@wilfred.me.uk>
Date: Sun, 31 Dec 2017 00:33:24 +0000
Highlight keywords in docstrings
See defface for an example.
Diffstat:
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
@@ -7,6 +7,8 @@ Added disassemble buttons to byte-code functions in symbol properties.
Fixed an issue with the prompt when setting variables to symbol
values.
+Quoted keywords in docstrings are now highlighted.
+
# v0.5
Allow function tracing to be enabled/disabled from Helpful buffers.
diff --git a/helpful.el b/helpful.el
@@ -542,6 +542,19 @@ blank line afterwards."
(-cons* first-line "" (cdr lines)))
docstring)))
+(defun helpful--propertize-keywords (docstring)
+ "Propertize quoted keywords in docstrings."
+ (replace-regexp-in-string
+ ;; Replace all text of the form `foo'.
+ (rx "`"
+ (group ":" symbol-start (+? anything) symbol-end)
+ "'")
+ (lambda (it)
+ (propertize (match-string 1 it)
+ 'face 'font-lock-builtin-face))
+ docstring
+ t t))
+
(defun helpful--propertize-symbols (docstring)
"Convert symbol references in docstrings to buttons."
(replace-regexp-in-string
@@ -640,6 +653,7 @@ unescaping too."
(helpful--split-first-line)
(helpful--propertize-info)
(helpful--propertize-symbols)
+ (helpful--propertize-keywords)
(s-trim)))
(helpful--format-docstring "(apply '+ 1 '(1 2))")