I've been extending John's debugger prototype to support DAP, the debug
protocol supported by VS Code and other IDEs. There's an animated gif of
what the VS Code interaction looks like, where only the current schema
element and data position are relayed, at [1].

Now that we've made these first steps, we wanted the community's advice and
opinion about where the related code should live. Here is our initial
proposal:

* The VS Code extension would live in a separate repository,
`daffodil-vscode`. This is a common pattern with other extensions, and
would allow the extension to be released independently of daffodil itself.
However, I'm not sure what "organization" this would live under; this
situation is similar to auxiliary Daffodil repos like
https://github.com/DFDLSchemas.

* The Daffodil `Debugger` to DAP code *could* exist as a sub-module of the
main Daffodil project, say, `daffodil-dap`. We expect a lot of churn for
this code as we translate more and more of the Daffodil parsing state into
the DAP domain. There are a few new dependencies, like the java-debug
project that handles the DAP protocol, and helper code like cats and fs2
(for streaming).

That's the basics. We'd love to know if this fits or if you have some
better ideas.

.. Adam

[1] https://github.com/jw3/example-daffodil-debug/discussions/10

Reply via email to