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.I probably missed the async
; seems it works now.
Awesome
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!
Probably the promise resolves earlier than what you need.
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)
Going with https://github.com/clyfe/calva/commit/e4a6b7ce828f0860293318d818e50bc6423823fd.
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.
Chat https://github.com/BetterThanTomorrow/calva/issues/964.
Hi all, is there a way to interrupt an evaluation?
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.
But anyway, I think we can clear the queue pretty easily, it's just an array
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. :simple_smile:
Can't say I'll get to it soon though
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
That's a Calva command for it you can find in the command palette
Search "interrupt"
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
Can't guarantee we can fix, but worth a look
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!
not sure what I broke but I can't send anything to the calva repl; tried all the tricks, downgrade, delete caches, restart...
Is there a log of sorts somewhere to look at?
What do you mean by “send to the calva repl”?
See if the vscode dev console has any clues. (I think you access it from the Help menu).
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….
Calva version 2.0.152 is released with the following changes 🎉 :calva: • Fix: https://github.com/BetterThanTomorrow/calva/issues/959 • https://github.com/BetterThanTomorrow/calva/issues/931
> 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
> [Extension Host]% [] and that when I type a character in the repl
> 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
That Buffer warning is a vscode thing, I think.
The other ones I do not think stem from Calva. I don’t get them, at least.
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.
Works now, dunno why, it's the ~27th time I try...
Super weird. And worrying….
Calva works when I disable ego-digital.vscode-powertools extension. These 2 don't get along - they were this morning.
We did release a new Calva today, see if that changed anything?
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 XO? 😃 https://en.wikipedia.org/wiki/Calvados#Grades_of_quality
Often called Calvados Extra, so just dropping the trailing s would fit the metafor.