summaryrefslogtreecommitdiffstats
path: root/ftplugin/erlang.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2014-12-11 22:58:14 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2014-12-11 22:58:14 +0100
commit7f2e3663341d725b073857fcd3b2f5868ce85248 (patch)
tree34c4063119045da0824d46b6c1f8fc8fc0b9c2b4 /ftplugin/erlang.vim
parent04f868b94aad9ef31d3cd1adc526d720808f7837 (diff)
downloadvim-polyglot-7f2e3663341d725b073857fcd3b2f5868ce85248.tar.gz
vim-polyglot-7f2e3663341d725b073857fcd3b2f5868ce85248.zip
Change erlang provider to hcs42/vim-erlang-runtime
Diffstat (limited to 'ftplugin/erlang.vim')
-rw-r--r--ftplugin/erlang.vim154
1 files changed, 0 insertions, 154 deletions
diff --git a/ftplugin/erlang.vim b/ftplugin/erlang.vim
deleted file mode 100644
index 4f1acfe8..00000000
--- a/ftplugin/erlang.vim
+++ /dev/null
@@ -1,154 +0,0 @@
-" Vim ftplugin file
-" Language: Erlang
-" Maintainer: Oscar Hellström <oscar@oscarh.net>
-" URL: http://personal.oscarh.net
-" Contributor: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
-" Version: 2010-09-03
-" ------------------------------------------------------------------------------
-" Usage:
-"
-" To enable folding put in your vimrc:
-" set foldenable
-"
-" Folding will make only one fold for a complete function, even though it has
-" more than one function head and body.
-"
-" To change this behaviour put in your vimrc file:
-" let g:erlangFoldSplitFunction=1
-"
-" ------------------------------------------------------------------------------
-" Plugin init
-if exists("b:did_ftplugin")
- finish
-endif
-
-" Don't load any other
-let b:did_ftplugin=1
-
-if exists('s:doneFunctionDefinitions')
- call s:SetErlangOptions()
- finish
-endif
-
-let s:doneFunctionDefinitions=1
-
-" Local settings
-function s:SetErlangOptions()
- compiler erlang
- if version >= 700
- setlocal omnifunc=erlangcomplete#Complete
- endif
-
- setlocal comments=:%%%,:%%,:%
- setlocal commentstring=%%s
-
- setlocal foldmethod=expr
- setlocal foldexpr=GetErlangFold(v:lnum)
- setlocal foldtext=ErlangFoldText()
-endfunction
-
-" Define folding functions
-if !exists("*GetErlangFold")
- " Folding params
- let s:ErlangFunBegin = '^\a\w*(.*$'
- let s:ErlangFunEnd = '^[^%]*\.\s*\(%.*\)\?$'
- let s:ErlangBlankLine = '^\s*\(%.*\)\?$'
-
- " Auxiliary fold functions
- function s:GetNextNonBlank(lnum)
- let lnum = nextnonblank(a:lnum + 1)
- let line = getline(lnum)
- while line =~ s:ErlangBlankLine && 0 != lnum
- let lnum = nextnonblank(lnum + 1)
- let line = getline(lnum)
- endwhile
- return lnum
- endfunction
-
- function s:GetFunName(str)
- return matchstr(a:str, '^\a\w*(\@=')
- endfunction
-
- function s:GetFunArgs(str, lnum)
- let str = a:str
- let lnum = a:lnum
- while str !~ '->\s*\(%.*\)\?$'
- let lnum = s:GetNextNonBlank(lnum)
- if 0 == lnum " EOF
- return ""
- endif
- let str .= getline(lnum)
- endwhile
- return matchstr(str,
- \ '\(^(\s*\)\@<=.*\(\s*)\(\s\+when\s\+.*\)\?\s\+->\s*\(%.*\)\?$\)\@=')
- endfunction
-
- function s:CountFunArgs(arguments)
- let pos = 0
- let ac = 0 " arg count
- let arguments = a:arguments
-
- " Change list / tuples into just one A(rgument)
- let erlangTuple = '{\([A-Za-z_,|=\-\[\]]\|\s\)*}'
- let erlangList = '\[\([A-Za-z_,|=\-{}]\|\s\)*\]'
-
- " FIXME: Use searchpair?
- while arguments =~ erlangTuple
- let arguments = substitute(arguments, erlangTuple, "A", "g")
- endwhile
- " FIXME: Use searchpair?
- while arguments =~ erlangList
- let arguments = substitute(arguments, erlangList, "A", "g")
- endwhile
-
- let len = strlen(arguments)
- while pos < len && pos > -1
- let ac += 1
- let pos = matchend(arguments, ',\s*', pos)
- endwhile
- return ac
- endfunction
-
- " Main fold function
- function GetErlangFold(lnum)
- let lnum = a:lnum
- let line = getline(lnum)
-
- if line =~ s:ErlangFunEnd
- return '<1'
- endif
-
- if line =~ s:ErlangFunBegin && foldlevel(lnum - 1) == 1
- if exists("g:erlangFoldSplitFunction") && g:erlangFoldSplitFunction
- return '>1'
- else
- return '1'
- endif
- endif
-
- if line =~ s:ErlangFunBegin
- return '>1'
- endif
-
- return '='
- endfunction
-
- " Erlang fold description (foldtext function)
- function ErlangFoldText()
- let foldlen = v:foldend - v:foldstart
- if 1 < foldlen
- let lines = "lines"
- else
- let lines = "line"
- endif
- let line = getline(v:foldstart)
- let name = s:GetFunName(line)
- let arguments = s:GetFunArgs(strpart(line, strlen(name)), v:foldstart)
- let argcount = s:CountFunArgs(arguments)
- let retval = "+" . v:folddashes . " " . name . "/" . argcount
- let retval .= " (" . foldlen . " " . lines . ")"
- return retval
- endfunction
-endif
-
-call s:SetErlangOptions()