annotate runtime/ftplugin/debchangelog.vim @ 1624:18ee39301b82 v7.2a

updated for version 7.2a
author vimboss
date Tue, 24 Jun 2008 22:58:06 +0000
parents 73fe8baea242
children 0b796e045c42
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)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: Debian Changelog
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
3 " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
4 " Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
5 " Stefano Zacchiroli <zack@debian.org>
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
6 " Last Change: 2008-03-08
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
7 " License: GNU GPL, version 2.0 or later
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
8 " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debchangelog.vim;hb=debian
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
9
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
10 if exists("b:did_ftplugin")
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
11 finish
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
12 endif
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
13 let b:did_ftplugin=1
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
14
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
15 " {{{1 Local settings (do on every load)
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
16 if exists("g:debchangelog_fold_enable")
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
17 setlocal foldmethod=expr
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
18 setlocal foldexpr=DebGetChangelogFold(v:lnum)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
19 setlocal foldtext=DebChangelogFoldText()
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
20 endif
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
21
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
22 " Debian changelogs are not supposed to have any other text width,
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
23 " so the user cannot override this setting
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
24 setlocal tw=78
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
25 setlocal comments=f:*
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
26
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
27 " Clean unloading
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
28 let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
29 " }}}1
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 if exists("g:did_changelog_ftplugin")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 " Don't load another plugin (this is global)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 let g:did_changelog_ftplugin = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
38 " {{{1 GUI menu
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
39
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 " Helper functions returning various data.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 " Returns full name, either from $DEBFULLNAME or debianfullname.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 " TODO Is there a way to determine name from anywhere else?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 function <SID>FullName()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 if exists("$DEBFULLNAME")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 return $DEBFULLNAME
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 elseif exists("g:debianfullname")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 return g:debianfullname
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 return "Your Name"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 " Returns email address, from $DEBEMAIL, $EMAIL or debianemail.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 function <SID>Email()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 if exists("$DEBEMAIL")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 return $DEBEMAIL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 elseif exists("$EMAIL")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 return $EMAIL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 elseif exists("g:debianemail")
481
66080ac5dab7 updated for version 7.0130
vimboss
parents: 7
diff changeset
60 return g:debianemail
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 return "your@email.address"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 " Returns date in RFC822 format.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 function <SID>Date()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 let savelang = v:lc_time
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 execute "language time C"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 let dateandtime = strftime("%a, %d %b %Y %X %z")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 execute "language time " . savelang
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 return dateandtime
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 function <SID>WarnIfNotUnfinalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 echohl WarningMsg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 echo "The entry has not been unfinalised before editing."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 echohl None
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 return 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 return 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 function <SID>Finalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 let savelinenum = line(".")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 let returnvalue = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 let returnvalue = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 execute savelinenum
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 return returnvalue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 " These functions implement the menus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 function NewVersion()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 " The new entry is unfinalised and shall be changed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 amenu disable Changelog.New\ Version
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 amenu enable Changelog.Add\ Entry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 amenu enable Changelog.Close\ Bug
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 amenu enable Changelog.Set\ Distribution
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 amenu enable Changelog.Set\ Urgency
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 amenu disable Changelog.Unfinalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 amenu enable Changelog.Finalise
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
108 call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', ''))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 call append(1, "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 call append(2, "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 call append(3, " -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 call append(4, "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 call Urgency("low")
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
114 normal 1G0
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 call search(")")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 normal h
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 normal 
848
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
118 call setline(1, substitute(getline(1), '-\$\$', '-', ''))
f4d8553715f7 updated for version 7.0f04
vimboss
parents: 845
diff changeset
119 normal zo
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 call AddEntry()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 function AddEntry()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 normal kk
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 call append(".", " * ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 normal jjj
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 let warn=<SID>WarnIfNotUnfinalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 normal kk
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 if warn
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 echohl MoreMsg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 call input("Hit ENTER")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 echohl None
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 startinsert!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 function CloseBug()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 let warn=<SID>WarnIfNotUnfinalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 normal kk
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 call append(".", " * (closes: #" . input("Bug number to close: ") . ")")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 normal j^ll
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 startinsert
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 function Distribution(dist)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 call setline(1, substitute(getline(1), ") [[:lower:] ]*;", ") " . a:dist . ";", ""))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 function Urgency(urg)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 call setline(1, substitute(getline(1), "urgency=.*$", "urgency=" . a:urg, ""))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 function <SID>UnfinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 " This means the entry shall be changed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 amenu disable Changelog.New\ Version
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 amenu enable Changelog.Add\ Entry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 amenu enable Changelog.Close\ Bug
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 amenu enable Changelog.Set\ Distribution
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 amenu enable Changelog.Set\ Urgency
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 amenu disable Changelog.Unfinalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 amenu enable Changelog.Finalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 function Unfinalise()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 call <SID>UnfinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 call setline(".", " -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 function <SID>FinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 " This means the entry should not be changed anymore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 amenu enable Changelog.New\ Version
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 amenu disable Changelog.Add\ Entry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 amenu disable Changelog.Close\ Bug
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 amenu disable Changelog.Set\ Distribution
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 amenu disable Changelog.Set\ Urgency
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 amenu enable Changelog.Unfinalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 amenu disable Changelog.Finalise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 function Finalise()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 call <SID>FinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 normal 1G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 call search("^ -- ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 call setline(".", " -- " . <SID>FullName() . " <" . <SID>Email() . "> " . <SID>Date())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 function <SID>MakeMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 amenu &Changelog.&New\ Version :call NewVersion()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 amenu Changelog.&Add\ Entry :call AddEntry()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 amenu Changelog.&Close\ Bug :call CloseBug()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 menu Changelog.-sep- <nul>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 amenu Changelog.Set\ Distribution.&stable :call Distribution("stable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 menu Changelog.Set\ Distribution.-sep- <nul>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 amenu Changelog.Set\ &Urgency.&low :call Urgency("low")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 amenu Changelog.Set\ Urgency.&medium :call Urgency("medium")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 amenu Changelog.Set\ Urgency.&high :call Urgency("high")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 menu Changelog.-sep- <nul>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 amenu Changelog.U&nfinalise :call Unfinalise()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 amenu Changelog.&Finalise :call Finalise()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 if <SID>Finalised()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 call <SID>FinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 call <SID>UnfinaliseMenu()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 augroup changelogMenu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 au BufLeave * if &filetype == "debchangelog" | aunmenu Changelog | endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 augroup END
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
229 " }}}
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
230 " {{{1 folding
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
231
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
232 " look for an author name in the [zonestart zoneend] lines searching backward
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
233 function! s:getAuthor(zonestart, zoneend)
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
234 let linepos = a:zoneend
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
235 while linepos >= a:zonestart
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
236 let line = getline(linepos)
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
237 if line =~ '^ --'
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
238 return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '')
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
239 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
240 let linepos -= 1
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
241 endwhile
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
242 return '[unknown]'
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
243 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
244
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
245 " Look for a package source name searching backward from the givenline and
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
246 " 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
247 function! DebGetPkgSrcName(lineno)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
248 let lineidx = a:lineno
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
249 let pkgname = ''
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
250 while lineidx > 0
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
251 let curline = getline(lineidx)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
252 if curline =~ '^\S'
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
253 let pkgname = matchlist(curline, '^\(\S\+\).*$')[1]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
254 break
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
255 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
256 let lineidx = lineidx - 1
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
257 endwhile
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
258 return pkgname
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
259 endfunction
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
260
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
261 function! DebChangelogFoldText()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
262 if v:folddashes == '-' " changelog entry fold
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
263 return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' '
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
264 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
265 return foldtext()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
266 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
267
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
268 function! DebGetChangelogFold(lnum)
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
269 let line = getline(a:lnum)
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
270 if line =~ '^\w\+'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
271 return '>1' " beginning of a changelog entry
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
272 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
273 if line =~ '^\s\+\[.*\]'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
274 return '>2' " beginning of an author-specific chunk
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
275 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
276 if line =~ '^ --'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
277 return '1'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
278 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
279 return '='
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
280 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
281
1620
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
282 silent! foldopen! " unfold the entry the cursor is on (usually the first one)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
283
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
284 " }}}
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
285
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
286 " {{{1 omnicompletion for Closes: #
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
287
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
288 if !exists('g:debchangelog_listbugs_severities')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
289 let g:debchangelog_listbugs_severities = 'critical,grave,serious,important,normal,minor,wishlist'
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
290 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
291
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
292 fun! DebCompleteBugs(findstart, base)
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
293 if a:findstart
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
294 " it we are just after an '#', the completion should start at the '#',
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
295 " otherwise no completion is possible
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
296 let line = getline('.')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
297 let colidx = col('.')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
298 if colidx > 1 && line[colidx - 2] =~ '#'
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
299 let colidx = colidx - 2
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
300 else
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
301 let colidx = -1
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
302 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
303 return colidx
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
304 else
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
305 if ! filereadable('/usr/sbin/apt-listbugs')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
306 echoerr 'apt-listbugs not found, you should install it to use Closes bug completion'
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
307 return
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
308 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
309 let pkgsrc = DebGetPkgSrcName(line('.'))
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
310 let listbugs_output = system('apt-listbugs -s ' . g:debchangelog_listbugs_severities . ' list ' . pkgsrc . ' | grep "^ #" 2> /dev/null')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
311 let bug_lines = split(listbugs_output, '\n')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
312 let completions = []
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
313 for line in bug_lines
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
314 let parts = matchlist(line, '^\s*\(#\S\+\)\s*-\s*\(.*\)$')
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
315 let completion = {}
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
316 let completion['word'] = parts[1]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
317 let completion['menu'] = parts[2]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
318 let completion['info'] = parts[0]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
319 let completions += [completion]
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
320 endfor
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
321 return completions
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
322 endif
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
323 endfun
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
324
73fe8baea242 updated for version 7.2a
vimboss
parents: 1121
diff changeset
325 setlocal omnifunc=DebCompleteBugs
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 848
diff changeset
326
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
327 " }}}
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
328
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 481
diff changeset
329 " vim: set foldmethod=marker: