summaryrefslogtreecommitdiff
path: root/snakemake-mode.el
AgeCommit message (Collapse)Author
2022-02-21Increase minimum required Emacs version to 26.1Kyle Meyer
26.1 was released in 2018 and is in the current Debian oldstable (Buster). I'm unlikely to build an older Emacs version than that in order to investigate and work around any incompatibilities that are reported, so mark it as the minimum. Message-Id: <20220222043213.218747-1-kyle@kyleam.com>
2022-02-21Drop cl-lib from Package-Requires headerKyle Meyer
cl-lib was added in the Emacs 24.3 release, so cl-lib no longer needed to be specified when ca4d60d (Change Emacs requirement for Emacs 24 to Emacs 24.5, 2018-08-16) changed (emacs "24") to (emacs "24.5").
2022-02-21Rewrite snakemake-popup as a transientKyle Meyer
Magit switched to Transient for its popups a while go. Magit Popup is still around for third-party libraries that may use it, but it's not actively developed. At the moment, this switch is trading one external library for another (improved) one. However, Transient will ship with Emacs starting with the upcoming 28.1 release. Message-Id: <20220222030207.204401-2-kyle@kyleam.com>
2022-02-21Rework copyright linesKyle Meyer
public-inbox has started to drop dates from its copyright lines, pointing to the recommendation at https://www.linuxfoundation.org/blog/copyright-notices-in-open-source-software-projects/ I regularly fail to keep copyright lines up to date, so I'll gladly follow suit. Drop the dates and change the copyright holder to (almost match) the variants recommended in the above article.
2020-12-24mode: Add "name" to the list of field keysKyle Meyer
2020-11-08Release 1.8.0v1.8.0Kyle Meyer
2020-11-01docs: Update stale Snakemake linksKyle Meyer
2020-11-01mode: Add "container" and "envmodules" keywordsKyle Meyer
Register "container" as both a field key and a top-level command because an example of both is present in the Snakemake docs. Reported-by: Nicholas Knoblauch <knoblauch.nicholas@gene.com> Message-Id: <87eelcak64.fsf@kyleam.com>
2020-07-19mode: Add "envvars" to list of top-level commandsKyle Meyer
2020-04-17mode: Add "cache" to the list of field keysKyle Meyer
2020-04-13Update links for repo's new homeKyle Meyer
2020-02-22Release 1.7.0v1.7.0Kyle 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-21Update copyright yearsKyle Meyer
2019-09-11Release 1.6.0v1.6.0Kyle Meyer
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-18mode: Add "group" to the list of field keysKyle Meyer
2018-09-01Prefer https linksKyle Meyer
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
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-20mode: Recognize "unpack" as a Snakemake built-inKyle Meyer
This function was added in Snakemake v3.10.0.
2017-04-30Bump versionv1.2.1Kyle Meyer
2017-04-06Bump versionv1.2.0Kyle Meyer
2017-03-26Update copyright yearsKyle Meyer
2017-02-26snakemake-mode-setup-mmm: Protect doc-string's single quotesKyle Meyer
As of Emacs 25, single quotes in doc-strings are rendered according to text-quoting-style, which by default results in single quotes being displayed as curved quotes. Instead of protecting single quotes with "\\=", switch some to double quotes (which still need to be escaped, but in a less jarring way), and avoid quoting symbols, which are better represented within `'.
2017-02-26snakemake-mode-setup-mmm: Touch up doc-stringKyle Meyer
The changes to the first paragraph will make the following commit cleaner. Also, there's no need to tell users where to set mmm-global-mode.
2016-11-22Bump versionv1.1.0Kyle Meyer
2016-11-17snakemake-rx-constituents: Support more built-in Snakemake objectsKyle Meyer
Using "input" here overrides the highlighting of "input" by python-font-lock-keywords, although in either case font-lock-builtin-face is used. The addition of "output" to the regexp means that output and input are now displayed with a consistent face in run blocks. Fixes #20.
2016-11-17snakemake-font-lock-keywords: Increase field key precedenceKyle Meyer
Instead of distinguishing built-ins from field keys by a trailing "(", make the field key regexp, which is more specific, have a higher precedence. This allows Snakemake built-ins to be highlighted correctly even if they are not called as functions.
2016-11-17snakemake-rx-constituents: Replace sm-func with sm-builtinKyle Meyer
The sm-builtin regexp will be extended to support built-in Snakemake objects like "input" and "output", at which point "function" will no longer be an accurate description.