/vscode-flix

Primary LanguageTypeScriptOtherNOASSERTION

The Flix Programming Language

Flix for Visual Studio Code

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.

Features

  • Syntax Highlighting

  • 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.
  • Highlight

    • Highlights semantically related symbols.
  • Semantic Tokens

    • Additional code highlighting hints provided by the compiler.

Installation

  • 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.

Requirements

  • Requires Java 11 (or later).
    • Ensure that the java command is on your path.

For Developers

Information about running, debugging, and packaging the extension is available in DEV.md.