SnakeMakerRecord bash history and convert it into Snakemake or Make rules. General UsageThis README is included in Copilot Chat's context, together with the extension's settings and state. Tag @snakemaker in the Copilot Chat to ask any question or to get help with the extension. Snakemaker panel overviewRecord bash commands historyThe extension's listening and recording of bash commands can be turned on and off manually. Adding commands manuallyIf you forgot to turn on the listening mode, you can add commands manually by running the command Commands importanceWhen recording bash commands, Snakemaker tries to distinguish between important commands, which can contribute to the Snakefile, and unimportant, one-timer commands, which are not. Non-important commands will be shown in the Snakemaker panel in a dark-gray color, and by default they are not exported as rules. Importance of a command can be changed manually. Command detailsWhen recording a bash command, Snakemaker tries to extract some details:
These details can be edited manually for better rules production. Composite rulesBy default, Snakemaker proposes one candidate rule for each important bash command recorded. If the user whishes for multiple commands to be considered for a single snakemake rule, he can use drag-and-drop to merge commands into composite commands. GNU Make supportSnakemaker can also generate Make rules. The user can switch between Snakemake and Make rules generation by searching for "Rules output format" in the VSCode settings. Alternatively, ask @snakemaker in the chat to open the setting for you. Rule generation optionsFor the Snakemake rules, some additional options are offered in the settings:
Settings related to Snakemake rule generation are grouped under "Snakemake Best Practices" in the VSCode settings. Automatic rule validation and correctionGenerated Snakemake rules are checked for errors, and fed back to the model with the error message for correction.
This feature makes rule generation more reliable, but can slow down the process and consume more tokens of the LLM API. It can be disabled in the settings: In order for automatic correction to work, a path to snakemake must be provided in the settings, or snakemake must be on user's $PATH.
Chat directly with SnakemakerSnakemaker integrates with the Github Copilot chat, allowing the user to chat directly with the extension. In order to chat with Snakemaker:
The direct chat can be used for a variety of purposes:
Import-export workspaceThe workspace contains all the recorded commands and their details. By default, the workspace is preserved between VSCode sessions, an option that can be disabled in the settings ("Keep history between sessions"). Explicit import and export of the workspace to a JSON file can be done:
Change language modelA model selection panel is provided at the bottom of the Snakemaker panel. Double-click on a model to activate it. Add custom modelCustom models can be added if they support OpenAi API standards. In order to add a custom model:
Build and install extension for local usage
|