VSCode extension that provides syntax highlighting for the SimplicityHL programming language.
Simplicity is a typed, combinator-based, functional language without loops or recursion, developed to be an alternative to Bitcoin script that is formally specified, and can be statically analyzed with upper bounds on computation resources prior to execution.
SimplicityHL is a high-level language for writing Simplicity smart contracts. SimplicityHL looks and feels like Rust, but is compiled to Simplicity bytecode. Developers write SimplicityHL transactions, which Bitcoin/Liquid nodes verify with the Simplicity script interpreter.
- Syntax highlighting and snippets for
.simfand.witfiles - Compiler diagnostics, completion, hover, signature help, symbols, references, and go to definition
- Opt-in imports and enums support in the language server and direct compiler commands
The extension installs or connects to the SimplicityHL language server, which provides language intelligence:
Open Settings and search for SimplicityHL: Experimental Features. Imports and Enums are independent checkboxes and both are disabled by default.
Import and module syntax requires simplicityhl.experimentalFeatures.imports. Enum syntax requires simplicityhl.experimentalFeatures.enums. The extension sends these choices to the LSP and adds the matching -Z flags to its direct simc commands and tasks.
The enum switch requires simplicityhl-lsp and simc 0.7.0 or newer.
The language server owns Simplex.toml discovery and imported-file analysis. The extension does not duplicate that resolver. Direct simc commands currently add feature flags only; they do not translate Simplex dependencies into --dep arguments. Use the project build tooling or invoke simc with the required dependency mappings for projects with external imports.
For local extension development, simplicityhl.server.path can point to a locally built simplicityhl-lsp binary.
To install the extension manually or hack on the source code see development.md

