Super cool! That's is really handy for all of us manic window closers. I updated my emacs-mode to support it.
I'm still having some namespace issues when sending remote controll commands. I'm sure its something on my end, but maybe you can help me out.
Commands like {:vlaaad.reveal/command ((requiring-resolve (quote vlaaad.reveal.ext/clear-output))), :ns #namespace[user]}
work flawlessly. However, when I try to open a view using {:vlaaad.reveal/command ((requiring-resolve (quote vlaaad.reveal.ext/open-view)) {:fx/type vlaaad.reveal.ext/action-view, :action :vlaaad.reveal.action/view:bar-chart, :value [1 2 3]}), :ns #namespace[user]}
I get a java.lang.ClassNotFoundException
. Successfully evaluating any other commands solves the issue for all subsequent view commands, presumeably by then having required the namespaces.
My first instinct was to wrap action-view
in a requiring-resolve
like so: {:vlaaad.reveal/command ((requiring-resolve (quote vlaaad.reveal.ext/open-view)) {:fx/type (requiring-resolve (quote vlaaad.reveal.ext/action-view)), :action :vlaaad.reveal.action/view:bar-chart, :value [1 2 3]}), :ns #namespace[user]}
, but this results in a java.lang.IllegalArgumentException
: "No implementation of method: :create of protocol: #'cljfx.lifecycle/Lifecycle found for class: clojure.lang.Var"
Add deref to second requiring-resolve
That did the trick, thanks!