From 9ed551af664fc0ffc7346db5308328524457de0a Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Tue, 24 May 2016 23:56:42 -0400 Subject: indentation: Account for trailing comments --- snakemake-mode.el | 11 +++++++---- snakemake-test.el | 28 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/snakemake-mode.el b/snakemake-mode.el index 5b4fb28..512b103 100644 --- a/snakemake-mode.el +++ b/snakemake-mode.el @@ -255,7 +255,8 @@ returned." (skip-chars-backward " \t\n") (beginning-of-line) (cond - ((cl-some (lambda (re) (looking-at-p (concat re "\\s-*$"))) + ((cl-some (lambda (re) + (looking-at-p (concat re "\\s-*\\(?:#.*\\)?$"))) (list snakemake-field-key-indented-re snakemake-rule-or-subworkflow-re snakemake-toplevel-command-re)) @@ -284,9 +285,11 @@ returned." (not (equal (match-string-no-properties 1) "run")) (cond (goto-first-p - (if (equal (match-string-no-properties 2) "") - above-indent - (- (match-beginning 2) (line-beginning-position)))) + (let ((field-val (match-string-no-properties 2))) + (if (or (equal field-val "") + (string-match-p "\\`#" field-val)) + above-indent + (- (match-beginning 2) (line-beginning-position))))) ((< field-indent initial-indent) field-indent))))))))))))) diff --git a/snakemake-test.el b/snakemake-test.el index 80850d7..f70b284 100644 --- a/snakemake-test.el +++ b/snakemake-test.el @@ -393,6 +393,19 @@ rule abc: (should (string= " +rule abc: + output: # comment + " + (snakemake-with-temp-text + " +rule abc: + output: # comment + " + (snakemake-indent-line) + (buffer-string)))) + (should + (string= + " rule abc: output: 'file{}{}'.format('one', @@ -501,6 +514,21 @@ rule abc: (should (string= " +rule abc: + output: # comment + 'file' + 'text'" + (snakemake-with-temp-text + " +rule abc: + output: # comment + 'file' + 'text'" + (snakemake-indent-line) + (buffer-string)))) + (should + (string= + " rule abc: run: with this: -- cgit v1.2.3