https://github.com/snakemake/snakemake-lang-vscode-plugin
Language support and snippets for Snakemake workflows (Snakefile, *.smk) for Visual Studio Code and Apache Theia.
https://github.com/snakemake/snakemake-lang-vscode-plugin
Last synced: about 1 year ago
JSON representation
Language support and snippets for Snakemake workflows (Snakefile, *.smk) for Visual Studio Code and Apache Theia.
- Host: GitHub
- URL: https://github.com/snakemake/snakemake-lang-vscode-plugin
- Owner: snakemake
- License: mit
- Created: 2021-03-08T09:31:41.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-04-20T16:10:35.000Z (about 1 year ago)
- Last Synced: 2025-04-20T16:33:13.557Z (about 1 year ago)
- Language: Python
- Size: 197 KB
- Stars: 16
- Watchers: 3
- Forks: 16
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Snakemake Language Support
Provides basic language support for [Snakemake](https://snakemake.readthedocs.io) files (Snakefile, *.smk).
Feedback, suggestions, and contributions are very welcome!
This project has been started by Peter Alping, and can be considered a fork of [this repository](https://gitlab.com/alping/vscode-snakemake).
## Features
- Syntax definitions based on Python, with added Snakemake keywords
- Language rules based on Python
- Snippets
## Example

Example taken from [Snakemake documentation](https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#summary).
## Supported Syntax
Keywords and Functions
- Configurations
- configfile
- include
- localrules
- onerror
- onstart
- onsuccess
- ruleorder
- snakefile
- workdir
- Rules
- checkpoint
- rule
- subworkflow
- Rule Parameters
- benchmark
- conda
- cwl
- group
- input
- log
- message
- output
- params
- priority
- resources
- run
- script
- shadow
- shell
- singularity
- threads
- version
- wildcard_constraints
- wrapper
- Functions
- ancient
- directory
- expand
- pipe
- protected
- temp
- touch
- unpack
## TODO
- [ ] Indentation rules (really tricky for some reason)
- [ ] Recognize string substitutions: `"command {input}"`
- [ ] Recognize wildcard constraints inside string substitutions: `"{sample,[A-Za-z0-9]+}"`
## Snakemake Support for other Editors
- [Vim](https://github.com/snakemake/snakemake/tree/master/misc/vim)