aboutsummaryrefslogtreecommitdiff
path: root/snakemake-test.el
AgeCommit message (Collapse)Author
2020-02-21Update copyright yearsKyle Meyer
2018-09-01Prefer https linksKyle Meyer
2018-01-20Update copyright yearsKyle Meyer
2018-01-20snakemake-test.el: Remove email for copyright lineKyle Meyer
2017-03-26Update copyright yearsKyle Meyer
2016-11-01Change approach for detecting invalid targetsKyle Meyer
Initially (7374840), snakemake-check-target only used regular expressions to detect invalid targets based on the presence of a MissingRuleException or RuleException in Snakemake's output. The target was assumed to be valid if these exceptions weren't found. If there was a non-zero exit status for another reason, it bubbled up to the compile call where it was visible to the user. 33a7c90 (snakemake-check-target: Adjust for upstream output, 2016-09-01) restricted the invalid target check to calls with an exit status of zero. This makes the regular expression check useless because snakemake should always exit with a non-zero status if a MissingRuleException or RuleException is thrown. Due to this change, snakemake-check-target classified all non-zero exits as invalid and all zero exits as valid. While this often gives the right answer, it doesn't in cases where the non-zero exit is unrelated to an invalid target. 2bceb7f (snakemake-check-target: Recognize protected items, 2016-09-05) addressed one case. To deal with other cases (such as an ambiguous rule error or a syntax error in the Snakefile), use the following approach. * An exit status of zero indicates a valid target. * A non-zero exit status indicates an invalid target if snakemake-all-rules has an exit status of zero. Otherwise, snakemake-all-rules will signal an error and display the Snakemake output. The main downside of this approach is the need to call snakemake twice. The output of snakmake-all-rules is cached, so this is only the case on the first call to snakemake-check-target for a given version of a Snakefile.
2016-10-31tests: Run snakemake-check-target with rule targetsKyle Meyer
2016-10-31tests: Use write-region instead of with-temp-fileKyle Meyer
2016-09-13snakemake-check-target: Recognize protected itemsKyle Meyer
With 33a7c90 (snakemake-check-target: Adjust for upstream output, 2016-09-01), write-protected targets were no longer considered valid targets.
2016-09-01Change approach to handling errorsKyle Meyer
The approach from 7b210fc (Ignore standard error stream when digesting output, 2016-09-01) does not work well because, depending on the snakemake subcommand, the text of interest may be in the stderr stream. Instead, use lines with spaces as a way to detect non-target lines.
2016-05-24indentation: Account for trailing commentsKyle Meyer
2016-05-24Fix indentation for continued lines under naked ruleKyle Meyer
2016-05-11Extend snakemake-block-bounds functionKyle Meyer
Include name and block type.
2016-05-11Define function for add-log-current-defun-functionKyle Meyer
2016-05-11Define defun navigation commandsKyle Meyer
2016-05-11Add snakemake-block-bounds functionKyle Meyer
2016-05-11Rework indentationKyle Meyer
The previous implementation did not support some legal syntax: * spaces between rule lines * indented rule blocks (e.g., a rule defined under an if-statement) * top-level commands like "include" when the value started on the second line (re: #16)
2016-05-03Be more lenient with spacing in regexpsKyle Meyer
2016-04-17Filter out anonymous rules from rule listsKyle Meyer
2016-04-17snakemake-rule-at-point: Fix anonymous rule checkKyle Meyer
2016-04-15mode: Unset indent-region-functionKyle Meyer
Don't use python-indent-region for indent-region-function. At first glance, setting indent-region-function to nil (that is, running indent-according-to-mode on each line) seems to indent rule blocks fine, though it will probably fail on more complex "run" values. However, this does mean that python-indent-region is no longer used when indent-region is called with a region that doesn't include a rule block, so it's probably worth adding a snakemake-indent-region function that calls python-indent-region in this case. Re: #8
2016-03-04popup: Consider file targets in regionKyle Meyer
2016-02-28Fix rule recognition at beginning of bufferKyle Meyer
2016-02-28tests: Change naming schemeKyle Meyer
2016-02-28Rename test file for MELPA filteringKyle Meyer
MELPA excludes test.el, tests.el, *-test.el, and *-tests.el.