Skip to content

diku-dk/futhark-vscode

Repository files navigation

Futhark for Visual Studio Code

The language extension is still in the early stage of development

This extension adds language support for Futhark, powered by the Futhark Language Server.

Features

  • Warnings and errors diagnostics from futhark compiler
  • Information on hover
  • Syntax highlighting
  • Go to definition
  • Basic language features, e.g. comment toggling, etc
  • More to come...

Common questions

Here are some questions that users may encounter while using the extension, if your issue is not addressed here, please open an issue.

Can't find futhark executable ...

Futhark language extension requires futhark executable to be installed in $PATH, follow the instructions on how to install the Futhark compiler.

Futhark version is too low ...

The Futhark Language Server is available as part of futhark from version 0.21.9 and later, please update futhark following Installation guide. You can run futhark --version to check your futhark's version.

Development

Here are some resources to help you get started with developing the futhark extension:

Debugging

You will need nodejs and vscode installed.

  1. git clone https://github.com/diku-dk/futhark-vscode.git
  2. cd futhark-vscode && npm install
  3. Open the futhark-vscode repository with VS Code
  4. Find the Run and Debug from the Activity Bar on the left, select the Launch Extension launch configuration, and press the Start Debugging button to launch an additional Extension Development Host instance of VS Code that executes the extension code. (More information on how to debug with vscode can be found here.)
  5. Create a test.fut file in the root folder write some code!

Structure

The futhark-vscode repository consists of many files and folders, here are some of the most interesting ones:

  • .vscode/: development settings for vscode, such as debugging configuration and recommended extensions
  • assets/: contains the asset files for the marketplace, such as the logo
  • src/: the source code for the extension
  • .vscodeignore: used to exclude files from being included in your extension's package (more here)
  • language-configuration.json: the language configuration file for the extension
  • futhark.tmLanguage.json: the TextMate grammars configuration for the futhark language
  • package.json: the extension manifest

Release

Github Actions publish-vscode-extension and action-gh-release are enabled for easy deployment of the extension. To publish a new release, simply follow the steps below:

  1. Change the version in the package.json to the new one (e.g. x.y.z)
  2. Tag the new version by running git tag vx.y.z (Note: tag must start with v)
  3. Push your changes and tags to the remote repository
     git add package.json
     git commit -m "x.y.z"
     git push && git push --tags

TBA: More information about how to publish, e.g. creation of Personal Access Token, etc. (source)