Rules have an input and an output directive, which are often used by
name in code. I find it slightly annoying thatinput
has the look of
a Python keyword, while output does not.
Thanks for bringing this up. It's the result of python.el's
python-font-lock-keywords
, which assigns font-lock-builtin-face
to
"input" because input
is a built-in function. Currently, Snakemake
mode's snakemake-font-lock-keywords
only overrides this when it
thinks "input" is being used as a field key (i.e., matches "^ +input *:"),
in which case font-lock-type-face
is used.
So, if I understand correctly, the main place where you're seeing
"input" highlighted differently than "output" is in the run:
body,
while "input" in the shell:
commands and in the input:
field name
is highlighted the same as "output". Is that right?
How do you feel about this? Would you consider changing
snakemake-mode
to not considerinput
a keyword for
syntax-highlighting purposes?
I agree that "input" and "output" should have the same look. Although
Python's input
function works fine in Snakefiles when used outside
of rule blocks, I can't think of any good use-cases for it, so it
doesn't make sense for python-font-lock-keywords
to have priority
here.
I'm OK overriding python-font-lock-keywords
and removing the
highlighting of "input", but I wonder whether it's better to go the
other way. Should output (and other built-in Snakemake objects that
can be accessed in the run block, like "wildcards" and "params") be
highlighted rather than removing the highlighting from input?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.