Very early alpha. Be warned. Far from conformant with LSP spec.
The project is written using C++20 modules. It should compile on recent versions of both MSVC and Clang (tested on LLVM 19+ with libc++), without needing any special configuration.
This package provides the following configuration variables:
[bool] config.build2_lsp_server.enable_import_std
enable_import_std: Toggles use of import std. Currently enabled by default for MSVC.
Package is dependent on and being developed in tandem with the lsp-boot library, which provides some infrastructure around the LSP and its message types. This may yet be discarded if a satisfactory existing library is found. For the moment the approach is therefore to largely work directly with boost.json values when manipulating message structures; long term, if the library is maintained, the intention would be to codegen static types from the LSP specification machine-readable form.
Naive tokenization implementation for buildfile and manifest.
Regarding buildfile, decision regarding parsing approach so far deferred. See discussion here.
Current lack of LSP conformance aside, the server should in theory be usable in any LSP-enabled context.