summaryrefslogtreecommitdiff
path: root/cider-macroexpansion.el
diff options
context:
space:
mode:
Diffstat (limited to 'cider-macroexpansion.el')
-rw-r--r--cider-macroexpansion.el15
1 files changed, 15 insertions, 0 deletions
diff --git a/cider-macroexpansion.el b/cider-macroexpansion.el
index 62a0dc8f..c45fe30c 100644
--- a/cider-macroexpansion.el
+++ b/cider-macroexpansion.el
@@ -57,6 +57,21 @@ Possible values are:
'cider-macroexpansion-display-namespaces
"0.8.0")
+(defun cider-sync-request:macroexpand (expander expr &optional display-namespaces)
+ "Macroexpand, using EXPANDER, the given EXPR.
+The default for DISPLAY-NAMESPACES is taken from
+`cider-macroexpansion-display-namespaces'."
+ (cider-ensure-op-supported "macroexpand")
+ (-> (list "op" "macroexpand"
+ "expander" expander
+ "code" expr
+ "ns" (cider-current-ns)
+ "display-namespaces"
+ (or display-namespaces
+ (symbol-name cider-macroexpansion-display-namespaces)))
+ (nrepl-send-sync-request)
+ (nrepl-dict-get "expansion")))
+
(defun cider-macroexpand-undo (&optional arg)
"Undo the last macroexpansion, using `undo-only'.
ARG is passed along to `undo-only'."