Documentation

The reference material is maintained with the compiler, in the repository.

All documents below live in docs/ and describe version 0.0.93-A, language surface 4.

Language and implementation reference

Reference documents maintained in the V# repository
DocumentContents
FEATURE-MATRIX.md Every C# 13 construct: status, semantics, JVM lowering, tests, and the reason for each exclusion
GRAMMAR.md The grammar, precedence, associativity and error-recovery rules
BYTECODE.md Type mappings, descriptors, and the emitted shape of every construct
CLI.md Options, exit codes, output modes, JDK visibility, platforms
EDITORS.md The language server and the extension
ASYNC.md How async/await maps onto virtual threads and Future

Where to start

If you are new to V#

If you know C#

If you know the JVM

V# emits standard class files with java.lang.classfile; the mapping from V# constructs to descriptors and emitted shapes is documented in BYTECODE.md. JDK types are resolved against the JDK the compiler runs on, and the default module image is nameable without configuration — see direct JDK integration.

Diagnostics

Diagnostics are C#-exact where a C# diagnostic exists. V#'s own rules add their own codes — for example VS20007 and VS20008 for brace style, VS20006 for the PascalCase spelling of JVM members, and VS20012 for qualified type names. The CLI can print one line per diagnostic for CI with --diagnostics compact; exit codes are listed in CLI.md.

Editors

vsharp-lsp provides diagnostics, completion, signature help, hover, go-to-definition and symbols. The VS Code / VSCodium extension is packaged as a .vsix with the server bundled, and its TextMate grammar is generated from the language definition. See EDITORS.md.

Documentation is versioned with the compiler. If something here and the repository disagree, the repository is authoritative — please open an issue.