...
The tasks required (to be done in the "cnd" branch) will consist on be (no special order here):
- (DBG) Recover some "cnd.debugger" classes from contrib for the LSP aware debugger https://lists.apache.org/thread/mlcyk5pyjbydxvzc2kzvokfb0htrt75o
- to avoid dependency on "cpplite.debugger/external/cpplite-mi-1.0-SNAPSHOT.jar"
- double-check movement of cpplite.debugger with Martin Entlicher
- (MRG) Merge "cnd" and "cpplite" in one clusterhttps://lists.apache.org/thread/mlcyk5pyjbydxvzc2kzvokfb0htrt75ozlf78ryof5d3cg4g2gh3dsx0fzrjhrgj, merging what is needed from the cpplite cluster into the cnd cluster and dropping the rest.
- The LSP bindings in cpplite (cpplite.editor/.../spi) to be placed in a reasonable module in cnd (cnd.lsp).
- Make sure cpplite's LSP settings are under C/C++ Options Dialog
- (PRJ) Discuss what the future of "cpplite.project" will be.
- "We might just remove the ability to create new cpplite projects"
- (CDB) Add the capability in "cnd.makeproject" based projects to generate a "compile_commands.json" with proper files/compilers/flags/include directories, etc.
- (CC) Add code-completion based on LSP to CND projects.
- (SH) Add semantic highliting based on LSP to CND projects.
The proposed plan of action is:
3.1.- Generate "compile_commands.json" automatically in Make based projects in a new module "cnd.lsp".
3.2.- Gradually integrate LSP support in cnd.lsp (and remove it from cpplite).
- Added some enhancements to master/ide/lsp.client, and update cnd from master:
3.3.- Add debugging support in cnd.debugger (dropping cpplite.debugger).
3.4.- Get rid of "cnd/cnd.debugger/external/cpplite-mi-1.0-SNAPSHOT.jar" retrieving donated stuff from contrib/cnd.debugger as required
Steps 3.3 and 3.4 above merged in https://github.com/apache/netbeans/commit/9bdac2b8ed38528a3b196fbdd0424d34717f4e3a , we've recovered cnd.debugger.common2 and cnd.debugger.gdb from contrib).
3.5.- Migration path from "cpplite" projects to "Make based projects with existing sources.
NOTE: Cpplite "lsp" support does not currently register the LSP servers in the Options Dialog as "ide/lsp.client" does. We could explore the possibility to use "clangd", "ccls" (as cpplite does) or even Apple's sourcekit-lsp: https://github.com/apple/sourcekit-lsp and register them in the Options Dialog of "ide/lsp.client".
...