annotate runtime/ftplugin/debchangelog.vim @ 12681:ebdb4ea1386e

Added tag v8.0.1218 for changeset 429bf1b9292f432f7454fe2d7d444d14292a339e
author Christian Brabandt <cb@256bit.org>
date Thu, 26 Oct 2017 16:45:05 +0200
parents 1dea14d4c738
children 167a030448fa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
1 " Vim filetype plugin file (GUI menu, folding and completion)
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
2 " Language: Debian Changelog
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
3 " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
4 " Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
5 " Stefano Zacchiroli <zack@debian.org>
5663
1dea14d4c738 Update runtime files. Add support for systemverilog.
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
6 " Last Change: 2014-01-31
3312
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
7 " License: Vim License
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
8 " URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
9
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
10 " Bug completion requires apt-listbugs installed for Debian packages or
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
11 " python-launchpadlib installed for Ubuntu packages
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
12
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
13 if exists("b:did_ftplugin")
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
14 finish
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
15 endif
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
16 let b:did_ftplugin=1
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
17
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
18 " {{{1 Local settings (do on every load)
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
19 if exists("g:debchangelog_fold_enable")
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
20 setlocal foldmethod=expr
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
21 setlocal foldexpr=DebGetChangelogFold(v:lnum)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
22 setlocal foldtext=DebChangelogFoldText()
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
23 endif
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
24
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
25 " Debian changelogs are not supposed to have any other text width,
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
26 " so the user cannot override this setting
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
27 setlocal tw=78
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
28 setlocal comments=f:*
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
29
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
30 " Clean unloading
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
31 let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
32 " }}}1
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 if exists("g:did_changelog_ftplugin")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 " Don't load another plugin (this is global)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 let g:did_changelog_ftplugin = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
41 " {{{1 GUI menu
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
42
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 " Helper functions returning various data.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 " Returns full name, either from $DEBFULLNAME or debianfullname.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 " TODO Is there a way to determine name from anywhere else?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 function <SID>FullName()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 if exists("$DEBFULLNAME")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 return $DEBFULLNAME
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 elseif exists("g:debianfullname")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 return g:debianfullname
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 return "Your Name"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 " Returns email address, from $DEBEMAIL, $EMAIL or debianemail.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 function <SID>Email()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 if exists("$DEBEMAIL")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 return $DEBEMAIL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 elseif exists("$EMAIL")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 return $EMAIL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 elseif exists("g:debianemail")
481
66080ac5dab7 updated for version 7.0130
vimboss
parents: 7
diff changeset
63 return g:debianemail
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 return "your@email.address"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 " Returns date in RFC822 format.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 function <SID>Date()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 let savelang = v:lc_time
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 execute "language time C"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 let dateandtime = strftime("%a, %d %b %Y %X %z")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 execute "language time " . savelang
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 return dateandtime
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 function <SID>WarnIfNotUnfinalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 echohl WarningMsg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 echo "The entry has not been unfinalised before editing."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 echohl None
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 return 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 return 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 function <SID>Finalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 let savelinenum = line(".")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 let returnvalue = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 let returnvalue = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 execute savelinenum
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 return returnvalue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 " These functions implement the menus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 function NewVersion()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 " The new entry is unfinalised and shall be changed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 amenu disable Changelog.New\ Version
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 amenu enable Changelog.Add\ Entry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 amenu enable Changelog.Close\ Bug
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 amenu enable Changelog.Set\ Distribution
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 amenu enable Changelog.Set\ Urgency
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 amenu disable Changelog.Unfinalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 amenu enable Changelog.Finalise
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
111 call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', ''))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 call append(1, "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 call append(2, "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 call append(3, " -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 call append(4, "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 call Urgency("low")
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
117 normal 1G0
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 call search(")")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 normal h
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 normal 
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
121 call setline(1, substitute(getline(1), '-\$\$', '-', ''))
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
122 if exists("g:debchangelog_fold_enable")
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
123 foldopen
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
124 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 call AddEntry()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 function AddEntry()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 normal kk
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 call append(".", " * ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 normal jjj
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 let warn=<SID>WarnIfNotUnfinalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 normal kk
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 if warn
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 echohl MoreMsg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 call input("Hit ENTER")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 echohl None
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 startinsert!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 function CloseBug()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 let warn=<SID>WarnIfNotUnfinalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 normal kk
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 call append(".", " * (closes: #" . input("Bug number to close: ") . ")")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 normal j^ll
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 startinsert
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 function Distribution(dist)
5663
1dea14d4c738 Update runtime files. Add support for systemverilog.
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
155 call setline(1, substitute(getline(1), ') *\%(UNRELEASED\|\l\+\);', ") " . a:dist . ";", ""))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 function Urgency(urg)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 call setline(1, substitute(getline(1), "urgency=.*$", "urgency=" . a:urg, ""))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 function <SID>UnfinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 " This means the entry shall be changed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 amenu disable Changelog.New\ Version
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 amenu enable Changelog.Add\ Entry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 amenu enable Changelog.Close\ Bug
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 amenu enable Changelog.Set\ Distribution
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 amenu enable Changelog.Set\ Urgency
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 amenu disable Changelog.Unfinalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 amenu enable Changelog.Finalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 function Unfinalise()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 call <SID>UnfinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 call setline(".", " -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 function <SID>FinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 " This means the entry should not be changed anymore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 amenu enable Changelog.New\ Version
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 amenu disable Changelog.Add\ Entry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 amenu disable Changelog.Close\ Bug
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 amenu disable Changelog.Set\ Distribution
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 amenu disable Changelog.Set\ Urgency
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 amenu enable Changelog.Unfinalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 amenu disable Changelog.Finalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 function Finalise()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 call <SID>FinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 call setline(".", " -- " . <SID>FullName() . " <" . <SID>Email() . "> " . <SID>Date())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 function <SID>MakeMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 amenu &Changelog.&New\ Version :call NewVersion()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 amenu Changelog.&Add\ Entry :call AddEntry()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 amenu Changelog.&Close\ Bug :call CloseBug()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 menu Changelog.-sep- <nul>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 amenu Changelog.Set\ Distribution.&stable :call Distribution("stable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 menu Changelog.Set\ Distribution.-sep- <nul>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 amenu Changelog.Set\ &Urgency.&low :call Urgency("low")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 amenu Changelog.Set\ Urgency.&medium :call Urgency("medium")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 amenu Changelog.Set\ Urgency.&high :call Urgency("high")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 menu Changelog.-sep- <nul>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 amenu Changelog.U&nfinalise :call Unfinalise()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 amenu Changelog.&Finalise :call Finalise()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 if <SID>Finalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 call <SID>FinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 call <SID>UnfinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 augroup changelogMenu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
231 au BufLeave * if &filetype == "debchangelog" | silent! aunmenu Changelog | endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 augroup END
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
234 " }}}
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
235 " {{{1 folding
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
236
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
237 " look for an author name in the [zonestart zoneend] lines searching backward
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
238 function! s:getAuthor(zonestart, zoneend)
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
239 let linepos = a:zoneend
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
240 while linepos >= a:zonestart
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
241 let line = getline(linepos)
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
242 if line =~ '^ --'
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
243 return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '')
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
244 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
245 let linepos -= 1
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
246 endwhile
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
247 return '[unknown]'
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
248 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
249
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
250 " Look for a package source name searching backward from the givenline and
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
251 " returns it. Return the empty string if the package name can't be found
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
252 function! DebGetPkgSrcName(lineno)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
253 let lineidx = a:lineno
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
254 let pkgname = ''
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
255 while lineidx > 0
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
256 let curline = getline(lineidx)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
257 if curline =~ '^\S'
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
258 let pkgname = matchlist(curline, '^\(\S\+\).*$')[1]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
259 break
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
260 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
261 let lineidx = lineidx - 1
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
262 endwhile
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
263 return pkgname
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
264 endfunction
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
265
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
266 function! DebChangelogFoldText()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
267 if v:folddashes == '-' " changelog entry fold
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
268 return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' '
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
269 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
270 return foldtext()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
271 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
272
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
273 function! DebGetChangelogFold(lnum)
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
274 let line = getline(a:lnum)
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
275 if line =~ '^\w\+'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
276 return '>1' " beginning of a changelog entry
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
277 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
278 if line =~ '^\s\+\[.*\]'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
279 return '>2' " beginning of an author-specific chunk
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
280 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
281 if line =~ '^ --'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
282 return '1'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
283 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
284 return '='
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
285 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
286
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
287 if exists("g:debchangelog_fold_enable")
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
288 silent! foldopen! " unfold the entry the cursor is on (usually the first one)
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
289 endif
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
290
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
291 " }}}
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
292
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
293 " {{{1 omnicompletion for Closes: #
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
294
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
295 if !exists('g:debchangelog_listbugs_severities')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
296 let g:debchangelog_listbugs_severities = 'critical,grave,serious,important,normal,minor,wishlist'
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
297 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
298
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
299 fun! DebCompleteBugs(findstart, base)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
300 if a:findstart
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
301 let line = getline('.')
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
302
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
303 " try to detect whether this is closes: or lp:
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
304 let g:debchangelog_complete_mode = 'debbugs'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
305 let try_colidx = col('.') - 1
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
306 let colidx = -1 " default to no-completion-possible
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
307
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
308 while try_colidx > 0 && line[try_colidx - 1] =~ '\s\|\d\|#\|,\|:'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
309 let try_colidx = try_colidx - 1
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
310 if line[try_colidx] == '#' && colidx == -1
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
311 " found hash, where we complete from:
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
312 let colidx = try_colidx
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
313 elseif line[try_colidx] == ':'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
314 if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~ '\clp:'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
315 let g:debchangelog_complete_mode = 'lp'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
316 endif
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
317 break
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
318 endif
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
319 endwhile
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
320 return colidx
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
321 else " return matches:
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
322 let bug_lines = []
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
323 if g:debchangelog_complete_mode == 'lp'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
324 if ! has('python')
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
325 echoerr 'vim must be built with Python support to use LP bug completion'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
326 return
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
327 endif
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
328 let pkgsrc = DebGetPkgSrcName(line('.'))
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
329 python << EOF
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
330 import vim
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
331 try:
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
332 from launchpadlib.launchpad import Launchpad
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
333 from lazr.restfulclient.errors import HTTPError
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
334 # login anonymously
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
335 lp = Launchpad.login_anonymously('debchangelog.vim', 'production')
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
336 ubuntu = lp.distributions['ubuntu']
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
337 try:
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
338 sp = ubuntu.getSourcePackage(name=vim.eval('pkgsrc'))
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
339 status = ('New', 'Incomplete', 'Confirmed', 'Triaged',
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
340 'In Progress', 'Fix Committed')
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
341 tasklist = sp.searchTasks(status=status, order_by='id')
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
342 liststr = '['
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
343 for task in tasklist:
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
344 bug = task.bug
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
345 liststr += "'#%d - %s'," % (bug.id, bug.title.replace('\'', '\'\''))
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
346 liststr += ']'
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
347 vim.command('silent let bug_lines = %s' % liststr.encode('utf-8'))
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
348 except HTTPError:
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
349 pass
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
350 except ImportError:
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1668
diff changeset
351 vim.command('echoerr \'python-launchpadlib >= 1.5.4 needs to be installed to use Launchpad bug completion\'')
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
352 EOF
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
353 else
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
354 if ! filereadable('/usr/sbin/apt-listbugs')
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
355 echoerr 'apt-listbugs not found, you should install it to use Closes bug completion'
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
356 return
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
357 endif
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
358 let pkgsrc = DebGetPkgSrcName(line('.'))
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
359 let listbugs_output = system('/usr/sbin/apt-listbugs -s ' . g:debchangelog_listbugs_severities . ' list ' . pkgsrc . ' | grep "^ #" 2> /dev/null')
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
360 let bug_lines = split(listbugs_output, '\n')
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
361 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
362 let completions = []
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
363 for line in bug_lines
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
364 let parts = matchlist(line, '^\s*\(#\S\+\)\s*-\s*\(.*\)$')
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
365 " filter only those which match a:base:
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
366 if parts[1] !~ "^" . a:base
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
367 continue
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1620
diff changeset
368 endif
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
369 let completion = {}
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
370 let completion['word'] = parts[1]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
371 let completion['menu'] = parts[2]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
372 let completion['info'] = parts[0]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
373 let completions += [completion]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
374 endfor
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
375 return completions
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
376 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
377 endfun
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
378
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
379 setlocal omnifunc=DebCompleteBugs
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
380
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
381 " }}}
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
382
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
383 " vim: set foldmethod=marker: