JaroslavTulach opened a new pull request #2447:
URL: https://github.com/apache/netbeans/pull/2447


   I'd like to propose an addition over the initial work of @jlahoda that 
enhances the existing VSCode extension with support for debugging. @dbalek 
contributed enhancements to the typescript glue code and upgraded Eclipse LSP 
libraries to version 0.9 together with adding support for debug adapter 
protocol. @entlicher connected the protocol with the NetBeans debugging APIs. I 
organized the code into suite and standardized the CLI options.
   
   ### Architecture
   
   #### CLI Options
   
   The `java/java.lsp.server` module provides the 
`--start-java-language-server` as well as `--start-java-debug-adapter-server` 
options that provide a generally usable server for any LSP/DAP client. These 
options are available in standard NetBeans distribution.
   
   #### Integration Suite
   
   The `java/java.lsp.server/nbcode` suite is an NetBeans application suite 
that selects only some NetBeans modules and provides additional integration 
services - right now there is support for `IOProvider` and `StatusDisplayer` 
that forward the UI over the LSP protocol. Better and additional (think of 
`DialogDisplayer`) support is welcomed in the future.
   
   #### Actual VSCode Extension
   
   Then there is a `java/java.lsp.server/vscode` typescript project (btw. can 
be opened, edited, compiled from NetBeans IDE) which takes the ZIP generated by 
the `nbcode` suite and includes it in a `.vsix` file - e.g. the VSCode 
extension. The extension can then be installed into VSCode.
   
   #### Launcher
   
   The idea is that when a Java support is needed, the VSCode extension 
launches headless NetBeans application behind the scene and establishes LSP and 
DAP connections. Whenever new VSCode UI is launched, it shares the NetBeans 
backend and reuses it. Closing all VSCode UIs closes the NetBeans backend as 
well.
   
   The launcher attempts to support extensibility. `nbcode.ts` scans all 
activated extensions and collects clusters from `nbcode` subdirectory. As such 
it is possible for various VSCode extensions to contribute modules into the 
same backend and enhance its functionality.
   
   ### Working with the code
   
   See 
[java/java.lsp.server/vscode/README.md](https://github.com/apache/netbeans/blob/master/java/java.lsp.server/vscode/README.md)
 for instructions how to develop & build the VSCode extension.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to