diff --git a/elixir-smie.el b/elixir-smie.el index d7974bc5..fb54eb1c 100644 --- a/elixir-smie.el +++ b/elixir-smie.el @@ -515,8 +515,16 @@ ;; .... ((elixir-smie-last-line-end-with-block-operator-p) (smie-rule-parent elixir-smie-indent-basic)) - (t - (smie-rule-parent)))) + ;; Indent if inside else + ;; + ;; Example: + ;; + ;; else + ;; if condition, do: :bar <- + ;; end + ((smie-rule-parent-p "else") + (smie-rule-parent elixir-smie-indent-basic)) + (t (smie-rule-parent)))) (`(:before . "->") (cond ;; Example diff --git a/test/elixir-mode-indentation-test.el b/test/elixir-mode-indentation-test.el index 5b1d9d67..5b14de7b 100644 --- a/test/elixir-mode-indentation-test.el +++ b/test/elixir-mode-indentation-test.el @@ -350,8 +350,7 @@ end") (elixir-def-indentation-test indent-if-else/2 - ;; https://github.com/elixir-lang/emacs-elixir/issues/288 - (:expected-result :failed :tags '(indentation)) + (:tags '(indentation)) " if condition do :foo