Skip to content

Commit 930c8cc

Browse files
committed
Fix multiline maps inside case
1 parent 54bf51c commit 930c8cc

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

elixir-smie.el

+13-1
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,19 @@
530530
(smie-rule-parent))
531531
((smie-rule-parent-p "[")
532532
(smie-rule-parent))
533-
))
533+
((smie-rule-parent-p "->")
534+
(if (save-excursion
535+
(move-end-of-line 1)
536+
(looking-back elixir-smie--block-operator-regexp (- (point) 3) t))
537+
(smie-rule-parent -2)
538+
elixir-smie-indent-basic))
539+
((smie-rule-parent-p ";")
540+
(if (save-excursion
541+
(move-end-of-line 1)
542+
(looking-back elixir-smie--block-operator-regexp (- (point) 3) t))
543+
(smie-rule-parent -2)
544+
elixir-smie-indent-basic))
545+
(t (smie-rule-parent))))
534546
(`(:after . "{")
535547
(cond
536548
((smie-rule-hanging-p)

test/elixir-mode-indentation-test.el

+1-3
Original file line numberDiff line numberDiff line change
@@ -1539,9 +1539,7 @@ fn x ->
15391539
end")
15401540

15411541
(elixir-def-indentation-test case-with-multiline-maps
1542-
; the last key does not align properly in multiline maps
1543-
; https://github.com/elixir-lang/emacs-elixir/issues/297
1544-
(:expected-result :failed :tags '(indentation))
1542+
(:tags '(indentation))
15451543
"case statement do
15461544
%{\"foo\" => \"foo\",
15471545
\"baz\" => \"baz\"} ->

0 commit comments

Comments
 (0)