-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make the Rascal VSCode plugin even better #486
Comments
These are very nice ideas. Thanks
But these suggestions, however we design them, sound to me of the "how did we ever do without"-kind. |
As already mentioned above, popup menus are used widely in VsCode to start execution, debugging etc. It maybe the case though, that these interactions are VSCode-specific and not LSP-specific. In addition, I think that the use of code lenses to start execution (although funny) has its disadvantages:
|
I'm guessing these menus are Eclipse specific, because the Java support in VScode is fully based on porting the Eclipse support for java. The rest of VScode and the LSP works more with commands under keyboard access and editor features. But that's very true what you say; the lenses don't work for the resource views at all. And that's not useful. Perhaps we can infer popup menu entries for files, from the lenses that are tagged to the entire file and have the best of both worlds. That way we program the feature once, and we get access in the UI in several useful ways. |
There are a few things I want to add. And I agree with Jurgen, some of the patterns you've observed Paul are specific to how the Java VS Code extension has designed the interaction, which indeed has some Eclipse style interactions in there. I find that the extension documentation of VS Code has quite some interesting guidelines for extension authors. An often repeated advice is not to expose the same feature in multiple places. But specifically around execution & code lenses & debugging, there is not a real UX guideline yet. If you look at the debugging user guide it's all about the launch configurations. This is a point where developing the rascal debugger we spent quite some effort on (@yami2200 spent quite a few weeks on just this topic), so let met share those insights.
I think one of the problems is that right now, the way we "launch" rascal programs (import into a REPL and run it) is not really aligned with launch configuration assumptions in VS Code. Especially if they stay open for a long time. We could investigate how other extensions with REPLs have solved this? Aside from that, I agree we need to make debugging more discoverable. But it will involve some effort, especially since we're not a regular process that is launched. Maybe we should model the "attach" style debuggging configurations for remote java processes. But we would have to figure out a way to automatically generate them, without spamming the launch configuration. |
First of all, the VSCode plugin for Rascal already gives a fantastic user experience. Here are some suggestions to make it even better
Running a Rascal module via the Explorer
Right clicking on a file name in the Explorer gives a menu with entries:
can we make these work for Rascal?
When positioned on a Java file the following entries are added:
It would be very convenient to have entries
Debugging
Starting the debugger right now is uncool. The only option that really works is typing
:set debugging true
in the consoleJump over a conditional statement jumps over the whole statement rather than over the condition
(a long standing, very irritating, issue)
It would be very convenient during debugging to display the text AND the ParseTree when showing values when hovering over a variable of type ParseTree.
The text was updated successfully, but these errors were encountered: