This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-03-22
Channels
- # announcements (16)
- # babashka (7)
- # babashka-sci-dev (14)
- # beginners (34)
- # calva (80)
- # clj-kondo (23)
- # cljdoc (17)
- # cljs-dev (1)
- # cljsrn (10)
- # clojure (51)
- # clojure-berlin (3)
- # clojure-europe (14)
- # clojure-italy (10)
- # clojure-nl (2)
- # clojure-norway (211)
- # clojure-uk (5)
- # clojurescript (4)
- # cursive (22)
- # datalevin (12)
- # datomic (2)
- # defnpodcast (1)
- # duct (5)
- # emacs (4)
- # events (2)
- # fulcro (3)
- # graalvm (1)
- # interop (3)
- # introduce-yourself (4)
- # java (1)
- # jobs (7)
- # kaocha (38)
- # leiningen (3)
- # lsp (11)
- # malli (4)
- # membrane (5)
- # music (1)
- # off-topic (28)
- # pathom (13)
- # pedestal (3)
- # polylith (4)
- # portal (10)
- # practicalli (1)
- # re-frame (33)
- # reitit (2)
- # remote-jobs (1)
- # sci (6)
- # shadow-cljs (49)
- # sql (4)
- # xtdb (3)
It occurred to me that I probably can already set custom metadata programmatically. In my emacs config, I do:
(after! cider-mode
(defun cider-tap (&rest r)
(cons (concat "(let [__value "
(caar r)
"] (tap> __value) __value)")
(cdar r)))
(advice-add 'cider-nrepl-request:eval
:filter-args #'cider-tap))
and when I (tap> __value)
, I could just calculate some function of that value to get the metadata I desire, and eval that instead(after! cider-mode
(defun cider-tap (&rest r)
(cons (concat "(let [__value "
(caar r)
"] (tap> (with-meta __value {:portal.viewer/default :portal.viewer/pprint}))
__value)")
(cdar r)))
(advice-add 'cider-nrepl-request:eval
:filter-args #'cider-tap))
1
it seems that the with-meta
call also makes nrepl die at startup, so it's not really a possibility
This works though, that was due to nil
:
(after! cider-mode
(defun cider-tap (&rest r)
(cons (concat "(let [__value "
(caar r)
"] (tap> (if (some? __value)
(with-meta __value {:portal.viewer/default :portal.viewer/pprint})
__value))
__value)")
(cdar r)))
(advice-add 'cider-nrepl-request:eval
:filter-args #'cider-tap))
This is a better solution:
(after! cider-mode
(defun cider-tap (&rest r)
(cons (concat "(let [__value "
(caar r)
"] (tap> (if (instance? clojure.lang.IObj __value)
(with-meta __value {:portal.viewer/default :portal.viewer/pprint})
__value))
__value)")
(cdar r)))
(advice-add 'cider-nrepl-request:eval
:filter-args #'cider-tap))
👍 1