Skip to content

Commit 935106d

Browse files
committed
fix #104: indent guard in where block
1 parent aaef9ee commit 935106d

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

indent/haskell.vim

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,11 @@ function! GetHaskellIndent()
300300
if l:prevline =~ '\C\<where\>\s\+\S\+.*$'
301301
if l:line =~ '^\s*[=-]>\s' && l:prevline =~ ' :: '
302302
return match(l:prevline, ':: ')
303+
elseif l:line =~ '^\s*|\s'
304+
let l:s = match(l:prevline, '\C\<where\>')
305+
if s:isSYN('haskellWhere', v:lnum - 1, l:s + 1)
306+
return l:s + g:haskell_indent_where + g:haskell_indent_guard
307+
endif
303308
else
304309
let l:s = match(l:prevline, '\C\<where\>')
305310
if s:isSYN('haskellWhere', v:lnum - 1, l:s + 1)

tests/indent/test017/expected.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
where countUntilClosed (x:xs)
2+
| x

tests/indent/test017/test.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
where countUntilClosed (x:xs)

tests/indent/test017/test.vim

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
o| x
2+
:saveas! result.hs
3+
:q!

0 commit comments

Comments
 (0)