Much of the work on the extension is largely around ergonomics as it has some barebones functionality already. Lots of these are not mission critical
[x] Convert the extension to typescript over javascript
[ ] Reconfigure the package.json with pre-run actions to compile the TS and re-target the main file
[ ] Figure out a way to make the extension wait for the server to start before the Launch Multisession action attempts to connect
Niceties
[x] Add a mechanism to control what port the extension starts the server on rather than using a hard-coded value
[ ] Figure out how to make single-session mode work
[ ] Add the appropriate default configuration actions to the package.json rather than relying on those in the mono-repo
[ ] Figure out if it is possible to bundle the cider-dap binary with the extension (this is very low priority)
[ ] Print out some nice error when the binary cannot be found on the path
Adapter
This is where all the real work is! The adapter doesn't currently do anything beyond initialization.
[ ] Initialize the debugger and open the flie
[ ] Should raise an error if the file cannot be parsed appropriately
Error ergonomics
[ ] The unknown command should print more information about what the command was
Cider Lib
The cider binary should expose a library interface to the adapter. We'll need to scope this appropriately rather than making all of cider's internals public.
[ ] Start with creating an initializeable handle
Source-mapping Metadata
We need a format to map Calyx files to Calyx files so that requesting a breakpoint on a given line can be translated into setting a breakpoint on the appropriate group. We should start by sketching out what this looks like, probably line ranges and the corresponding group name.
[ ] Make a proposal and sketch for the new metadata
Extension
Much of the work on the extension is largely around ergonomics as it has some barebones functionality already. Lots of these are not mission critical
Niceties
Adapter
This is where all the real work is! The adapter doesn't currently do anything beyond initialization.
Error ergonomics
Cider Lib
The cider binary should expose a library interface to the adapter. We'll need to scope this appropriately rather than making all of cider's internals public.
Source-mapping Metadata
We need a format to map Calyx files to Calyx files so that requesting a breakpoint on a given line can be translated into setting a breakpoint on the appropriate group. We should start by sketching out what this looks like, probably line ranges and the corresponding group name.