/usr/share/vim/vim80/ftplugin
NameSizeModeActions
a2ps.vim4700644editdlrm
aap.vim7160644editdlrm
abap.vim8000644editdlrm
abaqus.vim33910644editdlrm
ada.vim64080644editdlrm
alsaconf.vim4380644editdlrm
ant.vim13410644editdlrm
arch.vim4310644editdlrm
art.vim4100644editdlrm
aspvbs.vim19160644editdlrm
automake.vim3370644editdlrm
awk.vim4110644editdlrm
bdf.vim4490644editdlrm
bst.vim3330644editdlrm
btm.vim3160644editdlrm
bzl.vim30630644editdlrm
c.vim19670644editdlrm
calendar.vim4620644editdlrm
cdrdaoconf.vim3830644editdlrm
ch.vim4720644editdlrm
changelog.vim88910644editdlrm
chicken.vim16630644editdlrm
clojure.vim38330644editdlrm
cmake.vim3590644editdlrm
cobol.vim94580644editdlrm
conf.vim4340644editdlrm
config.vim12740644editdlrm
context.vim43640644editdlrm
cpp.vim2880644editdlrm
crm.vim4140644editdlrm
cs.vim8020644editdlrm
csc.vim7340644editdlrm
csh.vim16330644editdlrm
css.vim5280644editdlrm
cucumber.vim51870644editdlrm
cvsrc.vim3990644editdlrm
debchangelog.vim114950644editdlrm
debcontrol.vim18400644editdlrm
denyhosts.vim3830644editdlrm
dictconf.vim4340644editdlrm
dictdconf.vim4350644editdlrm
diff.vim3550644editdlrm
dircolors.vim4310644editdlrm
docbk.vim5300644editdlrm
dockerfile.vim3560644editdlrm
dosbatch.vim7770644editdlrm
dosini.vim4580644editdlrm
dtd.vim11230644editdlrm
dtrace.vim11510644editdlrm
eiffel.vim40880644editdlrm
elinks.vim4360644editdlrm
erlang.vim18110644editdlrm
eruby.vim31650644editdlrm
eterm.vim4700644editdlrm
falcon.vim13440644editdlrm
fetchmail.vim4280644editdlrm
flexwiki.vim18760644editdlrm
fortran.vim46920644editdlrm
framescript.vim7800644editdlrm
fvwm.vim3900644editdlrm
gdb.vim2930644editdlrm
git.vim13500644editdlrm
gitcommit.vim22360644editdlrm
gitconfig.vim3760644editdlrm
gitrebase.vim14580644editdlrm
gitsendemail.vim1570644editdlrm
go.vim3650644editdlrm
gpg.vim4330644editdlrm
gprof.vim9390644editdlrm
groovy.vim3430644editdlrm
group.vim4250644editdlrm
grub.vim4340644editdlrm
haml.vim18870644editdlrm
hamster.vim19200644editdlrm
haskell.vim4450644editdlrm
help.vim4420644editdlrm
hgcommit.vim3630644editdlrm
hog.vim13940644editdlrm
hostconf.vim3830644editdlrm
hostsaccess.vim4360644editdlrm
html.vim16250644editdlrm
htmldjango.vim3310644editdlrm
indent.vim4540644editdlrm
initex.vim10050644editdlrm
ishd.vim12640644editdlrm
j.vim33940644editdlrm
java.vim16860644editdlrm
javascript.vim10470644editdlrm
jproperties.vim3210644editdlrm
json.vim3600644editdlrm
jsp.vim20110644editdlrm
kconfig.vim7030644editdlrm
kwt.vim8510644editdlrm
ld.vim4700644editdlrm
less.vim5020644editdlrm
lftp.vim4340644editdlrm
libao.vim4400644editdlrm
limits.vim4360644editdlrm
liquid.vim18970644editdlrm
lisp.vim7690644editdlrm
logcheck.vim5000644editdlrm
loginaccess.vim4420644editdlrm
logindefs.vim4400644editdlrm
logtalk.dict17900644editdlrm
logtalk.vim4010644editdlrm
lprolog.vim12790644editdlrm
lua.vim9730644editdlrm
m4.vim4260644editdlrm
mail.vim11070644editdlrm
mailaliases.vim3830644editdlrm
mailcap.vim4340644editdlrm
make.vim9350644editdlrm
man.vim56460644editdlrm
manconf.vim4440644editdlrm
markdown.vim11770644editdlrm
matlab.vim7540644editdlrm
mf.vim32490644editdlrm
modconf.vim4770644editdlrm
mp.vim37120644editdlrm
mplayerconf.vim4720644editdlrm
mrxvtrc.vim7980644editdlrm
msmessages.vim11410644editdlrm
muttrc.vim4670644editdlrm
nanorc.vim4470644editdlrm
neomuttrc.vim5320644editdlrm
netrc.vim4280644editdlrm
nsis.vim13230644editdlrm
objc.vim2960644editdlrm
ocaml.vim230410644editdlrm
occam.vim12970644editdlrm
pamconf.vim4330644editdlrm
pascal.vim6670644editdlrm
passwd.vim4240644editdlrm
pdf.vim26130644editdlrm
perl.vim28500644editdlrm
perl6.vim25290644editdlrm
php.vim28130644editdlrm
pinfo.vim4350644editdlrm
plaintex.vim11500644editdlrm
postscr.vim10060644editdlrm
procmail.vim4790644editdlrm
prolog.vim4400644editdlrm
protocols.vim4570644editdlrm
pyrex.vim7660644editdlrm
python.vim55630644editdlrm
qf.vim4590644editdlrm
quake.vim4390644editdlrm
r.vim8580644editdlrm
racc.vim4490644editdlrm
readline.vim4380644editdlrm
README.txt8690644editdlrm
registry.vim7400644editdlrm
reva.vim7090644editdlrm
rhelp.vim7380644editdlrm
rmd.vim14830644editdlrm
rnc.vim4310644editdlrm
rnoweb.vim10370644editdlrm
rpl.vim6200644editdlrm
rrst.vim11030644editdlrm
rst.vim4560644editdlrm
ruby.vim170080644editdlrm
rust.vim65740644editdlrm
sass.vim6070644editdlrm
sbt.vim3470644editdlrm
scala.vim11510644editdlrm
scheme.vim13940644editdlrm
screen.vim4360644editdlrm
scss.vim2390644editdlrm
sensors.vim4550644editdlrm
services.vim4520644editdlrm
setserial.vim4390644editdlrm
sgml.vim12100644editdlrm
sh.vim12020644editdlrm
sieve.vim4690644editdlrm
slpconf.vim4770644editdlrm
slpreg.vim4760644editdlrm
slpspi.vim4670644editdlrm
spec.vim58640644editdlrm
sql.vim216150644editdlrm
sshconfig.vim4410644editdlrm
sudoers.vim4380644editdlrm
svg.vim12000644editdlrm
sysctl.vim4530644editdlrm
systemd.vim1580644editdlrm
systemverilog.vim2390644editdlrm
tcl.vim10020644editdlrm
tcsh.vim12070644editdlrm
terminfo.vim4300644editdlrm
tex.vim16410644editdlrm
text.vim4330644editdlrm
tmux.vim2920644editdlrm
treetop.vim4160644editdlrm
tt2html.vim4340644editdlrm
udevconf.vim4340644editdlrm
udevperm.vim4320644editdlrm
udevrules.vim4260644editdlrm
updatedb.vim4430644editdlrm
vb.vim19070644editdlrm
verilog.vim19770644editdlrm
vhdl.vim34970644editdlrm
vim.vim32120644editdlrm
vroom.vim9240644editdlrm
xdefaults.vim4810644editdlrm
xf86conf.vim4340644editdlrm
xhtml.vim20360644editdlrm
xinetd.vim4760644editdlrm
xml.vim19110644editdlrm
xmodmap.vim4340644editdlrm
xs.vim4650644editdlrm
xsd.vim11710644editdlrm
xslt.vim5390644editdlrm
yaml.vim4640644editdlrm
zimbu.vim53890644editdlrm
zsh.vim8180644editdlrm
Edit: /usr/share/vim/vim80/ftplugin/debchangelog.vim (11495B)
" Vim filetype plugin file (GUI menu, folding and completion) " Language: Debian Changelog " Maintainer: Debian Vim Maintainers " Former Maintainers: Michael Piefel " Stefano Zacchiroli " Last Change: 2018-01-06 " License: Vim License " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/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 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 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 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 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 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=WarnIfNotUnfinalised() normal kk if warn echohl MoreMsg call input("Hit ENTER") echohl None endif startinsert! endfunction function CloseBug() normal 1G call search("^ -- ") let warn=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 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 UnfinaliseMenu() normal 1G call search("^ -- ") call setline(".", " -- ") endfunction function 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 FinaliseMenu() normal 1G call search("^ -- ") call setline(".", " -- " . FullName() . " <" . Email() . "> " . Date()) endfunction function MakeMenu() amenu &Changelog.&New\ Version :call NewVersion() amenu Changelog.&Add\ Entry :call AddEntry() amenu Changelog.&Close\ Bug :call CloseBug() menu Changelog.-sep- amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable") amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen") amenu Changelog.Set\ Distribution.&stable :call Distribution("stable") menu Changelog.Set\ Distribution.-sep- amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable") amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable") amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen") amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable") amenu Changelog.Set\ &Urgency.&low :call Urgency("low") amenu Changelog.Set\ Urgency.&medium :call Urgency("medium") amenu Changelog.Set\ Urgency.&high :call Urgency("high") menu Changelog.-sep- amenu Changelog.U&nfinalise :call Unfinalise() amenu Changelog.&Finalise :call Finalise() if Finalised() call FinaliseMenu() else call UnfinaliseMenu() endif endfunction augroup changelogMenu au BufEnter * if &filetype == "debchangelog" | call 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: