The official Visual Studio Code extension for the Flix Programming Language (flix.dev).
Flix is a next-generation reliable, safe, concise, and functional-first programming language.
We aim to have world-class Visual Studio Code support and our extension is based on the real Flix compiler infrastructure.
-
Syntax Highlighting
- Code highlighting for *.flix files. This work best with the official vscode theme.
-
Diagnostics
- Compiler error messages.
-
Auto-complete
- Auto-complete as you type.
-
Snippets
- Auto-complete common code constructs.
-
Type and Effect Hovers
- Hover over any expression to see its type and effect.
- Hover over any local variable or formal parameter to see its type.
- Hover over any function to see its type signature and documentation.
- Hover over any first-class Datalog constraint expression to see its stratification.
-
Jump to Definition
- Jump to the definition of any function.
- Jump to the definition of any local variable or formal parameter.
- Jump to the definition of any enum case.
-
Find References
- Find all references to a function.
- Find all references to a local variable or formal parameter.
- Find all references to an enum case.
-
Symbols
- List all document symbols.
- List all workspace symbols.
-
Rename
- Rename local variables or formal parameters.
- Rename functions.
-
Code Lenses
- Run
main
from within the editor. - Run benchmarks and unit tests from within the editor.
- Run
-
Highlight
- Highlights semantically related symbols.
-
Semantic Tokens
- Additional code highlighting hints provided by the compiler.
- Install the Flix Visual Studio Code extension.
- The extension will automatically download the Flix compiler.
Alternative (for advanced users):
- Upon startup, the extension with look for a
flix.jar
compiler in the project root and use that if available.- This can be used to run a nightly (or custom-built) version of the compiler.
- Requires Java 11 (or later).
- Ensure that the
java
command is on your path.
- Ensure that the
Information about running, debugging, and packaging the extension is available in DEV.md.