annotate runtime/ftplugin/erlang.vim @ 3356:b37888de599c

Update runtime files.
author Bram Moolenaar <bram@vim.org>
date Mon, 13 Feb 2012 00:05:22 +0100
parents af1e8a1714c2
children 94601b379f38
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
1 " Vim ftplugin file
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
2 " Language: Erlang
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
3 " Author: Oscar Hellström <oscar@oscarh.net>
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
4 " Contributors: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
5 " Eduardo Lopez (http://github.com/tapichu)
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
6 " License: Vim license
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
7 " Version: 2012/01/25
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
8
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
9 if exists('b:did_ftplugin')
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
10 finish
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
11 else
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
12 let b:did_ftplugin = 1
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
13 endif
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
14
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
15 if exists('s:did_function_definitions')
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
16 call s:SetErlangOptions()
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
17 finish
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
18 else
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
19 let s:did_function_definitions = 1
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
20 endif
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
21
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
22 if !exists('g:erlang_keywordprg')
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
23 let g:erlang_keywordprg = 'erl -man'
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
24 endif
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
25
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
26 if !exists('g:erlang_folding')
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
27 let g:erlang_folding = 0
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
28 endif
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
29
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
30 let s:erlang_fun_begin = '^\a\w*(.*$'
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
31 let s:erlang_fun_end = '^[^%]*\.\s*\(%.*\)\?$'
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
32
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
33 function s:SetErlangOptions()
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
34 if g:erlang_folding
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
35 setlocal foldmethod=expr
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
36 setlocal foldexpr=GetErlangFold(v:lnum)
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
37 setlocal foldtext=ErlangFoldText()
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
38 endif
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
39
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
40 setlocal comments=:%%%,:%%,:%
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
41 setlocal commentstring=%%s
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
42
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
43 setlocal formatoptions+=ro
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
44 let &l:keywordprg = g:erlang_keywordprg
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
45 endfunction
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
46
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
47 function GetErlangFold(lnum)
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
48 let lnum = a:lnum
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
49 let line = getline(lnum)
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
50
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
51 if line =~ s:erlang_fun_end
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
52 return '<1'
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
53 endif
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
54
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
55 if line =~ s:erlang_fun_begin && foldlevel(lnum - 1) == 1
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
56 return '1'
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
57 endif
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
58
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
59 if line =~ s:erlang_fun_begin
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
60 return '>1'
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
61 endif
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
62
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
63 return '='
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
64 endfunction
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
65
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
66 function ErlangFoldText()
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
67 let line = getline(v:foldstart)
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
68 let foldlen = v:foldend - v:foldstart + 1
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
69 let lines = ' ' . foldlen . ' lines: ' . substitute(line, "[\ \t]*", '', '')
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
70 if foldlen < 10
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
71 let lines = ' ' . lines
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
72 endif
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
73 let retval = '+' . v:folddashes . lines
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
74
3356
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
75 return retval
b37888de599c Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
76 endfunction
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
77
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
78 call s:SetErlangOptions()