From b3fee610994c8802efadef42c477eb35d57d999e Mon Sep 17 00:00:00 2001 From: Nat Tuck Date: Thu, 18 Apr 2019 21:03:20 -0400 Subject: [PATCH 1/3] Special case for indentation of fat arrows in map literals. --- elixir-smie.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/elixir-smie.el b/elixir-smie.el index c3b524a5..31f6fb32 100644 --- a/elixir-smie.el +++ b/elixir-smie.el @@ -415,6 +415,8 @@ (smie-rule-parent)) ((smie-rule-parent-p ";") (smie-rule-parent)) + ((smie-rule-parent-p "{") + (smie-rule-parent elixir-smie-indent-basic)) (t (smie-rule-parent (- elixir-smie-indent-basic))))) (`(:before . "MATCH-STATEMENT-DELIMITER") (cond From a41ac6c5546c9af2e329da4ada5e7dcc1eda9de0 Mon Sep 17 00:00:00 2001 From: Nat Tuck Date: Thu, 18 Apr 2019 21:18:38 -0400 Subject: [PATCH 2/3] Mark the string key map test as not expecting to fail --- test/elixir-mode-indentation-test.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/elixir-mode-indentation-test.el b/test/elixir-mode-indentation-test.el index 99fbbe59..fa576046 100644 --- a/test/elixir-mode-indentation-test.el +++ b/test/elixir-mode-indentation-test.el @@ -1510,7 +1510,7 @@ defmodule Foo do end") (elixir-def-indentation-test indent-maps-with-stings-as-keys - (:expected-result :failed :tags '(indentation)) + (:tags '(indentation)) "%{ \"data\" => %{ \"foo\" => %{ From 21b140fd8bde8529c859ae4381a7e5b0c95e41f6 Mon Sep 17 00:00:00 2001 From: Nat Tuck Date: Thu, 18 Apr 2019 22:34:50 -0400 Subject: [PATCH 3/3] Add a failing test for a slightly more complicated case. --- test/elixir-mode-indentation-test.el | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/elixir-mode-indentation-test.el b/test/elixir-mode-indentation-test.el index fa576046..e34396c5 100644 --- a/test/elixir-mode-indentation-test.el +++ b/test/elixir-mode-indentation-test.el @@ -1526,6 +1526,23 @@ end") } }") +(elixir-def-indentation-test indent-maps-with-multiple-string-keys + (:expected-result :failed :tags '(indentation)) +"Enum.map [], fn x -> +%{ +\"a\" => 5555, +\"b\" => 5555, +\"c\" => x, +} +end" +"Enum.map [], fn x -> + %{ + \"a\" => 5555, + \"b\" => 5555, + \"c\" => x, + } +end") + (elixir-def-indentation-test indent-maps-and-structs-elements (:tags '(indentation)) "