Add support for Snakemake into Doom Emacs
- Dominant language
- Emacs Lisp
- Stars
- 22.7k
- Forks
- 3.1k
- Avg merge
- 10h 46m
- Merged PRs (30d)
- 4
Description
### Describe your request
[Snakemake](https://snakemake.readthedocs.io/en/stable/) is a general-purpose workflow manager written in Python.
It would be great to have a module for Snakefiles in Doom Emacs, and I believe it would be a relatively easy addition to make:
- A major mode and transient for Snakemake [already exist](https://git.kyleam.com/snakemake-mode/about/)
- Linting is offered directly by Snakemake through `snakemake --lint`, so it could be integrated with the linter
- Interacting with the workflow is possible by parsing the commands in the shell
- A lot of potential additional features for testing and formatting are well-described [in the documentation](https://snakemake.readthedocs.io/en/stable/snakefiles/best_practices.html)
I would try to contribute to it at my best, but my Elisp is extremely limited.
### Briefly explain its use-case
The Melpa package currently works well for the syntax highlighting with Doom, but it lacks functionalities like linting at save or interacting with the workflow

The dependencies for a potential module would be as low as `snakemake-mode` and Snakemake itself, and the latter would be just for linting/interacting with the workflow (making it an optional dependency to flag through `doom doctor`).
A potential use-case would be
- Create a new Snakemake project (by adding a Snakefile and/or using the [standardised structure](https://snakemake.readthedocs.io/en/stable/snakefiles/deployment.html#distribution-and-reproducibility))
- Specify the rules via Doom
- Test the rules using a dry run in Doom (parsing e.g. `snakemake -np`)
- Save file and run linter automatically (`snakemake --lint`)
- Run testing (e.g. [here](https://github.com/snakemake/snakemake-github-action))
Contributor guide
Assessment
This issue has not been assessed yet.