Support for the TidalCycles in vscode. You can learn more about TidalCycles at TidalCycles.
Interested in contributing? Please read the contributing doc for dev environment info and guidelines.
This VSCode extension for TidalCycles is inspired by the commands from the popular Atom package:
Shift+Enter
to evaluate a single lineCtrl+Enter
to evaluate multiple linesCtrl+Alt+H
to hush
In order to get syntax highlighting in .tidal
files you must do
two things:
- Install the Haskell Syntax Highlighting extension
- Associate
.tidal
files to the Haskell language by adding the following settings insettings.json
:
"files.associations": {
"*.tidal": "haskell"
}
You will need to have TidalCycles (a Haskell package) installed before using this extension. If you want to produce sound, you'll also need to have SuperDirt running. You can find instructions to install TidalCycles and SuperDirt at TidalCycles.
Take a look in the Contributions tab on the extension page to see what config setting options are available. Here is a more verbose explanation of a few of them:
Probably the most important setting. This is the path to ghci.exe
on your machine.
If it's on your OS PATH
, then just setting this value to ghci
will probably do fine.
Examples:
"tidalcycles.ghciPath" : "ghci"
"tidalcycles.ghciPath" : "c:\\path\\to\\ghci.exe"
"tidalcycles.ghciPath" : "/path/to/ghci"
If you are using Stack, you can enable the useStackGhci
option and the extension will use stack ghci
to launch GHCi.
This extension has a default internal bootup process to load the Tidal libraries into GHCI.
If instead you wish you run your own bootup process, you can configure this extension to point
to a Tidal bootup file on your machine, or use a BootTidal.hs
file located in the first directory
of your VS Code IDE.
tidalcycles.bootTidalPath
- path to a file that contains line-by-line commands to boot the TidalCycles Haskell package.tidalcycles.useBootFileInCurrentDirectory
- when equal totrue
, the extension will boot from a file namedBootTidal.hs
in the first workspace folder
Examples:
"tidalcycles.bootTidalPath" : "c:\\path\\to\\file\\boot.tidal",
"tidalcycles.useBootFileInCurrentDirectory" : false
"tidalcycles.useBootFileInCurrentDirectory" : true
This extension implements some code support features for Tidal specific statements, providing code completion and hover information.
You can set the detail level of the provided information through two
configuration settings, one for the hover
feature and one for completion
:
"tidalcycles.codehelp.hover.level": "FULL"
"tidalcycles.codehelp.completion.level" : "FULL"
Available levels for both options are:
OFF
: Disables the featureFULL
: Enables all available informationNO_EXAMPLES_NO_LINKS
: Only show command format, parameters and return value informationMINIMUM
: Only show command format information
Not every command is documented yet and the detail level of the documentation varies from command to command. The files commands.yaml and commands-generated.yaml contain the currently available documentation. If you'd like to contribute, please add new documentation to commands.yaml.
The easiest way to do this is by creating a new file and adding it to the
tidalcycles.codehelp.commands.extra
list. The files in this list will be read
in addition to the defaults contained in the extension itself. This way you can
start writing and using documentation without actually having to re-compile the
extension.
For the format take a look at the existing documentation and the source code. Most fields support MarkDown syntax as well, so you can style them.
If you want to see how your documentation looks, simply reload the file by
executing the tidal.codehelp.reload
. Look out for error messages popping up
and if there are none you should see your changes immediately.
{
"tidalcycles.ghciPath" : "ghci",
"tidalcycles.evalCountPrefix": "Evals: ",
"tidalcycles.feedbackColor": "rgba(100,250,100,0.5)",
"tidalcycles.useStackGhci": false,
"tidalcycles.showEvalCount": true,
"tidalcycles.showGhciOutput": false,
"tidalcycles.showOutputInConsoleChannel": true,
"tidalcycles.useBootFileInCurrentDirectory": false,
"tidalcycles.bootTidalPath" : "c:\\path\\to\\file\\boot.tidal",
"tidalcycles.codehelp.hover.level": "FULL",
"tidalcycles.codehelp.completion.level" : "FULL"
}
- The
Eval and Copy
andEval Multi Line and Copy
commands from the Atom package are not supported.