This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-01-19
Channels
- # adventofcode (7)
- # aws (6)
- # babashka (7)
- # beginners (200)
- # calva (49)
- # chlorine-clover (3)
- # cider (24)
- # clj-kondo (115)
- # cljs-dev (5)
- # cljsrn (16)
- # clojure (44)
- # clojure-australia (9)
- # clojure-czech (1)
- # clojure-dev (1)
- # clojure-europe (63)
- # clojure-france (6)
- # clojure-losangeles (1)
- # clojure-nl (2)
- # clojure-spec (27)
- # clojure-uk (77)
- # clojurescript (45)
- # clojurewerkz (3)
- # conjure (5)
- # cryogen (1)
- # cursive (2)
- # datahike (6)
- # datascript (3)
- # datomic (18)
- # fulcro (5)
- # graalvm (55)
- # jobs (3)
- # luminus (4)
- # malli (1)
- # pathom (1)
- # reagent (16)
- # shadow-cljs (67)
- # spacemacs (18)
- # sql (57)
- # testing (6)
- # tools-deps (9)
How do I get the updated document after running a command in vscode?
const activeTextEditor = vscode.window.activeTextEditor;
const document = activeTextEditor.document;
console.log("before: ", document.lineAt(line).text.length);
await executeCommand("calva-fmt.formatCurrentForm");
console.log("after: ", document.lineAt(line).text.length);
Before and after are the same all the time. I don't get the new stuff.
PS: not sure where's a good place to ask this. https://vscode-dev-community.slack.com is silent.This is a fine place to ask (even if I get a lot of help in that slack team, in the #vscode-extension-dev
channel). I’m not sure what’s going on in your code there, but maybe you get the new document with the promise resolution? So what happens if instead of await
you slap a .then(doc => …
on the executeCommand
call?
I don’t know if you know, but anyway, an extension can expose an API to other extensions. So if there are functions/methods/info you want access to we can consider exposing them. It will of course need to be with great care we expose such an API, but the option is there. You can experiment with it at least by building your own Calva VSIX (I’m not sure how you would do it from the dev extension host when there are two extensions involved, or even if it’s possible).
.then
same story; something immutable involved with that document
be nice having paredit functions exposed by extension, yes; I'll do dev thing see what gives
thank you!
Going with https://github.com/clyfe/calva/commit/e4a6b7ce828f0860293318d818e50bc6423823fd.
https://github.com/clyfe/vscode-calva-setup/blob/master/powertools/killSpaceBackward.js killSpaceBackward aka "the new backspace", takes your sexps to the finish-line directly, no more delete space by space (but we need to expose fmt fns in the extension api first - pr incoming; also: some refactoring required there)
Just to manage expectations. We will have to think very carefully before exposing any API from Calva. PR welcome, but it will take some serious pondering on our side.
Hi all, is there a way to interrupt an evaluation?
I tried it, but it doesn't seem to stop the deluge of stuff being written onto the output buffer 😆
Hmm, I think that command may not solve all situations like that. Feel free to create an issue for your situation with repro steps
Thanks! I'll see first if I can find a workaround other than quitting vscode 😆
If it's not completely frozen you can try killing the repl at the terminal. If that doesn't work you can try the "Developer: Reload Window" command to make restarting it easier at least
Got it, thanks!
So, the output window queues up prints and because reasons prints them quite slowly. So it can keep printing for quite long after you have interrupted a command… Maybe there is something we could do about it….
I imagine the printing is throttled so that it doesn't interfere with the responsiveness of the rest of the app. If this were implemented with core async (it probably isn't 😆 ) simply closing the channel should cancel the rest of the queue.
This is TypeScript and promises. 😃 Would be nice to just close a channel. Maybe we can achieve that somehow…
The printing isn't intentionally throttled, it's just that the applyEdit
function of the vs code api is async and a bit slow, and if we don't ensure one prints before the previous, we get issues.
It seems you've put in quite a bit of hammock time on this! Would I be correct in my understanding that repro steps are no longer necessary?
If you wouldn't mind creating an issue about the printing after interruption, that would be great so we can track it for later, and remember who brought it up, in case we can't repro or would like some info/help.
No problem! I'm in no hurry. I'll make the issue, and try to summarize what you've said here.
Here it is! https://github.com/BetterThanTomorrow/calva/issues/978 Please correct me if I made a mistake anywhere
not sure what I broke but I can't send anything to the calva repl; tried all the tricks, downgrade, delete caches, restart...
> console.ts:137 [Extension Host] Unhandled error: e.trim is not a function That pops when I type enter in the repl after a form
> console.ts:137 [Extension Host] (node:11997) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. Can't tell if it's calva where this originates
Buffer stuff is from Calva, by elimination. Disable calva -> no Buffer err Enable calva -> Buffer err
It has been there since forever anyway. 😃 I probably have some other extension that causes it, because disabling Calva does not get rid of it for me. In any case it is probably not what is causing you problems.
Calva works when I disable ego-digital.vscode-powertools extension. These 2 don't get along - they were this morning.
same on 2.0.151; very strange; I'll try to replace powertools with something; most likely make my own extension calva-extras instead these scripts.
Calva version 2.0.152 is released with the following changes 🎉 • Fix: https://github.com/BetterThanTomorrow/calva/issues/959 • https://github.com/BetterThanTomorrow/calva/issues/931