diff --git a/indent/haskell.vim b/indent/haskell.vim index 2d6a237..9b66246 100644 --- a/indent/haskell.vim +++ b/indent/haskell.vim @@ -148,6 +148,10 @@ function! GetHaskellIndent() abort return match(nonblankline, '\v^\s*%(|.*)?\s*\zs') + &shiftwidth endif + if nonblankline =~# '\v\s*[[:alnum:](]' + return match(nonblankline, '\v\s*\zs\S') + endif + if nonblankline =~# '\v' return s:indent('', '\v^\s*\zs', 0) endif diff --git a/test/do/do_same_line.in.hs b/test/do/do_same_line.in.hs new file mode 100644 index 0000000..3561492 --- /dev/null +++ b/test/do/do_same_line.in.hs @@ -0,0 +1,2 @@ +main = do print "hello" +print "world" diff --git a/test/do/do_same_line.out.hs b/test/do/do_same_line.out.hs new file mode 100644 index 0000000..eed0ee1 --- /dev/null +++ b/test/do/do_same_line.out.hs @@ -0,0 +1,2 @@ +main = do print "hello" + print "world"