diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2015-10-10 16:56:22 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2015-10-10 16:56:22 +0200 | 
| commit | 0de043adbc144510635702dadedc946e3c69f64e (patch) | |
| tree | 78e5d363305935cf5653a3f510ab86bb019c3199 /indent | |
| parent | 67fcbd2a8632d5ab7895e34acb084117e5d0ea17 (diff) | |
| download | vim-polyglot-0de043adbc144510635702dadedc946e3c69f64e.tar.gz vim-polyglot-0de043adbc144510635702dadedc946e3c69f64e.zip | |
Update
Diffstat (limited to '')
| -rw-r--r-- | indent/cabal.vim | 35 | ||||
| -rw-r--r-- | indent/haskell.vim | 180 | ||||
| -rw-r--r-- | indent/typescript.vim | 18 | 
3 files changed, 15 insertions, 218 deletions
| diff --git a/indent/cabal.vim b/indent/cabal.vim deleted file mode 100644 index b2089a5e..00000000 --- a/indent/cabal.vim +++ /dev/null @@ -1,35 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1 -   -" indentation for cabal -" -" author: raichoo (raichoo@googlemail.com) -" -if exists('b:did_indent') -  finish -endif - -let b:did_indent = 1 - -if !exists('g:cabal_indent_section') -  "executable name -  ">>main-is:           Main.hs -  ">>hs-source-dirs:    src -  let g:cabal_indent_section = 2 -elseif exists('g:cabal_indent_section') && g:cabal_indent_section > 4 -  let g:cabal_indent_section = 4 -endif - -setlocal indentexpr=GetCabalIndent() -setlocal indentkeys=!^F,o,O,<CR> - -function! GetCabalIndent() -  let l:prevline = getline(v:lnum - 1) - -  if l:prevline =~ '\C^\(executable\|library\|flag\|source-repository\|test-suite\|benchmark\)' -    return g:cabal_indent_section -  else -    return match(l:prevline, '\S') -  endif -endfunction - -endif diff --git a/indent/haskell.vim b/indent/haskell.vim deleted file mode 100644 index 8af1aedd..00000000 --- a/indent/haskell.vim +++ /dev/null @@ -1,180 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1 -   -" indentation for haskell -" -" Based on idris indentation -" -" author: raichoo (raichoo@googlemail.com) -" -" Modify g:haskell_indent_if and g:haskell_indent_case to -" change indentation for `if'(default 3) and `case'(default 5). -" Example (in .vimrc): -" > let g:haskell_indent_if = 2 - -if exists('b:did_indent') -  finish -endif - -let b:did_indent = 1 - -if !exists('g:haskell_indent_if') -  " if bool -  " >>>then ... -  " >>>else ... -  let g:haskell_indent_if = 3 -endif - -if !exists('g:haskell_indent_case') -  " case xs of -  " >>[]     -> ... -  " >>(y:ys) -> ... -  let g:haskell_indent_case = 2 -endif - -if !exists('g:haskell_indent_let') -  " let x = 0 in -  " >>>>x -  let g:haskell_indent_let = 4 -endif - -if !exists('g:haskell_indent_where') -  " where f :: Int -> Int -  " >>>>>>f x = x -  let g:haskell_indent_where = 6 -endif - -if !exists('g:haskell_indent_do') -  " do x <- a -  " >>>y <- b -  let g:haskell_indent_do = 3 -endif - -if !exists('g:haskell_indent_in') -  " let x = 1 -  " >in x -  let g:haskell_indent_in = 1 -endif - -setlocal indentexpr=GetHaskellIndent() -setlocal indentkeys=!^F,o,O,0\|,0=where,0=in,0=let,0=deriving,0=->,0=\=>,<CR>,0} - -function! GetHaskellIndent() -  let l:prevline = getline(v:lnum - 1) - -  if l:prevline =~ '^\s*--' -    return match(l:prevline, '\S') -  endif - -  if l:prevline =~ '^\s*$' -      return 0 -  endif - -  let l:line = getline(v:lnum) - -  if l:line =~ '\C^\s*\<where\>' -    let l:s = match(l:prevline, '\S') -    return l:s + &shiftwidth -  endif - -  if l:line =~ '\C^\s*\<deriving\>' -    let l:s = match(l:prevline, '\C\<\(newtype\|data\)\>') -    if l:s >= 0 -      return l:s + &shiftwidth -    endif -  endif - -  if l:line =~ '\C^\s*\<let\>' -    let l:s = match(l:prevline, '\C\<let\>') -    if l:s != 0 -      return l:s -    endif -  endif - -  if l:line =~ '\C^\s*\<in\>' -    let l:s = match(l:prevline, '\C\<let\>') -    if l:s >= 0 -      return l:s + g:haskell_indent_in -    elseif match(l:prevline, '=') > 0 -      let l:s = match(l:prevline, '\S') -      return l:s - (4 - g:haskell_indent_in) -    endif -  endif - -  if l:line =~ '^\s*|' -    if match(l:prevline, '^\s*data') < 0 -      if match(l:prevline, '^\s*|\s') >= 0 -        return match(l:prevline, '|') -      else -        return &shiftwidth -      endif -    endif -  endif - -  if l:line =~ '^\s*[=-]>' -    let l:s = match(l:prevline, ' :: ') -    if l:s >= 0 -      return l:s + 1 -    endif -  endif - -  if l:prevline =~ '\s\+[!#$%&*+./<>?@\\^|~-]\+\s*$' -    let l:s = match(l:prevline, '\S') -    if l:s > 0 -      return l:s + &shiftwidth -    endif -  endif - -  if l:prevline =~ '[{([][^})\]]\+$' -    return match(l:prevline, '[{([]') -  endif - -  if l:prevline =~ '\C\<let\>\s\+[^=]\+=\s*$' -    return match(l:prevline, '\C\<let\>') + g:haskell_indent_let + &shiftwidth -  endif - -  if l:prevline =~ '\C\<let\>\s\+.\+\(\<in\>\)\?\s*$' -    return match(l:prevline, '\C\<let\>') + g:haskell_indent_let -  endif - -  if l:prevline !~ '\C\<else\>' -    let l:s = match(l:prevline, '\C\<if\>.*\&.*\zs\<then\>') -    if l:s > 0 -      return l:s -    endif - -    let l:s = match(l:prevline, '\C\<if\>') -    if l:s > 0 -      return l:s + g:haskell_indent_if -    endif -  endif - -  if l:prevline =~ '\C\(\<where\>\|\<do\>\|=\|[{([]\)\s*$' -    return match(l:prevline, '\S') + &shiftwidth -  endif - -  if l:prevline =~ '\C\<where\>\s\+\S\+.*$' -    return match(l:prevline, '\C\<where\>') + g:haskell_indent_where -  endif - -  if l:prevline =~ '\C\<do\>\s\+\S\+.*$' -    return match(l:prevline, '\C\<do\>') + g:haskell_indent_do -  endif - -  if l:prevline =~ '\C^\s*\<data\>\s\+[^=]\+\s\+=\s\+\S\+.*$' -    if l:line =~ '^\s*|' -      return match(l:prevline, '=') -    endif -  endif - -  if l:prevline =~ '\C\<case\>\s\+.\+\<of\>\s*$' -    return match(l:prevline, '\C\<case\>') + g:haskell_indent_case -  endif - -  if l:prevline =~ '\C^\s*\<\data\>\s\+\S\+\s*$' -    return match(l:prevline, '\C\<data\>') + &shiftwidth -  endif - -  return match(l:prevline, '\S') -endfunction - -endif diff --git a/indent/typescript.vim b/indent/typescript.vim index 73bce658..58dc7d03 100644 --- a/indent/typescript.vim +++ b/indent/typescript.vim @@ -60,9 +60,21 @@ function GetTypescriptIndent()          return indent(prev)      endif -    " If a variable was declared and the semicolon omitted, do not indent -    " the next line -    if getline(prev) =~ '^\s*var\s\+\w\+' +    " If the previous line starts with '@', we should have the same indent as +    " the previous one +    if getline(prev) =~ '^\s*@\S\+\s*$' +      return indent(prev) +    endif + +    " If a var, let, or const was declared and the semicolon omitted, do not +    " indent the next line +    if getline(prev) =~ '^\s*\(var\|let\|const\)\s\+\w\+' +        return indent(prev) +    endif + +    " If the line ended with a ',', we should have the same indent as +    " the previous one +    if getline(prev) =~ ',\s*$'          return indent(prev)      endif | 
