From 3313f398231cfed125f8b7156ff15477ae283358 Mon Sep 17 00:00:00 2001 From: Tianxiang Xiong Date: Sat, 17 Jun 2017 17:22:14 -0700 Subject: [PATCH] Use new format for forms-str and arglists-str Depends on clojure-emacs/cider-nrepl#412. Using the new forms-str and arglists-str formats simplifies code for `cider-docview-render-info`. --- cider-apropos.el | 2 +- cider-doc.el | 26 ++++++++------------------ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/cider-apropos.el b/cider-apropos.el index bd8f8d9c7..86052c422 100644 --- a/cider-apropos.el +++ b/cider-apropos.el @@ -57,7 +57,7 @@ the symbol found by the apropos search as argument." (define-button-type 'apropos-special-form 'apropos-label "Special form" 'apropos-short-label "s" - 'face 'apropos-misc-button + 'face 'font-lock-keyword-face 'help-echo "mouse-2, RET: Display more help on this special form" 'follow-link t 'action (lambda (button) diff --git a/cider-doc.el b/cider-doc.el index 29abd39a7..2b34444cf 100644 --- a/cider-doc.el +++ b/cider-doc.el @@ -396,8 +396,10 @@ Tables are marked to be ignored by line wrap." (depr (nrepl-dict-get info "deprecated")) (macro (nrepl-dict-get info "macro")) (special (nrepl-dict-get info "special-form")) - (forms (nrepl-dict-get info "forms-str")) - (args (nrepl-dict-get info "arglists-str")) + (forms (when-let ((str (nrepl-dict-get info "forms-str"))) + (split-string str "\n"))) + (args (when-let ((str (nrepl-dict-get info "arglists-str"))) + (split-string str "\n"))) (doc (or (nrepl-dict-get info "doc") "Not documented.")) (url (nrepl-dict-get info "url")) @@ -426,22 +428,10 @@ Tables are marked to be ignored by line wrap." (emit (concat " "(cider-font-lock-as 'java-mode iface))))) (when (or super ifaces) (insert "\n")) - (when (or forms args) - (insert " ") - (save-excursion - (emit (cider-font-lock-as-clojure - ;; All `defn's use ([...] [...]), but some special forms use - ;; (...). We only remove the parentheses on the former. - (replace-regexp-in-string "\\`(\\(\\[.*\\]\\))\\'" "\\1" - (or forms args))))) - ;; It normally doesn't happen, but it's technically conceivable for - ;; the args string to contain unbalanced sexps, so `ignore-errors'. - (ignore-errors - (forward-sexp 1) - (while (not (looking-at "$")) - (insert "\n") - (forward-sexp 1))) - (forward-line 1)) + (when-let ((forms (or forms args))) + (dolist (form forms) + (insert " ") + (emit (cider-font-lock-as-clojure form)))) (when (or special macro) (emit (if special "Special Form" "Macro") 'font-lock-variable-name-face)) (when added