summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-03-26snakemake-root-dir-function: Add custom function fieldKyle Meyer
2017-03-26snakemake-root-dir-function: Define defcustom type as radioKyle Meyer
2017-03-26snakemake-build-targets-at-point: Don't set directoryKyle Meyer
snakemake-compile-targets already takes care of setting default-directory to the Snakefile directory.
2017-03-26snakemake-build-targets-at-point: Remove unnecessary variableKyle Meyer
2017-03-26snakemake-compile-targets: Remove an unnecessary let*Kyle Meyer
2017-03-26snakemake-read-file-target: Fix a docstring typoKyle 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.
2017-02-22snakemake-file-targets: Update Workflow callKyle Meyer
The snakemakepath argument of Workflow was removed in Snakemake v3.9.1 (062a2e0).
2016-11-24Fix doc-string typoKyle Meyer
2016-11-22Bump versionv1.1.0Kyle Meyer
2016-11-22Merge branch 'km/rx-builtin'Kyle 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.
2016-11-15Support 'conda' keywordKyle Meyer
2016-11-10Bump versionv1.0.0Kyle Meyer
2016-11-01Merge branch 'pop-error'Kyle 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-11-01Display unexpected errors from snakemake callsKyle Meyer
2016-10-31tests: Run snakemake-check-target with rule targetsKyle Meyer
2016-10-31tests: Use write-region instead of with-temp-fileKyle Meyer
2016-10-31NEWS: Touch up spacingKyle Meyer
2016-10-26cosmetics: Use zerop instead of (= 0 ...)Kyle 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-02Merge branch 'wildcard_constraints'Kyle Meyer
2016-09-02Decrease font lock precedence of command keywordsKyle Meyer
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.
2016-09-02Support 'wildcard_constraints' keywordKyle Meyer
wildcard_constraints was added in Snakemake v3.8.0 (feb6aee).
2016-09-01snakemake-check-target: Adjust for upstream outputKyle Meyer
As of Snakemake v3.8.0, using a wildcard rule name signals a key error: Traceback (most recent call last): File "/usr/lib/python3.5/site-packages/snakemake/io.py", line 401, in format_match value = wildcards[name] KeyError: 'name'
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-09-01snakemake-check-target: Relax output order assumptionKyle Meyer
2016-09-01snakemake-check-target: Pull out regexpKyle Meyer
2016-09-01Ignore standard error stream when digesting outputKyle Meyer
Avoid including warnings as targets.
2016-06-13snakemake-compile-targets: Update compile-historyKyle Meyer
2016-05-27Bump versionv0.5.1Kyle Meyer
2016-05-26Add snakemake-rx macroKyle Meyer
2016-05-25snakemake-rule-or-subworkflow-re: SimplifyKyle Meyer
2016-05-24indentation: Account for trailing commentsKyle Meyer
2016-05-24Fix indentation for continued lines under naked ruleKyle Meyer
2016-05-17Bump versionv0.5.0Kyle Meyer
2016-05-16Don't use prog-widen and prog-first-columnKyle Meyer
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).
2016-05-11Extend snakemake-block-bounds functionKyle Meyer
Include name and block type.
2016-05-11Fix add-log-current-defun-function assignmentKyle Meyer
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-11Merge branch 'indentation-rewrite'Kyle 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-04snakemake-toplevel-command-re: Allow leading spacesKyle Meyer
Fixes #17.