aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-04-13Update links for repo's new homeKyle Meyer
2020-02-22Release 1.7.0v1.7.0Kyle Meyer
2020-02-21Merge branch 'emacs27-font-lock'Kyle Meyer
2020-02-21font-lock: Adjust python-font-lock-keywords handling for Emacs 27Kyle Meyer
In Emacs 27, specifically 36b64e087e (Add 'font-lock-maximum-decoration' levels for Python, 2018-07-19), python-font-lock-keywords was changed to a list of symbols that define different fontification levels, so we can no longer simply tack snakemake-font-lock-keywords onto it. Instead define a set of levels that mirrors Python mode's. For Snakemake mode, the same decoration is used for all levels, but at least we will honor the level of decoration that the user has set for Python. Reported-by: Nicholas Knoblauch <nwknoblauch@gmail.com> Closes #29.
2020-02-21font-lock: Pull python-font-lock-keywords into snakemake'sKyle Meyer
This will make it easier to work around a change to python-font-lock-keywords in Emacs 27.
2020-02-21mode: Retain non-keyword parts of inherited font-lock-defaultsKyle Meyer
snakemake-font-lock-keywords is extended with python-font-lock-keywords, but the non-keyword bits that python.el defines for font-lock-defaults are discarded. Keep those too because python.el sets a value for font-lock-syntactic-face-function.
2020-02-21mode: Add "multiext" to list of built-insKyle Meyer
2020-02-21NEWS: Delete second-level headingsKyle Meyer
There are few enough entries in each release that this extra structure isn't really helpful. Plus, some things that are labeled as "new features", like recognizing keywords for fontification, seem a bit silly to call a feature, but I can't think of a better heading for them.
2020-02-21Update copyright yearsKyle Meyer
2019-09-11Release 1.6.0v1.6.0Kyle Meyer
2019-09-11guix-snakemake-environment: Update stale commentKyle Meyer
This should have been adjusted in a5f868f (Change 'guix environment' snippet to use --manifest, 2018-09-01).
2019-04-11mode: Add checkpoint supportKyle Meyer
2018-10-07Release 1.5.0v1.5.0Kyle Meyer
2018-10-04snakemake-font-lock-keywords: Increase command precedenceKyle Meyer
With the addition of 'report', the built-in names and command names are no longer disjoint sets. All occurrences of 'report' are fontified as a built-in because the built-in regexp is a substring of the command regexp. Move the command regexp before the built-in regexp so that the 'report:' command is highlighted as a command.
2018-10-04mode: Add "report" to list of field keys and built-insKyle Meyer
2018-10-04mode: Add "localrules" as to the list of top-level commandsKyle Meyer
This has been around forever.
2018-09-22snakemake-popup: Add --use-condaKyle Meyer
2018-09-18mode: Add "group" to the list of field keysKyle Meyer
2018-09-01Prefer https linksKyle Meyer
2018-09-01Change 'guix environment' snippet to use --manifestKyle Meyer
'guix environment' accepts a manifest as of 267379f85 (environment: Add --manifest option., 2018-02-15). Declaring a set of dependencies via --manifest is more straightforward than doing so with --load, so suggest --manifest instead.
2018-09-01snakemake-term-start: Reorder arguments in docstring's guix commandKyle Meyer
Match the order given in guix-snakemake-environment.
2018-09-01Adjust shebang in guix-snakemake-environment scriptKyle Meyer
Using "/usr/bin/env" there is silly. We can rely on "/bin/sh" being present more than "/usr/bin/env".
2018-08-16Release 1.4.0v1.4.0Kyle Meyer
2018-08-16mode: Add "pipe" to the list of built-insKyle Meyer
2018-08-16mode: Add "directory" to the list of built-insKyle Meyer
2018-08-16Change Emacs requirement for Emacs 24 to Emacs 24.5Kyle Meyer
python.el changed its indentation engine in Emacs 24.5. We rely on a python-indent-calculate-indentation that is specific for the newer version. Re: #28
2018-08-16Silence byte-compilerKyle Meyer
2018-08-16snakemake-mode-setup-mmm: Fix quoting in docstringKyle Meyer
2018-05-19mode: Add "singularity" as to the list of top-level commandsKyle Meyer
In addition the per-rule singularity field, Snakemake supports a top-level global directive (since v4.8.0, I think).
2018-05-19mode: Add "ancient" as to the list of built-insKyle Meyer
This has been around since Snakemake 3.9.0.
2018-03-20mode: Add "cwl" to the list of field keysKyle Meyer
2018-01-28Bump versionv1.3.0Kyle Meyer
2018-01-25mode: Add "singularity" to the list of field keysKyle Meyer
Closes #24.
2018-01-20Update copyright yearsKyle Meyer
2018-01-20snakemake-test.el: Remove email for copyright lineKyle Meyer
2018-01-20Makefile: Update magit-popup.el's URLKyle Meyer
magit-popup.el is in its own repository as of Magit's 4d5d9bfa
2017-10-30mode: Recognize "configfile" as a subworkflow keyKyle Meyer
Subworkflow blocks support a "configfile" field as of Snakemake's 1f02ae9 (Allow to specify configfile for subworkflows., 2016-08-24). Add "configfile" as a field-key so that the subworkflow variant is fontified as a key rather than a command. As with "workdir", the tradeoff is that an indented, non-subworkflow "configfile" is fontified as a key rather than a command. Fixes #23.
2017-10-30snakemake-font-lock-keywords: Fix indentationKyle Meyer
2017-10-10mode: Add ".smk" as a file suffixKyle Meyer
Closes #22.
2017-09-30.travis.yml: Use Python 3.6Kyle Meyer
Snakemake 4.0.0 requires Python 3.6.
2017-09-20mode: Recognize "unpack" as a Snakemake built-inKyle Meyer
This function was added in Snakemake v3.10.0.
2017-07-04guix-snakemake-environment: Edit descriptionKyle Meyer
2017-04-30Bump versionv1.2.1Kyle Meyer
2017-04-30Merge branch 'graph-no-imagemagick'Kyle Meyer
2017-04-30graphs: Display file if Emacs lacks ImageMagick supportKyle Meyer
To display the graph, snakemake-graph and snakemake-graph-this-file call image-mode in a buffer with the snakemake graph output. This is convenient because it works without using an output file, but displaying the graph fails if Emacs was compiled without ImageMagick support. When Emacs doesn't have ImageMagick support, fall back to saving the file and then displaying it.
2017-04-30snakemake-graph-save: Return the name of the output fileKyle Meyer
This will allow the graphing commands to save and display the graph when the user is running an Emacs that was not built with ImageMagick support. When the user provides all-blank input or does not confirm an overwrite, raise a user error so that the caller doesn't have to check for a nil return value.
2017-04-06Bump versionv1.2.0Kyle Meyer
2017-04-01Add a user option to always send commands to a terminalKyle Meyer
The primary motivation behind having a terminal interface is that it works better with tools like Guix because the environment persists across calls. And the primary reason one would want to use Guix with Snakemake is so that the dependencies to a workflow/analysis can be specified and tightly controlled. However, the user can accidentally step outside of this controlled environment by running a build command before running snakemake-term-start. The changes from this mistake can be hard to confidently reverse and may require a wide removal of output files. If a user wanted to make sure to only use the Guix-controlled environment, one approach would be to remove the Snakemake executable from the environment in which Emacs is started (most likely the default environment), exposing it only in the workflow environments. The problem with this is that snakemake.el requires the Snakemake executable for things like generating lists of targets. Also, it would be a global change, but a user could reasonably want to control dependencies with Guix for one project but go through the compile interface for another. Add a user option that allows the user to avoid the compile interface at a global or per-project level.
2017-03-31Include an example of a snakemake-shell-file-name scriptKyle Meyer
2017-03-31snakemake-term-start: s/manifest.scm/guix.scm/ in script exampleKyle Meyer
The "-l" flag of "guix environment" doesn't take a manifest; it takes a file that evaluates to a package or a list of packages.