Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cvolo for Visual Studio Code

Early pre-release. This extension is under active development and is published on the Marketplace pre-release channel. Editor features, settings, and the bundled Language Server may change between releases. Nothing here implies a stable Cvolo compiler release.

Cvolo.VSCode is the thin Visual Studio Code product/runtime shell for the standalone Cvolo Language Server. The extension registers .cvl files, provides TextMate lexical highlighting (grammar-based and independent of the Language Server) plus editor mechanics, starts one Language Server client lifecycle at a time, and forwards language intelligence through LSP.

The extension intentionally does not parse or interpret Cvolo semantics. Diagnostics, completion, hover, navigation, symbols, references, rename, signature help, code actions, code fixes, project discovery, and compiler interaction belong to Cvolo.LanguageServer / compiler tooling.

Compatibility and execution model

The extension declares VS Code ^1.82.0 and runs as a workspace extension (extensionKind: ["workspace"]). In remote windows, server discovery therefore uses the platform, architecture, filesystem, PATH, and machine-scoped settings of the workspace extension host.

The VSCode-0 compatibility lane is Node 18.15.x, matching the runtime family implied by the VS Code 1.82 baseline. CI also runs a newer Node lane for forward compatibility.

Virtual workspaces are explicitly unsupported because the Language Server requires filesystem-backed Cvolo source files. Loose workspaces are supported and a .cvlproj is optional. VSCode-0 does not claim unrestricted untrusted-workspace safety; that requires a later review of actual server/project execution behavior.

Language Server discovery

The server command is resolved in this order:

  1. cvolo.server.path when explicitly configured.
  2. A bundled executable at server/<rid>/cvolo-language-server[.exe], if physically present.
  3. cvolo-language-server from the workspace extension host's PATH.

cvolo.server.path is a development/advanced-user override. A non-empty value must be an absolute path, must exist, and must resolve to a file. An invalid explicit override is reported as a startup failure; it does not silently fall back to another server source.

VSCode-0 only reserves the bundled layout and RID names (win-x64, linux-x64, linux-arm64, osx-x64, osx-arm64). It does not guarantee that bundled server payloads are present yet; artifact production and VSIX inclusion belong to VSCode-1.

LanguageClient lifecycle

The canonical LanguageClient id is cvolo. One serialized lifecycle gate owns initial start, manual/configuration restart, and final stop, so extension-owned lifecycle mutations cannot overlap. Deactivation raises a fence immediately; queued restart work cannot start a replacement server after shutdown begins.

The LanguageClient default connection-close restart behavior is disabled with connectionOptions.maxRestartCount = 0. VSCode-0 intentionally leaves crash recovery to manual/configuration restart rather than adding a second automatic recovery loop.

Use Cvolo: Restart Language Server (cvolo.restartLanguageServer) to perform a serialized stop/start replacement.

Loose workspaces and libraries

Filesystem-backed .cvl files do not require a .cvlproj. A loose directory shares its files through one language-server semantic session and does not create or modify a project file on disk.

Set cvolo.libraryPaths to .cvlib files or directories whose top-level .cvlib files should provide editor semantics. Relative entries resolve against the loose workspace root. Manifest-backed projects ignore this setting and use their normal PackageReference, feed, lock-file, and package-cache graph. Changing the setting restarts the Language Server so snapshots are rebuilt.

Tracing and diagnostics

Protocol tracing uses the canonical vscode-languageclient setting:

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages