From d1588f0bc7f4381f94d66fd948927d895a754cc8 Mon Sep 17 00:00:00 2001 From: Samuel Tonini Date: Thu, 24 Mar 2016 11:02:09 +0100 Subject: [PATCH] Correct indentation with for-comprehensions within blocks --- elixir-smie.el | 5 ++++- test/elixir-mode-indentation-test.el | 4 +--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/elixir-smie.el b/elixir-smie.el index 6aec9a78..d7974bc5 100644 --- a/elixir-smie.el +++ b/elixir-smie.el @@ -391,7 +391,10 @@ (`(:before . "fn") (smie-rule-parent)) (`(:before . "for") - (smie-rule-parent)) + (cond + ((elixir-smie-last-line-end-with-block-operator-p) + (smie-rule-parent elixir-smie-indent-basic)) + (t (smie-rule-parent)))) (`(:before . "do:") (cond ((smie-rule-parent-p "def" "if" "defp" "defmacro" "defmacrop") diff --git a/test/elixir-mode-indentation-test.el b/test/elixir-mode-indentation-test.el index 4684ebbb..5b1d9d67 100644 --- a/test/elixir-mode-indentation-test.el +++ b/test/elixir-mode-indentation-test.el @@ -1466,9 +1466,7 @@ end" end") (elixir-def-indentation-test case-with-for-comprehension - ; the for-comprehension should get indented one level - ; https://github.com/elixir-lang/emacs-elixir/issues/304 - (:expected-result :failed :tags '(indentation)) + (:tags '(indentation)) "case expression do true -> for _ <- [] do