OXIESEC PANEL
- Current Dir:
/
/
usr
/
share
/
vim
/
vim80
/
ftplugin
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:13:33 AM
rwxr-xr-x
📄
README.txt
869 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
a2ps.vim
470 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
aap.vim
716 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
abap.vim
800 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
abaqus.vim
3.31 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
ada.vim
6.26 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
alsaconf.vim
438 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ant.vim
1.31 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
arch.vim
431 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
art.vim
410 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
aspvbs.vim
1.87 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
automake.vim
337 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
awk.vim
411 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
bdf.vim
449 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
bst.vim
333 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
btm.vim
316 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
bzl.vim
2.99 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
c.vim
1.92 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
calendar.vim
462 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
cdrdaoconf.vim
383 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ch.vim
472 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
changelog.vim
8.68 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
clojure.vim
3.74 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
cmake.vim
359 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
cobol.vim
9.24 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
conf.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
config.vim
1.24 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
context.vim
4.26 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
cpp.vim
288 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
crm.vim
414 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
cs.vim
802 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
csc.vim
734 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
csh.vim
1.59 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
css.vim
528 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
cucumber.vim
5 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
cvsrc.vim
399 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
debchangelog.vim
11.27 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
debcontrol.vim
1.84 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
denyhosts.vim
383 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dictconf.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dictdconf.vim
435 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
diff.vim
355 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dircolors.vim
431 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
docbk.vim
530 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dockerfile.vim
356 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dosbatch.vim
777 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dosini.vim
458 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dtd.vim
1.1 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
dtrace.vim
1.12 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
eiffel.vim
3.99 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
elinks.vim
436 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
erlang.vim
1.77 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
eruby.vim
3.09 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
eterm.vim
470 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
falcon.vim
1.31 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
fetchmail.vim
428 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
flexwiki.vim
1.83 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
fortran.vim
4.58 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
framescript.vim
780 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
fvwm.vim
390 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
gdb.vim
293 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
git.vim
1.32 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
gitcommit.vim
2.18 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
gitconfig.vim
376 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
gitrebase.vim
1.42 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
gitsendemail.vim
157 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
go.vim
365 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
gpg.vim
433 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
gprof.vim
939 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
groovy.vim
343 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
group.vim
425 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
grub.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
haml.vim
1.84 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
hamster.vim
1.88 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
haskell.vim
445 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
help.vim
442 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
hgcommit.vim
363 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
hog.vim
1.36 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
hostconf.vim
383 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
hostsaccess.vim
436 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
html.vim
1.59 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
htmldjango.vim
331 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
indent.vim
454 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
initex.vim
1005 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ishd.vim
1.23 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
j.vim
3.31 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
java.vim
1.65 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
javascript.vim
1.02 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
jproperties.vim
321 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
json.vim
360 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
jsp.vim
1.96 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
kconfig.vim
703 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
kwt.vim
851 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ld.vim
470 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
less.vim
502 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
lftp.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
libao.vim
440 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
limits.vim
436 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
liquid.vim
1.85 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
lisp.vim
769 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
logcheck.vim
500 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
loginaccess.vim
442 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
logindefs.vim
440 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
logtalk.dict
1.75 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
logtalk.vim
401 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
lprolog.vim
1.25 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
lua.vim
973 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
m4.vim
426 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
mail.vim
1.08 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
mailaliases.vim
383 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
mailcap.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
make.vim
935 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
man.vim
5.51 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
manconf.vim
444 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
markdown.vim
1.15 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
matlab.vim
754 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
mf.vim
3.17 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
modconf.vim
477 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
mp.vim
3.63 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
mplayerconf.vim
472 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
mrxvtrc.vim
798 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
msmessages.vim
1.11 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
muttrc.vim
467 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
nanorc.vim
447 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
neomuttrc.vim
532 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
netrc.vim
428 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
nsis.vim
1.29 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
objc.vim
296 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ocaml.vim
22.5 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
occam.vim
1.27 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
pamconf.vim
433 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
pascal.vim
667 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
passwd.vim
424 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
pdf.vim
2.55 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
perl.vim
2.78 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
perl6.vim
2.47 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
php.vim
2.75 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
pinfo.vim
435 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
plaintex.vim
1.12 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
postscr.vim
1006 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
procmail.vim
479 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
prolog.vim
440 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
protocols.vim
457 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
pyrex.vim
766 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
python.vim
4.62 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
qf.vim
459 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
quake.vim
439 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
r.vim
858 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
racc.vim
449 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
readline.vim
438 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
registry.vim
740 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
reva.vim
709 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
rhelp.vim
738 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
rmd.vim
1.45 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rnc.vim
431 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
rnoweb.vim
1.01 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rpl.vim
620 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
rrst.vim
1.08 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rst.vim
456 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ruby.vim
16.61 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rust.vim
6.42 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sass.vim
607 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
sbt.vim
347 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
scala.vim
1.12 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
scheme.vim
1.57 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
screen.vim
436 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
scss.vim
239 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
sensors.vim
455 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
services.vim
452 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
setserial.vim
439 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
sgml.vim
1.18 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sh.vim
1.17 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sieve.vim
469 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
slpconf.vim
477 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
slpreg.vim
476 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
slpspi.vim
467 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
spec.vim
5.71 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sql.vim
21.11 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sshconfig.vim
441 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
sudoers.vim
438 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
svg.vim
1.17 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sysctl.vim
453 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
systemd.vim
158 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
systemverilog.vim
239 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
tcl.vim
1002 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
tcsh.vim
1.18 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
terminfo.vim
430 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
tex.vim
1.6 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
text.vim
433 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
tmux.vim
292 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
treetop.vim
416 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
tt2html.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
udevconf.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
udevperm.vim
432 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
udevrules.vim
426 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
updatedb.vim
443 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
vb.vim
1.86 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
verilog.vim
1.93 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
vhdl.vim
3.42 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
vim.vim
3.14 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
vroom.vim
924 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xdefaults.vim
481 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xf86conf.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xhtml.vim
1.99 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
xinetd.vim
476 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xml.vim
1.87 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
xmodmap.vim
434 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xs.vim
465 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xsd.vim
1.14 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
xslt.vim
539 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
yaml.vim
464 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
zimbu.vim
5.26 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
zsh.vim
818 bytes
04/18/2023 09:20:34 AM
rw-r--r--
Editing: debchangelog.vim
Close
" Vim filetype plugin file (GUI menu, folding and completion) " Language: Debian Changelog " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> " Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de> " Stefano Zacchiroli <zack@debian.org> " Last Change: 2014-01-31 " License: Vim License " URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim " Bug completion requires apt-listbugs installed for Debian packages or " python-launchpadlib installed for Ubuntu packages if exists("b:did_ftplugin") finish endif let b:did_ftplugin=1 " {{{1 Local settings (do on every load) if exists("g:debchangelog_fold_enable") setlocal foldmethod=expr setlocal foldexpr=DebGetChangelogFold(v:lnum) setlocal foldtext=DebChangelogFoldText() endif " Debian changelogs are not supposed to have any other text width, " so the user cannot override this setting setlocal tw=78 setlocal comments=f:* " Clean unloading let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<" " }}}1 if exists("g:did_changelog_ftplugin") finish endif " Don't load another plugin (this is global) let g:did_changelog_ftplugin = 1 " {{{1 GUI menu " Helper functions returning various data. " Returns full name, either from $DEBFULLNAME or debianfullname. " TODO Is there a way to determine name from anywhere else? function <SID>FullName() if exists("$DEBFULLNAME") return $DEBFULLNAME elseif exists("g:debianfullname") return g:debianfullname else return "Your Name" endif endfunction " Returns email address, from $DEBEMAIL, $EMAIL or debianemail. function <SID>Email() if exists("$DEBEMAIL") return $DEBEMAIL elseif exists("$EMAIL") return $EMAIL elseif exists("g:debianemail") return g:debianemail else return "your@email.address" endif endfunction " Returns date in RFC822 format. function <SID>Date() let savelang = v:lc_time execute "language time C" let dateandtime = strftime("%a, %d %b %Y %X %z") execute "language time " . savelang return dateandtime endfunction function <SID>WarnIfNotUnfinalised() if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1 echohl WarningMsg echo "The entry has not been unfinalised before editing." echohl None return 1 endif return 0 endfunction function <SID>Finalised() let savelinenum = line(".") normal 1G call search("^ -- ") if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1 let returnvalue = 1 else let returnvalue = 0 endif execute savelinenum return returnvalue endfunction " These functions implement the menus function NewVersion() " The new entry is unfinalised and shall be changed amenu disable Changelog.New\ Version amenu enable Changelog.Add\ Entry amenu enable Changelog.Close\ Bug amenu enable Changelog.Set\ Distribution amenu enable Changelog.Set\ Urgency amenu disable Changelog.Unfinalise amenu enable Changelog.Finalise call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', '')) call append(1, "") call append(2, "") call append(3, " -- ") call append(4, "") call Urgency("low") normal 1G0 call search(")") normal h normal call setline(1, substitute(getline(1), '-\$\$', '-', '')) if exists("g:debchangelog_fold_enable") foldopen endif call AddEntry() endfunction function AddEntry() normal 1G call search("^ -- ") normal kk call append(".", " * ") normal jjj let warn=<SID>WarnIfNotUnfinalised() normal kk if warn echohl MoreMsg call input("Hit ENTER") echohl None endif startinsert! endfunction function CloseBug() normal 1G call search("^ -- ") let warn=<SID>WarnIfNotUnfinalised() normal kk call append(".", " * (closes: #" . input("Bug number to close: ") . ")") normal j^ll startinsert endfunction function Distribution(dist) call setline(1, substitute(getline(1), ') *\%(UNRELEASED\|\l\+\);', ") " . a:dist . ";", "")) endfunction function Urgency(urg) call setline(1, substitute(getline(1), "urgency=.*$", "urgency=" . a:urg, "")) endfunction function <SID>UnfinaliseMenu() " This means the entry shall be changed amenu disable Changelog.New\ Version amenu enable Changelog.Add\ Entry amenu enable Changelog.Close\ Bug amenu enable Changelog.Set\ Distribution amenu enable Changelog.Set\ Urgency amenu disable Changelog.Unfinalise amenu enable Changelog.Finalise endfunction function Unfinalise() call <SID>UnfinaliseMenu() normal 1G call search("^ -- ") call setline(".", " -- ") endfunction function <SID>FinaliseMenu() " This means the entry should not be changed anymore amenu enable Changelog.New\ Version amenu disable Changelog.Add\ Entry amenu disable Changelog.Close\ Bug amenu disable Changelog.Set\ Distribution amenu disable Changelog.Set\ Urgency amenu enable Changelog.Unfinalise amenu disable Changelog.Finalise endfunction function Finalise() call <SID>FinaliseMenu() normal 1G call search("^ -- ") call setline(".", " -- " . <SID>FullName() . " <" . <SID>Email() . "> " . <SID>Date()) endfunction function <SID>MakeMenu() amenu &Changelog.&New\ Version :call NewVersion()<CR> amenu Changelog.&Add\ Entry :call AddEntry()<CR> amenu Changelog.&Close\ Bug :call CloseBug()<CR> menu Changelog.-sep- <nul> amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable")<CR> amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen")<CR> amenu Changelog.Set\ Distribution.&stable :call Distribution("stable")<CR> menu Changelog.Set\ Distribution.-sep- <nul> amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable")<CR> amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable")<CR> amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen")<CR> amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable")<CR> amenu Changelog.Set\ &Urgency.&low :call Urgency("low")<CR> amenu Changelog.Set\ Urgency.&medium :call Urgency("medium")<CR> amenu Changelog.Set\ Urgency.&high :call Urgency("high")<CR> menu Changelog.-sep- <nul> amenu Changelog.U&nfinalise :call Unfinalise()<CR> amenu Changelog.&Finalise :call Finalise()<CR> if <SID>Finalised() call <SID>FinaliseMenu() else call <SID>UnfinaliseMenu() endif endfunction augroup changelogMenu au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif au BufLeave * if &filetype == "debchangelog" | silent! aunmenu Changelog | endif augroup END " }}} " {{{1 folding " look for an author name in the [zonestart zoneend] lines searching backward function! s:getAuthor(zonestart, zoneend) let linepos = a:zoneend while linepos >= a:zonestart let line = getline(linepos) if line =~ '^ --' return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '') endif let linepos -= 1 endwhile return '[unknown]' endfunction " Look for a package source name searching backward from the givenline and " returns it. Return the empty string if the package name can't be found function! DebGetPkgSrcName(lineno) let lineidx = a:lineno let pkgname = '' while lineidx > 0 let curline = getline(lineidx) if curline =~ '^\S' let pkgname = matchlist(curline, '^\(\S\+\).*$')[1] break endif let lineidx = lineidx - 1 endwhile return pkgname endfunction function! DebChangelogFoldText() if v:folddashes == '-' " changelog entry fold return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' ' endif return foldtext() endfunction function! DebGetChangelogFold(lnum) let line = getline(a:lnum) if line =~ '^\w\+' return '>1' " beginning of a changelog entry endif if line =~ '^\s\+\[.*\]' return '>2' " beginning of an author-specific chunk endif if line =~ '^ --' return '1' endif return '=' endfunction if exists("g:debchangelog_fold_enable") silent! foldopen! " unfold the entry the cursor is on (usually the first one) endif " }}} " {{{1 omnicompletion for Closes: # if !exists('g:debchangelog_listbugs_severities') let g:debchangelog_listbugs_severities = 'critical,grave,serious,important,normal,minor,wishlist' endif fun! DebCompleteBugs(findstart, base) if a:findstart let line = getline('.') " try to detect whether this is closes: or lp: let g:debchangelog_complete_mode = 'debbugs' let try_colidx = col('.') - 1 let colidx = -1 " default to no-completion-possible while try_colidx > 0 && line[try_colidx - 1] =~ '\s\|\d\|#\|,\|:' let try_colidx = try_colidx - 1 if line[try_colidx] == '#' && colidx == -1 " found hash, where we complete from: let colidx = try_colidx elseif line[try_colidx] == ':' if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~ '\clp:' let g:debchangelog_complete_mode = 'lp' endif break endif endwhile return colidx else " return matches: let bug_lines = [] if g:debchangelog_complete_mode == 'lp' if ! has('python') echoerr 'vim must be built with Python support to use LP bug completion' return endif let pkgsrc = DebGetPkgSrcName(line('.')) python << EOF import vim try: from launchpadlib.launchpad import Launchpad from lazr.restfulclient.errors import HTTPError # login anonymously lp = Launchpad.login_anonymously('debchangelog.vim', 'production') ubuntu = lp.distributions['ubuntu'] try: sp = ubuntu.getSourcePackage(name=vim.eval('pkgsrc')) status = ('New', 'Incomplete', 'Confirmed', 'Triaged', 'In Progress', 'Fix Committed') tasklist = sp.searchTasks(status=status, order_by='id') liststr = '[' for task in tasklist: bug = task.bug liststr += "'#%d - %s'," % (bug.id, bug.title.replace('\'', '\'\'')) liststr += ']' vim.command('silent let bug_lines = %s' % liststr.encode('utf-8')) except HTTPError: pass except ImportError: vim.command('echoerr \'python-launchpadlib >= 1.5.4 needs to be installed to use Launchpad bug completion\'') EOF else if ! filereadable('/usr/sbin/apt-listbugs') echoerr 'apt-listbugs not found, you should install it to use Closes bug completion' return endif let pkgsrc = DebGetPkgSrcName(line('.')) let listbugs_output = system('/usr/sbin/apt-listbugs -s ' . g:debchangelog_listbugs_severities . ' list ' . pkgsrc . ' | grep "^ #" 2> /dev/null') let bug_lines = split(listbugs_output, '\n') endif let completions = [] for line in bug_lines let parts = matchlist(line, '^\s*\(#\S\+\)\s*-\s*\(.*\)$') " filter only those which match a:base: if parts[1] !~ "^" . a:base continue endif let completion = {} let completion['word'] = parts[1] let completion['menu'] = parts[2] let completion['info'] = parts[0] let completions += [completion] endfor return completions endif endfun setlocal omnifunc=DebCompleteBugs " }}} " vim: set foldmethod=marker: