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