Age | Commit message (Collapse) | Author |
|
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.
|
|
This will make it easier to work around a change to
python-font-lock-keywords in Emacs 27.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
This has been around forever.
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
In addition the per-rule singularity field, Snakemake supports a
top-level global directive (since v4.8.0, I think).
|
|
This has been around since Snakemake 3.9.0.
|
|
|
|
|
|
Closes #24.
|
|
|
|
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.
|
|
|
|
Closes #22.
|
|
This function was added in Snakemake v3.10.0.
|
|
|
|
|
|
|
|
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 `'.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
The keyword wildcard_constraints can be either a top-level command or a
rule field keyword. The previous order in snakemake-font-lock-keywords
resulted in wildcard_constraints always be highlighted as a command key.
Rearrange the font lock list order to put the field key entry first.
This should result in the correct highlighting in every case except for
when a command key is indented (e.g., under an "if"), but this
presumably will occur much less frequently than wildcard_constraints
being used as a field keyword.
|
|
wildcard_constraints was added in Snakemake v3.8.0 (feb6aee).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
These functions aren't in Emacs 24.* and have been removed from the
emacs-25 branch. See Emacs 124c486 (Remove prog-indentation-context,
2016-03-28).
|