This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-03-13
Channels
- # announcements (1)
- # asami (6)
- # babashka (7)
- # beginners (94)
- # biff (1)
- # calva (18)
- # clj-kondo (35)
- # cljsrn (1)
- # clojure (7)
- # clojure-europe (1)
- # clojure-nl (1)
- # clojure-uk (1)
- # clojurescript (18)
- # core-logic (1)
- # datalog (2)
- # editors (10)
- # exercism (2)
- # figwheel-main (1)
- # fulcro (2)
- # introduce-yourself (1)
- # lsp (33)
- # malli (7)
- # off-topic (3)
- # pedestal (1)
- # portal (2)
- # re-frame (16)
- # releases (1)
- # shadow-cljs (10)
- # specter (3)
- # tools-deps (8)
When hacking on Calva, is the workflow really to hit F5 to launch the compiled extension, then jack-in? Is there's a faster way to do this? Perhaps I should launch a babashka REPL instead?
I do: 1. F5 2. Copy Jack-in Command Line, 3. Paste that in an integrated terminal 4. Connect Then on recompiles I restart the debug process, causing the extension host to reload. It will still have the clojure process running. So it is just Connect. We should probably mention this process on the wiki...
you can restart by calling “Developer: Restart extension host” in the vs that’s being debuged or you can hit the green reload thing in the vscode that has the calva source
There’s a ticket to make the reconnect to repl automatic: https://github.com/BetterThanTomorrow/calva/issues/1464
Developer: Reload window in the Calva under development also works. But I usually use that green reload thing via the keyboard shortcut it is bound to, F5
.
I’ve tried Evaluate Enclosing Form
from evaluation documentation but have the following error. Is it expected behavior?
is foo
defined at that point? I'm betting not
Clojure 1.10.3
user=> (str foo)
Syntax error compiling at (REPL:1:1).
Unable to resolve symbol: foo in this context
user=>
@U02N27RK69K Thank you for your answer. I tried to use example from this page https://calva.io/eval-tips/
(let [foo :bar]
(when false (str| foo))) ; => ":bar"
so, foo is defined inside let block. Please correct me if I am wrong but I thought that Evaluate Enclosing Form
should evaluate foo
with let
context but omit (when
that sounds wrong to me. how would it decide which things to evaluate and which not to? why would let be different than when?
I think the docs need to be updated there
agree, It is a little bit difficult to understand what Evaluate Enclosing Form
means from the docs
it definitely should just evaluate the (str foo)
https://github.com/BetterThanTomorrow/calva/pull/1596 lsp/repl provider options are moving along. Us running the provider twice is probably the reason that goToDef sometimes fails to use LSP even if the repl can’t find anything