From 8eb8769258a5b63a6516581f8e9965f971a76442 Mon Sep 17 00:00:00 2001 From: Samuel Tonini Date: Wed, 31 Dec 2014 13:38:56 +0100 Subject: [PATCH 1/2] correct indentation of of listings inside square brackets fixes #160 --- elixir-smie.el | 8 ++++++++ test/elixir-mode-indentation-test.el | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/elixir-smie.el b/elixir-smie.el index 6b64c410..974c235e 100644 --- a/elixir-smie.el +++ b/elixir-smie.el @@ -281,6 +281,14 @@ ;; Closing paren on the other line (`(:before . "(") (smie-rule-parent)) + (`(:before . "[") + (cond + ((smie-rule-hanging-p) + (smie-rule-parent)))) + (`(:after . "[") + (cond + ((smie-rule-hanging-p) + (smie-rule-parent elixir-smie-indent-basic)))) (`(:before . "->") (cond ((smie-rule-hanging-p) diff --git a/test/elixir-mode-indentation-test.el b/test/elixir-mode-indentation-test.el index cb646454..31454eff 100644 --- a/test/elixir-mode-indentation-test.el +++ b/test/elixir-mode-indentation-test.el @@ -914,6 +914,19 @@ case asd do main end") +(elixir-def-indentation-test indent-inside-square-brackets + (:tags '(indentation)) +" +children = [ + supervisor(Task.Supervisor, [[name: KVServer.TaskSupervisor]]), +worker(Task, [KVServer, :accept, [4040]]) +]" + +" +children = [ + supervisor(Task.Supervisor, [[name: KVServer.TaskSupervisor]]), + worker(Task, [KVServer, :accept, [4040]]) +]") ;; We don't want automatic whitespace cleanup here because of the significant ;; whitespace after `Record' above. By setting `whitespace-action' to nil, From 3ceaad81a5ba5aa87dc193f9170911b008d484e5 Mon Sep 17 00:00:00 2001 From: Samuel Tonini Date: Wed, 31 Dec 2014 13:40:29 +0100 Subject: [PATCH 2/2] update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7283e29..580f39c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Enhancements + * [Indentation] Indent listing inside square brackets. (#160) * [Indentation] Ident correct after a binary sequence `<<1,2,3,4>>`. * [Indentation] Indent correct after oneline `def ... do:` function * [Indentation] Correct behavior after last line in buffer. (#145)