Skip to content

Commit a22df61

Browse files
committed
Merge pull request #153 from elixir-lang/fix-indent-inside-parens
fix indentation inside parens wrapped around def fixes #152
2 parents 419aef0 + 8ef8232 commit a22df61

File tree

3 files changed

+53
-17
lines changed

3 files changed

+53
-17
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
# Changelog
22

3-
## v2.2.0-dev (unreleased)
3+
## v2.1.1
44

55
### Enhancements
66

77
* [Indentation] Indent block inside a fn match.
88

9+
### Bugfixes
10+
11+
* [Indentation] #152 Fix indentation inside parens wrapped around def
12+
913
## v2.1.0 - 2014/12/23
1014

1115
### Enhancements

elixir-smie.el

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -258,19 +258,23 @@
258258
(cond
259259
((smie-rule-sibling-p) nil)
260260
((smie-rule-hanging-p) (smie-rule-parent elixir-smie-indent-basic))
261-
(t elixir-smie-indent-basic)))
262-
261+
(t (smie-rule-parent))))
263262
(`(:before . "MATCH-STATEMENT-DELIMITER")
264263
(cond
265264
((and (not (smie-rule-sibling-p))
266265
(smie-rule-hanging-p))
267266
(smie-rule-parent elixir-smie-indent-basic))))
268-
267+
(`(:before . "fn")
268+
(smie-rule-parent))
269+
(`(:before . "end")
270+
(smie-rule-parent))
271+
;; Closing paren on the other line
272+
(`(:before . "(")
273+
(smie-rule-parent))
269274
(`(:before . "->")
270275
(cond
271276
((smie-rule-hanging-p)
272277
(smie-rule-parent elixir-smie-indent-basic))))
273-
274278
(`(:after . "->")
275279
(cond
276280
;; This first condition is kind of complicated so I'll try to make this
@@ -300,23 +304,11 @@
300304
elixir-smie-indent-basic)
301305
(t
302306
(smie-rule-parent elixir-smie-indent-basic))))))
303-
304-
(`(:before . "fn")
305-
(smie-rule-parent))
306-
307-
(`(:before . "end")
308-
(smie-rule-parent))
309-
310-
;; Closing paren on the other line
311-
(`(:before . "(")
312-
(unless smie--parent 0))
313-
314307
(`(:before . ";")
315308
(cond
316309
((smie-rule-parent-p "after" "catch" "def" "defmodule" "defp" "do" "else"
317310
"fn" "if" "rescue" "try" "unless")
318311
(smie-rule-parent elixir-smie-indent-basic))))
319-
320312
(`(:after . ";")
321313
(cond
322314
((smie-rule-parent-p "if")

test/elixir-mode-indentation-test.el

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,46 @@ x = do_something(:foo, fn (arg) ->
631631
do_another(arg)
632632
end)")
633633

634+
(elixir-def-indentation-test indent-inside-parens/4
635+
(:tags '(indentation))
636+
"
637+
defmodule Something do
638+
def something do
639+
x = do_something(:foo, fn (arg) ->
640+
do_another(arg)
641+
end)
642+
end
643+
end"
644+
"
645+
defmodule Something do
646+
def something do
647+
x = do_something(:foo, fn (arg) ->
648+
do_another(arg)
649+
end)
650+
end
651+
end")
652+
653+
(elixir-def-indentation-test indent-inside-parens/5
654+
(:tags '(indentation))
655+
"
656+
defmodule IndentPlayground do
657+
def my_func(arr) do
658+
Enum.map(arr, fn(x) ->
659+
x * 2
660+
end)
661+
#back here
662+
end
663+
end"
664+
"
665+
defmodule IndentPlayground do
666+
def my_func(arr) do
667+
Enum.map(arr, fn(x) ->
668+
x * 2
669+
end)
670+
#back here
671+
end
672+
end")
673+
634674
(elixir-def-indentation-test indent-lone-keyword ()
635675
"
636676
def foo do #comment

0 commit comments

Comments
 (0)