Download »
·
Read the Docs »
·
Request Feature »
·
Report Bug »
🏠 Overview
This extension provides support developing bioinformatics workflows via the Workflow Description Language. It does this by
leveraging the sprocket
command line tool (and the wdl
family of crates).
📚 Getting Started
To get started, follow the instructions outlined in the
documentation.
🎨 Features
- Syntax highlighting. The extension uses both a complete TextMate
grammar and semantic
syntax highlighting via the LSP integration. Notably, this syntax highlighting
also drives GitHub's syntax highlighting of WDL.
- Document formatting. Full formatting of documents using the underlying
sprocket format command is integrated such that it can be applied on-demand
or automatically on save/paste.
- Static analysis. Static analysis of WDL documents is provided via the LSP
and is configurable for both validation and lint warnings.
- Code completion. Various completions are available, including completion
of standard library functions and context-aware completion of variables.
- Hover support. Hovering a variable or standard library function gives a
modal with documentation regarding that item.
- Go to definition. Navigating from a symbol to its definition is supported
in all known contexts.
- Find all references. Similarly, navigating from a symbol to all known
references is supported in all known contexts.
- Rename symbol. Symbols may be seamlessly refactored and renamed using the
built-in VSCode shortcuts.
- Workspace and document symbols. Symbols within WDL documents and symbols
are surfaced via your code editor's default facilities. This generally
includes an outline of symbols in a document and workspace-wide symbol search
at a minimum.
- Code snippets for common WDL constructs and conventions.
All major functionality for the Sprocket VSCode extension has been completed. If
you have things you want us to consider included, please file an
issue.
Configuration
The extension provides the following configuration options:
sprocket.server.checkForUpdates: Whether to check for updates to the
automatically installed sprocket tool when the extension starts.
sprocket.server.path: The path to the sprocket command line tool. Use
this to specify a custom installation of sprocket.
sprocket.server.verbose: Configures the verbosity of sprocket output.
Valid values are Verbose, Information, and Quiet; defaults to Quiet.
sprocket.server.lint: Passes the --lint flag to sprocket; this enables
additional linting checks that are not enabled by default.
sprocket.server.maxRetries: Sets the maximum number of retries before the
extension bails out.
Known Issues
None at present.
Development
Setup
To build the extension, Node.js, npm, and yarn must be installed.
To install Node.js, follow these
instructions.
To install yarn, run the following command:
npm install -g yarn
Finally, install the project dependencies by running the following command:
yarn install
Ensure the Yarn binaries directory is on your path by adding the following to
your shell profile:
export PATH="$(yarn global bin):$PATH"
Building
To build the extension, run the following command:
yarn compile
This command will automatically be run when you start the extension in the
development environment or when packaging the extension.
Running The Development Extension
To run the extension, open this directory in VS Code and press F5.
This will open a new VS Code window with the extension automatically loaded.
Installing The Extension
To install the extension, you can package it as a .vsix file and install it.
To package the extension, install the vsce tool:
yarn global add @vscode/vsce
Then package the extension by running:
vsce package --yarn
This will generate a sprocket-vscode-<version>.vsix file that you can install
in VS Code using the Extensions: install from VSIX command.
🤝 Contributing
Contributions, issues and feature requests are welcome! Feel free to check
issues page.
📝 License
This project is licensed as either Apache 2.0 or
MIT at your discretion. Additionally, please see the
disclaimer that applies to all
crates and command line tools made available by St. Jude Rust Labs.
Copyright © 2024-Present St. Jude Children's Research Hospital.