Language Server Protocol (LSP 3.17) implementation for the Cvolo programming language.
build/fetch-tooling.ps1 Windows tooling bootstrapper (temporary infrastructure, not a package manager)
build/fetch-tooling.sh POSIX tooling bootstrapper
tooling.version Pinned Cvolo.Compiler.Tooling version (single line, no floating versions)
src/Cvolo.LanguageServer Server source (Program.cs, Protocol/, Logging/)
tests/Cvolo.LanguageServer.Tests Protocol and end-to-end tests
artifacts/tooling/<version>/ Downloaded tooling bundle (gitignored, immutable by version)
artifacts/tooling-dir.props Generated after bootstrap (gitignored, consumed by MSBuild)
- .NET SDK 10.0 or newer (see
global.json-free install:dotnet --list-sdks)
The server has exactly one compile-time dependency on the Cvolo compiler ecosystem:
Cvolo.Compiler.Tooling.dll. Its version is pinned in tooling.version and the
compatible bundle is fetched at build time. These scripts are temporary
bootstrap infrastructure -- they download a single pinned release, verify its
SHA256 checksums and manifest, and place it under artifacts/tooling/<version>/.
They are not a package manager and do not resolve versions.
Windows:
./build/fetch-tooling.ps1POSIX:
./build/fetch-tooling.shThe script reuses an existing verified cache in artifacts/tooling/<version>/
when present and skips the network entirely.
# after fetch-tooling has run once:
dotnet build src/Cvolo.LanguageServer.slnx
dotnet test tests/Cvolo.LanguageServer.Tests/Cvolo.LanguageServer.Tests.csprojCI builds use locked NuGet restore (ContinuousIntegrationBuild=true).
cvolo-language-server [options]
Options:
--stdio Communicate over stdio using JSON-RPC (default and only transport)
--log <path> Write logs to <path> (logging is off by default)
--verbose Enable verbose logging, including raw JSON-RPC payloads
--help Show help and exit
--version Print version information and exit
stdout is reserved for the JSON-RPC protocol only. Diagnostics go to stderr and/or the optional log file.
- Server version comes from the
VersionMSBuild property (0.1.0-alpha.1). - Tooling version comes from
tooling.version. --versionprints all three version components and works without a tooling bundle present.