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.