Mercurial > vim
changeset 1118:2b8ff9e3c520
updated for version 7.1a
author | vimboss |
---|---|
date | Sat, 05 May 2007 17:10:09 +0000 |
parents | a13e4b242735 |
children | dd9842fb18dd |
files | Makefile README_os390.txt runtime/autoload/vimball.vim runtime/doc/index.txt runtime/doc/message.txt runtime/doc/os_mint.txt runtime/doc/tabpage.txt runtime/doc/usr_45.txt runtime/doc/version4.txt runtime/doc/vi_diff.txt runtime/indent/javascript.vim runtime/makemenu.vim runtime/plugin/netrwPlugin.vim runtime/syntax/fstab.vim runtime/syntax/perl.vim runtime/syntax/sisu.vim src/proto/digraph.pro src/proto/gui_athena.pro src/proto/os_mswin.pro src/vim.def |
diffstat | 20 files changed, 609 insertions(+), 301 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ first: # Some make programs use the last target for the $@ default; put the other # targets separately to always let $@ expand to "first" by default. -all install uninstall tools config configure proto depend lint tags types test testclean clean distclean: +all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean: @echo "Starting make in the src directory." @echo "If there are problems, cd to the src directory and run make there" cd src && $(MAKE) $@ @@ -69,7 +69,7 @@ all install uninstall tools config confi # Before creating an archive first delete all backup files, *.orig, etc. MAJOR = 7 -MINOR = 0 +MINOR = 1a # Uncomment this line if the Win32s version is to be included. DOSBIN_S = dosbin_s @@ -81,14 +81,14 @@ DOSBIN_S = dosbin_s # runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a # minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def. # - Correct included_patches[] in src/version.c. -# - Compile Vim with GTK, Perl, Python, TCL, Ruby, MZscheme, Cscope and "huge" -# features. Exclude workshop and SNiFF. +# - Compile Vim with GTK, Perl, Python, TCL, Ruby, MZscheme (if you can make it +# work), Cscope and "huge" features. Exclude workshop and SNiFF. # - With these features: "make proto" (requires cproto and Motif installed; # ignore warnings for missing include files, fix problems for syntax errors). # - With these features: "make depend" (works best with gcc). # - "make lint" and check the output (ignore GTK warnings). # - Enable the efence library in "src/Makefile" and run "make test". May -# require disabling Python to avoid trouble with threads. +# require disabling Python and Ruby to avoid trouble with threads. # - Check for missing entries in runtime/makemenu.vim (with checkmenu script). # - Check for missing options in runtime/optwin.vim et al. (with check.vim). # - Do "make menu" to update the runtime/synmenu.vim file. @@ -128,25 +128,26 @@ DOSBIN_S = dosbin_s # - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and # "uninstald32.exe". # Win32 console version: -# - Set environment for Visual C++ Toolkit 2003: "msvcsetup.bat" +# - Set environment for Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the +# paths when necessary). # - "nmake -f Make_mvc.mak" # - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output. # - Rename the executables to "vimw32.exe", "xxdw32.exe". -# - Rename ObjC/vim.pdb to vimw32.pdb. +# - Rename vim.pdb to vimw32.pdb. # - When building the Win32s version later, delete vimrun.exe, install.exe and # uninstal.exe. Otherwise rename executables to installw32.exe and # uninstalw32.exe. # Win32 GUI version: # - "nmake -f Make_mvc.mak GUI=yes. # - move "gvim.exe" to here (otherwise the OLE version will overwrite it). -# - Move ObjG/gvim.pdb to here. -# - Delete vimrun.exe, install.exe and uninstall.exe. +# - Move gvim.pdb to here. +# - Delete vimrun.exe, install.exe and uninstal.exe. # - Copy "GvimExt/gvimext.dll" to here. # Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME: # - Run src/bigvim.bat ("nmake -f Make_mvc.mak GUI=yes OLE=yes IME=yes ...) # - Rename "gvim.exe" to "gvim_ole.exe". -# - Rename ObjGOLYTR/gvim.pdb to "gvim_ole.pdb". -# - Delete install.exe and uninstall.exe. +# - Rename gvim.pdb to "gvim_ole.pdb". +# - Delete install.exe and uninstal.exe. # - If building the Win32s version delete vimrun.exe. # Win32s GUI version: # - Set environment for Visual C++ 4.1 (requires a new console window)
--- a/README_os390.txt +++ b/README_os390.txt @@ -1,4 +1,4 @@ -README_os_390.txt for version 7.0 of Vim: Vi IMproved. +README_os_390.txt for version 7.1a of Vim: Vi IMproved. Welcome to the OS/390 Unix port of VIM.
--- a/runtime/autoload/vimball.vim +++ b/runtime/autoload/vimball.vim @@ -1,7 +1,7 @@ -" vimball : construct a file containing both paths and files -" Author: Charles E. Campbell, Jr. -" Date: May 01, 2006 -" Version: 13 +" vimball.vim : construct a file containing both paths and files +" Author: Charles E. Campbell, Jr. +" Date: Jan 03, 2007 +" Version: 21 " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim " Copyright: (c) 2004-2006 by Charles E. Campbell, Jr. " The VIM LICENSE applies to Vimball.vim, and Vimball.txt @@ -11,18 +11,26 @@ " --------------------------------------------------------------------- " Load Once: {{{1 -if &cp || exists("g:loaded_vimball") +if &cp || exists("g:loaded_vimball") || v:version < 700 finish endif let s:keepcpo = &cpo -let g:loaded_vimball = "v13" +let g:loaded_vimball = "v21" set cpo&vim " ===================================================================== +" Constants: {{{1 +if !exists("s:USAGE") + let s:USAGE = 0 + let s:WARNING = 1 + let s:ERROR = 2 +endif + +" ===================================================================== " Functions: {{{1 " --------------------------------------------------------------------- -" MkVimball: creates a vimball given a list of paths to files {{{2 +" vimball#MkVimball: creates a vimball given a list of paths to files {{{2 " Vimball Format: " path " filesize @@ -30,11 +38,24 @@ set cpo&vim " path " filesize " [file] -fun! vimball#MkVimball(line1,line2,writelevel,vimballname) range -" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:vimballname.">") - let vbname= substitute(a:vimballname,'\.[^.]*$','','e').'.vba' +fun! vimball#MkVimball(line1,line2,writelevel,...) range +" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0) + if a:1 =~ '.vim' || a:1 =~ '.txt' + let vbname= substitute(a:1,'\.\a\{3}$','.vba','') + else + let vbname= a:1 + endif + if vbname !~ '\.vba$' + let vbname= vbname.'.vba' + endif +" call Decho("vbname<".vbname.">") + if a:1 =~ '[\/]' + call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes") +" call Dret("MkVimball : vimball name<".a:1."> should not include slashes") + return + endif if !a:writelevel && filereadable(vbname) - echohl Error | echoerr "(MkVimball) file<".vbname."> exists; use ! to insist" | echohl None + call vimball#ShowMesg(s:ERROR,"(MkVimball) file<".vbname."> exists; use ! to insist") " call Dret("MkVimball : file<".vbname."> already exists; use ! to insist") return endif @@ -42,17 +63,13 @@ fun! vimball#MkVimball(line1,line2,write " user option bypass call s:SaveSettings() - " go to vim plugin home - for home in split(&rtp,',') + [''] - if isdirectory(home) | break | endif - endfor - if home == "" - let home= substitute(&rtp,',.*$','','') + if a:0 >= 2 + " allow user to specify where to get the files + let home= expand(a:2) + else + " use first existing directory from rtp + let home= s:VimballHome() endif - if (has("win32") || has("win95") || has("win64") || has("win16")) - let home= substitute(home,'/','\\','ge') - endif -" call Decho("home<".home.">") " save current directory let curdir = getcwd() @@ -68,7 +85,7 @@ fun! vimball#MkVimball(line1,line2,write " call Decho("svfile<".svfile.">") if !filereadable(svfile) - echohl Error | echo "unable to read file<".svfile.">" | echohl None + call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">") call s:ChgDir(curdir) call s:RestoreSettings() " call Dret("MkVimball") @@ -89,9 +106,9 @@ fun! vimball#MkVimball(line1,line2,write call setline(1,'" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.') call setline(2,'UseVimball') call setline(3,'finish') - let lastline= 4 + let lastline= line("$") + 1 endif - call setline(lastline ,svfile) + call setline(lastline ,substitute(svfile,'$',' [[[1','')) call setline(lastline+1,0) " write the file from the tab @@ -134,13 +151,13 @@ fun! vimball#MkVimball(line1,line2,write endfun " --------------------------------------------------------------------- -" Vimball: {{{2 -fun! vimball#Vimball(really) -" call Dfunc("Vimball(really=".a:really.")") +" vimball#Vimball: extract and distribute contents from a vimball {{{2 +fun! vimball#Vimball(really,...) +" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0) if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$' echoerr "(Vimball) The current file does not appear to be a Vimball!" -" call Dret("Vimball") +" call Dret("vimball#Vimball") return endif @@ -149,26 +166,27 @@ fun! vimball#Vimball(really) let curtabnr = tabpagenr() " set up vimball tab +" call Decho("setting up vimball tab") tabnew silent! file Vimball let vbtabnr= tabpagenr() let didhelp= "" " go to vim plugin home - for home in split(&rtp,',') + [''] - if isdirectory(home) | break | endif - endfor - if home == "" - let home= substitute(&rtp,',.*$','','') - endif - if (has("win32") || has("win95") || has("win64") || has("win16")) - let home= substitute(home,'/','\\','ge') + if a:0 > 0 + let home= expand(a:1) + else + let home= s:VimballHome() endif " call Decho("home<".home.">") - " save current directory + " save current directory and remove older same-named vimball, if any let curdir = getcwd() +" call Decho("home<".home.">") +" call Decho("curdir<".curdir.">") + call s:ChgDir(home) + call vimball#RmVimball() let linenr = 4 let filecnt = 0 @@ -186,9 +204,12 @@ fun! vimball#Vimball(really) exe "tabn ".curtabnr " call Decho("linenr=".linenr." line$=".line("$")) while 1 < linenr && linenr < line("$") - let fname = getline(linenr) + let fname = substitute(getline(linenr),'\t\[\[\[1$','','') + let fname = substitute(fname,'\\','/','g') let fsize = getline(linenr+1) let filecnt = filecnt + 1 +" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt) + if a:really echomsg "extracted <".fname.">: ".fsize." lines" else @@ -197,16 +218,30 @@ fun! vimball#Vimball(really) " call Decho("using L#".linenr.": will extract file<".fname.">") " call Decho("using L#".(linenr+1).": fsize=".fsize) + " Allow AsNeeded/ directory to take place of plugin/ directory + " when AsNeeded/filename is filereadable + if fname =~ '\<plugin/' + let anfname= substitute(fname,'\<plugin/','AsNeeded/','') + if filereadable(anfname) +" call Decho("using anfname<".anfname."> instead of <".fname.">") + let fname= anfname + endif + endif + " make directories if they don't exist yet -" call Decho("making directories if they don't exist yet") if a:really - let fnamebuf= fname +" call Decho("making directories if they don't exist yet (fname<".fname.">)") + let fnamebuf= substitute(fname,'\\','/','g') + let dirpath = substitute(home,'\\','/','g') while fnamebuf =~ '/' - let dirname = home."/".substitute(fnamebuf,'/.*$','','e') - let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','e') + let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','') + let dirpath = dirname + let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','') +" call Decho("dirname<".dirname.">") if !isdirectory(dirname) -" call Decho("making <".dirname.">") +" call Decho("making <".dirname.">") call mkdir(dirname) + call s:RecordInVar(home,"rmdir('".dirname."')") endif endwhile endif @@ -233,6 +268,7 @@ fun! vimball#Vimball(really) " call Decho("exe w! ".fnamepath) exe "silent w! ".fnamepath echo "wrote ".fnamepath + call s:RecordInVar(home,"call delete('".fnamepath."')") endif " return to tab with vimball @@ -242,7 +278,7 @@ fun! vimball#Vimball(really) " set up help if its a doc/*.txt file " call Decho("didhelp<".didhelp."> fname<".fname.">") if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.txt$' - let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.txt$','\1','e') + let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.txt$','\1','') " call Decho("didhelp<".didhelp.">") endif @@ -255,7 +291,7 @@ fun! vimball#Vimball(really) " set up help " call Decho("about to set up help: didhelp<".didhelp.">") if didhelp != "" - let htpath= escape(substitute(s:Path(home."/".didhelp,'"'),'"','','ge'),' ') + let htpath= escape(substitute(s:Path(home."/".didhelp,'"'),'"','','g'),' ') " call Decho("exe helptags ".htpath) exe "helptags ".htpath echo "did helptags" @@ -267,6 +303,9 @@ fun! vimball#Vimball(really) let filecnt= filecnt + 1 endwhile + " record actions in <.VimballRecord> + call s:RecordInFile(home) + " restore events, delete tab and buffer exe "tabn ".vbtabnr setlocal nomod bh=wipe @@ -275,7 +314,76 @@ fun! vimball#Vimball(really) call s:RestoreSettings() call s:ChgDir(curdir) -" call Dret("Vimball") +" call Dret("vimball#Vimball") +endfun + +" --------------------------------------------------------------------- +" vimball#RmVimball: remove any files, remove any directories made by any {{{2 +" previous vimball extraction based on a file of the current +" name. +" Usage: RmVimball (assume current file is a vimball; remove) +" RmVimball vimballname +fun! vimball#RmVimball(...) +" call Dfunc("vimball#RmVimball() a:0=".a:0) + if exists("g:vimball_norecord") +" call Dret("vimball#RmVimball : (g:vimball_norecord)") + return + endif + let eikeep= &ei + set ei=all +" call Decho("turned off all events") + + if a:0 == 0 + let curfile= '^'.expand("%:tr") + else + if a:1 =~ '[\/]' + call vimball#ShowMesg(s:USAGE,"RmVimball vimballname [path]") +" call Dret("vimball#RmVimball : suspect a:1<".a:1.">") + return + endif + let curfile= a:1 + endif + if curfile !~ '.vba$' + let curfile= curfile.".vba: " + else + let curfile= curfile.": " + endif + if a:0 >= 2 + let home= expand(a:2) + else + let home= s:VimballHome() + endif + let curdir = getcwd() +" call Decho("home <".home.">") +" call Decho("curfile<".curfile.">") +" call Decho("curdir <".curdir.">") + + call s:ChgDir(home) + if filereadable(".VimballRecord") +" call Decho(".VimballRecord is readable") +" call Decho("curfile<".curfile.">") + keepalt keepjumps 1split + silent! keepalt keepjumps e .VimballRecord + let keepsrch= @/ + if search(curfile,'cw') + let exestring= substitute(getline("."),curfile,'','') +" call Decho("exe ".exestring) + silent! keepalt keepjumps exe exestring + silent! keepalt keepjumps d + else +" call Decho("unable to find <".curfile."> in .VimballRecord") + endif + silent! keepalt keepjumps g/^\s*$/d + silent! keepalt keepjumps wq! + let @/= keepsrch + endif + call s:ChgDir(curdir) + + " restoring events +" call Decho("restoring events") + let &ei= eikeep + +" call Dret("vimball#RmVimball") endfun " --------------------------------------------------------------------- @@ -288,24 +396,59 @@ fun! vimball#Decompress(fname) exe "!gunzip ".a:fname let fname= substitute(a:fname,'\.gz$','','') exe "e ".escape(fname,' \') - call vimball#ShowMesg("Source this file to extract it! (:so %)") + call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") elseif expand("%") =~ '.*\.bz2' && executable("bunzip2") exe "!bunzip2 ".a:fname let fname= substitute(a:fname,'\.bz2$','','') exe "e ".escape(fname,' \') - call vimball#ShowMesg("Source this file to extract it! (:so %)") + call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") elseif expand("%") =~ '.*\.zip' && executable("unzip") exe "!unzip ".a:fname let fname= substitute(a:fname,'\.zip$','','') exe "e ".escape(fname,' \') - call vimball#ShowMesg("Source this file to extract it! (:so %)") + call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") endif + set noma bt=nofile fmr=[[[,]]] fdm=marker " call Dret("Decompress") endfun " --------------------------------------------------------------------- -" ChgDir: change directory (in spite of Windoze) {{{2 +" vimball#ShowMesg: {{{2 +fun! vimball#ShowMesg(level,msg) +" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)") + let rulerkeep = &ruler + let showcmdkeep = &showcmd + set noruler noshowcmd + redraw! + + if &fo =~ '[ta]' + echomsg "***vimball*** " a:msg + else + if a:level == s:WARNING || a:level == s:USAGE + echohl WarningMsg + elseif a:level == s:ERROR + echohl Error + endif + echomsg "***vimball*** " a:msg + echohl None + endif + + if a:level != s:USAGE + call inputsave()|let ok= input("Press <cr> to continue")|call inputrestore() + endif + + let &ruler = rulerkeep + let &showcmd = showcmdkeep + +" call Dret("vimball#ShowMesg") +endfun + +" --------------------------------------------------------------------- +let &cpo= s:keepcpo +unlet s:keepcpo +" ===================================================================== +" s:ChgDir: change directory (in spite of Windoze) {{{2 fun! s:ChgDir(newdir) " call Dfunc("ChgDir(newdir<".a:newdir.">)") if (has("win32") || has("win95") || has("win64") || has("win16")) @@ -317,11 +460,11 @@ fun! s:ChgDir(newdir) endfun " --------------------------------------------------------------------- -" Path: {{{2 +" s:Path: prepend and append quotes, do escaping, as necessary {{{2 fun! s:Path(cmd,quote) " call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">)") if (has("win32") || has("win95") || has("win64") || has("win16")) - let cmdpath= a:quote.substitute(a:cmd,'/','\\','ge').a:quote + let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote else let cmdpath= a:quote.a:cmd.a:quote endif @@ -333,16 +476,98 @@ fun! s:Path(cmd,quote) endfun " --------------------------------------------------------------------- -" vimball#ShowMesg: {{{2 -fun! vimball#ShowMesg(msg) -" call Dfunc("vimball#ShowMesg(msg<".a:msg.">)") - let ich= 1 - echohl WarningMsg | echo a:msg | echohl None - while ich < &ch - echo " " - let ich= ich + 1 - endwhile -" call Dret("vimball#ShowMesg") +" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2 +fun! s:RecordInVar(home,cmd) +" call Dfunc("RecordInVar(home<".a:home."> cmd<".a:cmd.">)") + if a:cmd =~ '^rmdir' +" if !exists("s:recorddir") +" let s:recorddir= substitute(a:cmd,'^rmdir',"call s:Rmdir",'') +" else +" let s:recorddir= s:recorddir."|".substitute(a:cmd,'^rmdir',"call s:Rmdir",'') +" endif +" call Decho("recorddir=".s:recorddir) + elseif !exists("s:recordfile") + let s:recordfile= a:cmd +" call Decho("recordfile=".s:recordfile) + else + let s:recordfile= s:recordfile."|".a:cmd +" call Decho("recordfile=".s:recordfile) + endif +" call Dret("RecordInVar") +endfun + +" --------------------------------------------------------------------- +" s:RecordInFile: {{{2 +fun! s:RecordInFile(home) +" call Dfunc("RecordInFile()") + if exists("g:vimball_norecord") +" call Dret("RecordInFile : (g:vimball_norecord)") + return + endif + + if exists("s:recordfile") || exists("s:recorddir") + let curdir= getcwd() + call s:ChgDir(a:home) + keepalt keepjumps 1split + let cmd= expand("%:tr").": " + silent! keepalt keepjumps e .VimballRecord + $ + if exists("s:recordfile") && exists("s:recorddir") + let cmd= cmd.s:recordfile."|".s:recorddir + elseif exists("s:recorddir") + let cmd= cmd.s:recorddir + elseif exists("s:recordfile") + let cmd= cmd.s:recordfile + else +" call Dret("RecordInFile") + return + endif + keepalt keepjumps put=cmd + silent! keepalt keepjumps g/^\s*$/d + silent! keepalt keepjumps wq! + call s:ChgDir(curdir) + if exists("s:recorddir") |unlet s:recorddir |endif + if exists("s:recordfile")|unlet s:recordfile|endif + else +" call Decho("s:record[file|dir] doesn't exist") + endif + +" call Dret("RecordInFile") +endfun + +" --------------------------------------------------------------------- +" s:Rmdir: {{{2 +"fun! s:Rmdir(dirname) +"" call Dfunc("s:Rmdir(dirname<".a:dirname.">)") +" if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$' +" call system("del ".a:dirname) +" else +" call system("rmdir ".a:dirname) +" endif +"" call Dret("s:Rmdir") +"endfun + +" --------------------------------------------------------------------- +" s:VimballHome: determine/get home directory path (usually from rtp) {{{2 +fun! s:VimballHome() +" call Dfunc("VimballHome()") + if exists("g:vimball_home") + let home= g:vimball_home + else + " go to vim plugin home + for home in split(&rtp,',') + [''] + if isdirectory(home) && filewritable(home) | break | endif + endfor + if home == "" + " just pick the first directory + let home= substitute(&rtp,',.*$','','') + endif + if (has("win32") || has("win95") || has("win64") || has("win16")) + let home= substitute(home,'/','\\','g') + endif + endif +" call Dret("VimballHome <".home.">") + return home endfun " --------------------------------------------------------------------- @@ -360,10 +585,11 @@ fun! s:SaveSettings() let s:ickeep = &ic let s:repkeep = &report let s:vekeep = &ve + let s:lzkeep = &lz if exists("&acd") - set ei=all ve=all noacd nofen noic report=999 nohid + set ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz else - set ei=all ve=all nofen noic report=999 nohid + set ei=all ve=all nofen noic report=999 nohid bt= ma lz endif " call Dret("SaveSettings") endfun @@ -376,28 +602,27 @@ fun! s:RestoreSettings() if exists("&acd") let &acd = s:acdkeep endif - let &ei = s:eikeep let &fen = s:fenkeep let &hidden = s:hidkeep let &ic = s:ickeep + let &lz = s:lzkeep let &report = s:repkeep let &ve = s:vekeep + let &ei = s:eikeep if s:makeep[0] != 0 " restore mark a " call Decho("restore mark-a: makeep=".string(makeep)) call setpos("'a",s:makeep) endif if exists("&acd") - unlet s:regakeep s:acdkeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep + unlet s:regakeep s:acdkeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep else - unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep + unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep endif + set bt=nofile noma " call Dret("RestoreSettings") endfun " --------------------------------------------------------------------- -let &cpo= s:keepcpo -unlet s:keepcpo -" ===================================================================== " Modelines: {{{1 " vim: fdm=marker
--- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 7.0. Last change: 2006 Apr 30 +*index.txt* For Vim version 7.1a. Last change: 2007 May 05 VIM REFERENCE MANUAL by Bram Moolenaar @@ -624,9 +624,10 @@ tag char note action in Normal mo included files that contains the word under the cursor, start searching at beginning of current file -|[p| [p 2 like "P", but adjust indent to current line |[m| [m 1 cursor N times back to start of member function +|[p| [p 2 like "P", but adjust indent to current line +|[s| [s 1 move to the previous misspelled word |[z| [z 1 move to start of open fold |[{| [{ 1 cursor N times back to unmatched '{' |[<MiddleMouse> [<MiddleMouse> 2 same as "[p" @@ -663,9 +664,10 @@ tag char note action in Normal mo included files that contains the word under the cursor, start searching at cursor position -|]p| ]p 2 like "p", but adjust indent to current line |]m| ]m 1 cursor N times forward to end of member function +|]p| ]p 2 like "p", but adjust indent to current line +|]s| ]s 1 move to next misspelled word |]z| ]z 1 move to end of open fold |]}| ]} 1 cursor N times forward to unmatched '}' |]<MiddleMouse> ]<MiddleMouse> 2 same as "]p" @@ -748,6 +750,8 @@ tag char note action in Normal mo |gu| gu{motion} 2 make Nmove text lowercase |gv| gv reselect the previous Visual area |gw| gw{motion} 2 format Nmove text and keep cursor +|netrw-gx| gx execute application for file name under the + cursor (only with |netrw| plugin) |g@| g@{motion} call 'operatorfunc' |g~| g~{motion} 2 swap case for Nmove text |g<Down>| g<Down> 1 same as "gj" @@ -984,7 +988,7 @@ file names, tags, commands etc. as appro {expr} CTRL-\ f - z reserved for extensions CTRL-\ others not used - CTRL-] not used +|c_CTRL-]| CTRL-] trigger abbreviation |c_CTRL-^| CTRL-^ toggle use of |:lmap| mappings |c_CTRL-_| CTRL-_ when 'allowrevins' set: change language (Hebrew, Farsi)
--- a/runtime/doc/message.txt +++ b/runtime/doc/message.txt @@ -1,4 +1,4 @@ -*message.txt* For Vim version 7.0. Last change: 2006 Apr 30 +*message.txt* For Vim version 7.1a. Last change: 2007 Mar 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -25,7 +25,8 @@ for other versions. *g<* The "g<" command can be used to see the last page of previous command output. This is especially useful if you accidentally typed <Space> at the hit-enter -prompt. +prompt. You are then back at the hit-enter prompt and can then scroll further +back. Note: when you stopped the output with "q" at the more prompt only up to that point will be displayed. The previous command output is cleared when another command produces output.
--- a/runtime/doc/os_mint.txt +++ b/runtime/doc/os_mint.txt @@ -1,4 +1,4 @@ -*os_mint.txt* For Vim version 7.0. Last change: 2005 Mar 29 +*os_mint.txt* For Vim version 7.1a. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Jens M. Felderhoff
--- a/runtime/doc/tabpage.txt +++ b/runtime/doc/tabpage.txt @@ -1,4 +1,4 @@ -*tabpage.txt* For Vim version 7.0. Last change: 2006 May 02 +*tabpage.txt* For Vim version 7.1a. Last change: 2007 Mar 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -74,7 +74,8 @@ In the GUI tab pages line you can use th :[count]tab {cmd} *:tab* Execute {cmd} and when it opens a new window open a new tab - page instead. Doesn't work for |:diffsplit| or |:diffpatch|. + page instead. Doesn't work for |:diffsplit|, |:diffpatch|, + |:execute| and |:normal|. When [count] is omitted the tab page appears after the current one. When [count] is specified the new tab page comes after tab page [count]. Use ":0tab cmd" to get the new tab page as @@ -129,23 +130,25 @@ label to switch to that tab page. Click next tab page. |'tabline'| :tabn[ext] *:tabn* *:tabnext* *gt* -gt *CTRL-<PageDown>* *<C-PageDown>* -<C-PageDown> *i_CTRL-<PageDown>* *i_<C-PageDown>* +<C-PageDown> *CTRL-<PageDown>* *<C-PageDown>* +gt *i_CTRL-<PageDown>* *i_<C-PageDown>* Go to the next tab page. Wraps around from the last to the first one. -:tabn[ext] {count} *CTRL-<PageUp>* *<C-PageUp>* -{count}gt *i_CTRL-<PageUp>* *i_<C-PageUp>* -<C-PageUp> Go to tab page {count}. The first tab page has number one. +:tabn[ext] {count} +{count}<C-PageDown> +{count}gt Go to tab page {count}. The first tab page has number one. -:tabp[revious] *:tabp* *:tabprevious* *gT* -:tabN[ext] *:tabN* *:tabNext* +:tabp[revious] *:tabp* *:tabprevious* *gT* *:tabN* +:tabN[ext] *:tabNext* *CTRL-<PageUp>* +<C-PageUp> *<C-PageUp>* *i_CTRL-<PageUp>* *i_<C-PageUp>* gT Go to the previous tab page. Wraps around from the first one to the last one. :tabp[revious] {count} :tabN[ext] {count} +{count}<C-PageUp> {count}gT Go {count} tab pages back. Wraps around from the first one to the last one. @@ -203,7 +206,7 @@ The entries are: pointer. New Tab Open a tab page, editing an empty buffer. It appears to the left of the mouse pointer. - Open Tab... Like "New Tab" and additionaly use a file selector to + Open Tab... Like "New Tab" and additionally use a file selector to select a file to edit. Diff mode works per tab page. You can see the diffs between several files @@ -247,6 +250,10 @@ always. The highlighting of the tab pages line is set with the groups TabLine TabLineSel and TabLineFill. |hl-TabLine| |hl-TabLineSel| |hl-TabLineFill| +A "+" will be shown for a tab page that has a modified window. The number of +windows in a tabpage is also shown. Thus "3+" means three windows and one of +them has a modified buffer. + The 'tabline' option allows you to define your preferred way to tab pages labels. This isn't easy, thus an example will be given here. @@ -254,8 +261,8 @@ For basics see the 'statusline' option. 'tabline' option. Additionally, the |tabpagebuflist()|, |tabpagenr()| and |tabpagewinnr()| functions are useful. -Since the number of tab labels will vary, you need to use an expresion for the -whole option. Something like: > +Since the number of tab labels will vary, you need to use an expression for +the whole option. Something like: > :set tabline=%!MyTabLine() Then define the MyTabLine() function to list all the tab pages labels. A @@ -300,7 +307,7 @@ Now the MyTabLabel() function is called This is just a simplistic example that results in a tab pages line that resembles the default, but without adding a + for a modified buffer or -trunctating the names. You will want to reduce the width of labels in a +truncating the names. You will want to reduce the width of labels in a clever way when there is not enough room. Check the 'columns' option for the space available. @@ -330,7 +337,7 @@ label: > :set guitablabel=%N\ %f An example that resembles the default 'guitablabel': Show the number of -windows in the tab page and a '+' if there is a modifed buffer: > +windows in the tab page and a '+' if there is a modified buffer: > function GuiTabLabel() let label = ''
--- a/runtime/doc/usr_45.txt +++ b/runtime/doc/usr_45.txt @@ -1,4 +1,4 @@ -*usr_45.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*usr_45.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar
--- a/runtime/doc/version4.txt +++ b/runtime/doc/version4.txt @@ -1,4 +1,4 @@ -*version4.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*version4.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Bram Moolenaar
--- a/runtime/doc/vi_diff.txt +++ b/runtime/doc/vi_diff.txt @@ -1,4 +1,4 @@ -*vi_diff.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*vi_diff.txt* For Vim version 7.1a. Last change: 2006 Nov 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -25,7 +25,7 @@ 7. POSIX compliance |posix-compliance| ============================================================================== 1. Simulated command *simulated-command* -This command is in Vi, but Vim only simuates it: +This command is in Vi, but Vim only simulates it: *:o* *:op* *:open* :[range]o[pen] Works like |:visual|: end Ex mode. @@ -953,7 +953,7 @@ Only Vim is able to accept options in be ============================================================================== 7. POSIX compliance *posix* *posix-compliance* -In 2005 the POSIX test suite was run to check the compatiblity of Vim. Most +In 2005 the POSIX test suite was run to check the compatibility of Vim. Most of the test was executed properly. There are the few things where Vim is not POSIX compliant, even when run in Vi compatibility mode.
new file mode 100644 --- /dev/null +++ b/runtime/indent/javascript.vim @@ -0,0 +1,15 @@ +" Vim indent file +" Language: Javascript +" Maintainer: None! Wanna improve this? +" Last Change: 2007 Jan 22 + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +" C indenting is not too bad. +setlocal cindent + +let b:undo_indent = "setl cin<"
--- a/runtime/makemenu.vim +++ b/runtime/makemenu.vim @@ -1,6 +1,6 @@ " Script to define the syntax menu in synmenu.vim " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2006 Apr 27 +" Last Change: 2007 May 04 " This is used by "make menu" in the src directory. edit <sfile>:p:h/synmenu.vim @@ -87,6 +87,7 @@ SynMenu AB.ASN\.1:asn SynMenu AB.Asterisk\ config:asterisk SynMenu AB.Asterisk\ voicemail\ config:asteriskvm SynMenu AB.Atlas:atlas +SynMenu AB.AutoIt:autoit SynMenu AB.Automake:automake SynMenu AB.Avenue:ave SynMenu AB.Awk:awk @@ -94,7 +95,11 @@ SynMenu AB.AYacc:ayacc SynMenu AB.B:b SynMenu AB.Baan:baan -SynMenu AB.BASIC:basic +SynMenu AB.Basic.FreeBasic:freebasic +SynMenu AB.Basic.IBasic:ibasic +SynMenu AB.Basic.QBasic:basic +SynMenu AB.Basic.Visual\ Basic:vb +SynMenu AB.Bazaar\ commit\ file:bzr SynMenu AB.BC\ calculator:bc SynMenu AB.BDF\ font:bdf SynMenu AB.BibTeX.Bibliography\ database:bib @@ -122,11 +127,11 @@ SynMenu C.Clean:clean SynMenu C.Clever:cl SynMenu C.Clipper:clipper SynMenu C.Cmake:cmake +SynMenu C.Cmusrc:cmusrc SynMenu C.Cold\ Fusion:cf SynMenu C.Config.Cfg\ Config\ file:cfg SynMenu C.Config.Generic\ Config\ file:conf SynMenu C.Config.Configure\.in:config -SynMenu C.ConTeXt:context SynMenu C.CRM114:crm SynMenu C.Ctrl-H:ctrlh SynMenu C.Cobol:cobol @@ -209,6 +214,7 @@ SynMenu FG.Groff:groff SynMenu FG.Groovy:groovy SynMenu FG.GTKrc:gtkrc +SynMenu HIJK.Hamster:hamster SynMenu HIJK.Haskell.Haskell:haskell SynMenu HIJK.Haskell.Haskell-c2hs:chaskell SynMenu HIJK.Haskell.Haskell-literate:lhaskell @@ -230,6 +236,7 @@ SynMenu HIJK.IDL\Microsoft\ IDL:msidl SynMenu HIJK.Indent\ profile:indent SynMenu HIJK.Inform:inform SynMenu HIJK.Informix\ 4GL:fgl +SynMenu HIJK.Initng:initng SynMenu HIJK.Inittab:inittab SynMenu HIJK.Inno\ setup:iss SynMenu HIJK.InstallShield\ script:ishd @@ -290,6 +297,7 @@ SynMenu L-Ma.Matlab:matlab SynMenu L-Ma.Maxima:maxima SynMenu Me-NO.MEL\ (for\ Maya):mel +SynMenu Me-NO.Messages\ (/var/log):messages SynMenu Me-NO.Metafont:mf SynMenu Me-NO.MetaPost:mp SynMenu Me-NO.MGL:mgl @@ -357,6 +365,7 @@ SynMenu PQ.Povray.Povray\ scene\ descr:p SynMenu PQ.Povray.Povray\ configuration:povini SynMenu PQ.Prescribe\ (Kyocera):prescribe SynMenu PQ.Printcap:pcap +SynMenu PQ.Privoxy:privoxy SynMenu PQ.Procmail:procmail SynMenu PQ.Product\ Spec\ File:psf SynMenu PQ.Progress:progress @@ -463,6 +472,7 @@ SynMenu Sh-S.Stata.SMCL:smcl SynMenu Sh-S.Stata.Stata:stata SynMenu Sh-S.Stored\ Procedures:stp SynMenu Sh-S.Strace:strace +SynMenu Sh-S.Streaming\ descriptor\ file:sd SynMenu Sh-S.Subversion\ commit:svn SynMenu Sh-S.Sudoers:sudoers SynMenu Sh-S.Sysctl\.conf:sysctl @@ -477,7 +487,9 @@ SynMenu TUV.TealInfo:tli SynMenu TUV.Telix\ Salt:tsalt SynMenu TUV.Termcap/Printcap:ptcap SynMenu TUV.Terminfo:terminfo -SynMenu TUV.TeX.TeX:tex +SynMenu TUV.TeX.TeX/LaTeX:tex +SynMenu TUV.TeX.plain\ TeX:plaintex +SynMenu TUV.TeX.ConTeXt:context SynMenu TUV.TeX.TeX\ configuration:texmf SynMenu TUV.TeX.Texinfo:texinfo SynMenu TUV.TF\ mud\ client:tf
--- a/runtime/plugin/netrwPlugin.vim +++ b/runtime/plugin/netrwPlugin.vim @@ -1,7 +1,7 @@ " netrwPlugin.vim: Handles file transfer and remote directory listing across a network -" PLUGIN PORTION -" Date: Oct 27, 2005 -" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> +" PLUGIN SECTION +" Date: Jan 05, 2007 +" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 " Permission is hereby granted to use and distribute this code, @@ -19,9 +19,11 @@ " --------------------------------------------------------------------- " Load Once: {{{1 -if exists("g:loaded_netrw") +if &cp || exists("g:loaded_netrwPlugin") finish endif +let g:loaded_netrwPlugin = 1 +let s:keepcpo = &cpo if v:version < 700 echohl WarningMsg | echo "***netrw*** you need vim version 7.0 for this version of netrw" | echohl None finish @@ -36,6 +38,9 @@ set cpo&vim augroup FileExplorer au! au BufEnter * silent! call s:LocalBrowse(expand("<amatch>")) + if has("win32") || has("win95") || has("win64") || has("win16") + au BufEnter .* silent! call s:LocalBrowse(expand("<amatch>")) + endif augroup END " Network Browsing Reading Writing: {{{2 @@ -51,6 +56,11 @@ augroup Network au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau FileReadPre ".expand("<amatch>")|exe 'Nread "' .expand("<amatch>").'"'|exe "silent doau FileReadPost ".expand("<amatch>") au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe 'Nwrite "' .expand("<amatch>").'"'|exe "silent doau BufWritePost ".expand("<amatch>") au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau FileWritePre ".expand("<amatch>")|exe "'[,']".'Nwrite "' .expand("<amatch>").'"'|exe "silent doau FileWritePost ".expand("<amatch>") + try + au SourceCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe 'Nsource "'.expand("<amatch>").'"' + catch /^Vim\%((\a\+)\)\=:E216/ + au SourcePre ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe 'Nsource "'.expand("<amatch>").'"' + endtry augroup END " Commands: :Nread, :Nwrite, :NetUserPass {{{2 @@ -58,23 +68,27 @@ com! -count=1 -nargs=* Nread call netrw com! -range=% -nargs=* Nwrite call netrw#NetSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetRestorePosn() com! -nargs=* NetUserPass call NetUserPass(<f-args>) com! -nargs=+ Ncopy call netrw#NetObtain(<f-args>) +com! -nargs=* Nsource call netrw#NetSavePosn()<bar>call netrw#NetSource(<f-args>)<bar>call netrw#NetRestorePosn() " Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2 -com! -nargs=? -bar -bang -count=0 Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>) -com! -nargs=? -bar -bang -count=0 Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>) -com! -nargs=? -bar -bang -count=0 Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>) -com! -nargs=? -bar -bang -count=0 Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>) -com! -nargs=? -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>) -com! -nargs=? -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>) +com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>) +com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>) +com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>) +com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>) +com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>) +com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>) +com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>) " Commands: NetrwSettings {{{2 com! -nargs=0 NetrwSettings :call netrwSettings#NetrwSettings() " Maps: -if !hasmapto('<Plug>NetrwBrowseX') - nmap <unique> gx <Plug>NetrwBrowseX +if !exists("g:netrw_nogx") && maparg('g','n') == "" + if !hasmapto('<Plug>NetrwBrowseX') + nmap <unique> gx <Plug>NetrwBrowseX + endif + nno <silent> <Plug>NetrwBrowseX :call netrw#NetBrowseX(expand("<cWORD>"),0)<cr> endif -nno <silent> <Plug>NetrwBrowseX :call netrw#NetBrowseX(expand("<cWORD>"),0)<cr> " --------------------------------------------------------------------- " LocalBrowse: {{{2 @@ -82,8 +96,17 @@ fun! s:LocalBrowse(dirname) " unfortunate interaction -- debugging calls can't be used here; " the BufEnter event causes triggering when attempts to write to " the DBG buffer are made. - if isdirectory(a:dirname) - silent! call netrw#DirBrowse(a:dirname) +" echomsg "dirname<".a:dirname.">" + if has("amiga") + " The check against '' is made for the Amiga, where the empty + " string is the current directory and not checking would break + " things such as the help command. + if a:dirname != '' && isdirectory(a:dirname) + silent! call netrw#LocalBrowseCheck(a:dirname) + endif + elseif isdirectory(a:dirname) +" echomsg "dirname<".dirname."> isdir" + silent! call netrw#LocalBrowseCheck(a:dirname) endif " not a directory, ignore it endfun
--- a/runtime/syntax/fstab.vim +++ b/runtime/syntax/fstab.vim @@ -1,14 +1,18 @@ " Vim syntax file " Language: fstab file -" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz> -" Original Maintainer: Radu Dineiu <littledragon@altern.org> -" License: This file can be redistribued and/or modified under the same terms -" as Vim itself. -" URL: http://trific.ath.cx/Ftp/vim/syntax/fstab.vim -" Last Change: 2006-04-16 - -" Options: let fstab_unknown_fs_errors = 1 to highlight unknown filesystems -" as errors +" Maintaner: Radu Dineiu <radu.dineiu@gmail.com> +" URL: http://ld.yi.org/vim/fstab.vim +" Last Change: 2007 Apr 24 +" Version: 0.91 +" +" Credits: +" David Necas (Yeti) <yeti@physics.muni.cz> +" Stefano Zacchiroli <zack@debian.org> +" Georgi Georgiev <chutz@gg3.net> +" +" Options: +" let fstab_unknown_fs_errors = 1 +" highlight unknown filesystems as errors if version < 600 syntax clear @@ -19,24 +23,27 @@ endif " General syn cluster fsGeneralCluster contains=fsComment syn match fsComment /\s*#.*/ -syn match fsOperator /[,=]/ +syn match fsOperator /[,=:]/ " Device syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError -syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:]\|^\w\{-}\ze\W\)/ contained +syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts sysfs usbfs syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel +syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID +syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/ syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator +syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator " Mount Point syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError -syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@]\|\s\+\zs\w\{-}\ze\s\)/ contained +syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained syn keyword fsMountPointKeyword contained none swap " Type syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown syn match fsTypeUnknown /\s\+\zs\w\+/ contained -syn keyword fsTypeKeyword contained adfs affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext3 fdesc hfs hpfs iso9660 jffs jffs2 jfs kernfs linprocfs mfs minix msdos ncpfs nfs none none ntfs null nwfs ovlfs portal proc procfs qnx4 reiserfs romfs shm smbfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs +syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs " Options " ------- @@ -48,7 +55,7 @@ syn match fsOptionsString /[a-zA-Z0-9_-] syn keyword fsOptionsYesNo yes no syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck syn keyword fsOptionsSize 512 1024 2048 -syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodiratime noexec nomand nosuid nosymfollow nouser owner rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user[s] xx +syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand nosuid nosymfollow nouser owner rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user users xx syn match fsOptionsGeneral /_netdev/ " Options: adfs @@ -101,6 +108,9 @@ syn match fsOptionsKeywords contained /\ syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber +" Options: ffs +syn keyword fsOptionsKeyWords contained softdep + " Options: hpfs syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase syn keyword fsOptionsHpfsCase contained lower asis @@ -197,9 +207,10 @@ if version >= 508 || !exists("did_config HiLink fsTypeKeyword Type HiLink fsDeviceKeyword Identifier HiLink fsDeviceLabel String + HiLink fsDeviceUUID String HiLink fsFreqPassNumber Number - if exists('fstab_unknown_fs_errors') + if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1 HiLink fsTypeUnknown Error endif HiLink fsDeviceError Error
--- a/runtime/syntax/perl.vim +++ b/runtime/syntax/perl.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Perl -" Maintainer: Nick Hibma <n_hibma@van-laarhoven.org> -" Last Change: 2005 October 18 +" Maintainer: Nick Hibma <nick@van-laarhoven.org> +" Last Change: 2006 November 23 " Location: http://www.van-laarhoven.org/vim/syntax/perl.vim " " Please download most recent version first before mailing @@ -17,14 +17,16 @@ " perl syntax highlighting, with defaults given: " " unlet perl_include_pod -" unlet perl_no_scope_in_variables -" unlet perl_no_extended_vars +" unlet perl_want_scope_in_variables +" unlet perl_extended_vars " unlet perl_string_as_statement " unlet perl_no_sync_on_sub " unlet perl_no_sync_on_global_var " let perl_sync_dist = 100 " unlet perl_fold " unlet perl_fold_blocks +" let perl_nofold_packages = 1 +" let perl_nofold_subs = 1 " Remove any old syntax stuff that was loaded (5.x) or quit when a syntax file " was already loaded (6.x). @@ -56,9 +58,9 @@ if exists("perl_include_pod") else " Use only the bare minimum of rules if exists("perl_fold") - syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Spell fold + syn region perlPOD start="^=[a-z]" end="^=cut" fold else - syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Spell + syn region perlPOD start="^=[a-z]" end="^=cut" endif endif @@ -87,8 +89,8 @@ else endif syn keyword perlOperator defined undef and or not bless ref if exists("perl_fold") - " if BEGIN/END is a keyword the perlBEGINENDFold does not work - syn match perlControl "\<BEGIN\|END\|CHECK\|INIT\>" contained + " if BEGIN/END would be a keyword the perlBEGINENDFold does not work + syn match perlControl "\<BEGIN\|CHECK\|INIT\|END\>" contained else syn keyword perlControl BEGIN END CHECK INIT endif @@ -108,8 +110,8 @@ syn keyword perlStatementFiles chdir ch syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>" syn keyword perlStatementFlow caller die dump eval exit wantarray syn keyword perlStatementInclude require -syn match perlStatementInclude "\<\(use\|no\)\s\+\(\(attributes\|autouse\|base\|big\(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\|fields\|filetest\|if\|integer\|less\|lib\|locale\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\(::shared\)\=\|utf8\|vars\|vmsish\|warnings\(::register\)\=\)\>\)\=" - +syn match perlStatementInclude "\<\(use\|no\)\s\+\(\(integer\|strict\|lib\|sigtrap\|subs\|vars\|warnings\|utf8\|byte\|base\|fields\)\>\)\=" +syn keyword perlStatementScope import syn keyword perlStatementProc alarm exec fork getpgrp getppid getpriority kill pipe setpgrp setpriority sleep system times wait waitpid syn keyword perlStatementSocket accept bind connect getpeername getsockname getsockopt listen recv send setsockopt shutdown socket socketpair syn keyword perlStatementIPC msgctl msgget msgrcv msgsnd semctl semget semop shmctl shmget shmread shmwrite @@ -118,11 +120,8 @@ syn keyword perlStatementPword getpwuid syn keyword perlStatementTime gmtime localtime time times syn keyword perlStatementMisc warn formline reset scalar delete prototype lock -if !exists("perl_no_semi_keywords") - syn keyword perlStatementScope import - syn keyword perlStatementNew new - syn keyword perlStatementCarp carp confess croak -endif +syn keyword perlStatementNew new + syn keyword perlTodo TODO TBD FIXME XXX contained " Perl Identifiers. @@ -137,34 +136,39 @@ syn keyword perlTodo TODO TBD FIXME XX " Special variables first ($^A, ...) and ($|, $', ...) syn match perlVarPlain "$^[ADEFHILMOPSTWX]\=" -syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~?@$<>(-]" -syn match perlVarPlain "$\(0\|[1-9]\d*\)" +syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]" +syn match perlVarPlain "$\(0\|[1-9][0-9]*\)" " Same as above, but avoids confusion in $::foo (equivalent to $main::foo) syn match perlVarPlain "$:[^:]" " These variables are not recognized within matches. syn match perlVarNotInMatches "$[|)]" -" This variable is not recognized within matches delimited by '/'. +" This variable is not recognized within matches delimited by m//. syn match perlVarSlash "$/" -" This variable is not recognized within matches delimited by '!'. -syn match perlVarBang "$!" " And plain identifiers syn match perlPackageRef "\(\h\w*\)\=\(::\|'\)\I"me=e-1 contained +" To highlight packages in variables as a scope reference - i.e. in $pack::var, +" pack:: is a scope, just set "perl_want_scope_in_variables" +" If you *want* complex things like @{${"foo"}} to be processed, +" just set the variable "perl_extended_vars"... + " FIXME value between {} should be marked as string. is treated as such by Perl. " At the moment it is marked as something greyish instead of read. Probably todo " with transparency. Or maybe we should handle the bare word in that case. or make it into -if !exists("perl_no_scope_in_variables") - syn match perlVarPlain "\\\=\([@%$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod +if exists("perl_want_scope_in_variables") + syn match perlVarPlain "\\\=\([@$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod + syn match perlVarPlain2 "\\\=%\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlFunctionName "\\\=&\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember else - syn match perlVarPlain "\\\=\([@%$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod + syn match perlVarPlain "\\\=\([@$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod + syn match perlVarPlain2 "\\\=%\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlFunctionName "\\\=&\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember endif -if !exists("perl_no_extended_vars") - syn cluster perlExpr contains=perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBang,perlVarBlock,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ +if exists("perl_extended_vars") + syn cluster perlExpr contains=perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ syn region perlVarBlock matchgroup=perlVarPlain start="\($#\|[@%$]\)\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember syn region perlVarBlock matchgroup=perlVarPlain start="&\$*{" skip="\\}" end="}" contains=@perlExpr syn match perlVarPlain "\\\=\(\$#\|[@%&$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember @@ -179,18 +183,17 @@ endif syn match perlFiledescRead "[<]\h\w\+[>]" syn match perlFiledescStatementComma "(\=\s*\u\w*\s*,"me=e-1 transparent contained contains=perlFiledescStatement -syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^,[:space:]]"me=e-1 transparent contained contains=perlFiledescStatement +syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement syn match perlFiledescStatement "\u\w*" contained " Special characters in strings and matches syn match perlSpecialString "\\\(\d\+\|[xX]\x\+\|c\u\|.\)" contained syn match perlSpecialStringU "\\['\\]" contained -syn match perlSpecialMatch "{\d\+\(,\d*\)\=}" contained +syn match perlSpecialMatch "{\d\+\(,\(\d\+\)\=\)\=}" contained syn match perlSpecialMatch "\[\(\]\|-\)\=[^\[\]]*\(\[\|\-\)\=\]" contained syn match perlSpecialMatch "[+*()?.]" contained syn match perlSpecialMatch "(?[#:=!]" contained -syn match perlSpecialMatch "(?<[=!]" contained syn match perlSpecialMatch "(?[imsx]\+)" contained " FIXME the line below does not work. It should mark end of line and " begin of line as perlSpecial. @@ -207,13 +210,13 @@ syn match perlNotEmptyLine "^\s\+$" con " Variable interpolation " " These items are interpolated inside "" strings and similar constructs. -syn cluster perlInterpDQ contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBang,perlVarBlock +syn cluster perlInterpDQ contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock " These items are interpolated inside '' strings and similar constructs. syn cluster perlInterpSQ contains=perlSpecialStringU " These items are interpolated inside m// matches and s/// substitutions. syn cluster perlInterpSlash contains=perlSpecialString,perlSpecialMatch,perlVarPlain,perlVarBlock,perlSpecialBEOM " These items are interpolated inside m## matches and s### substitutions. -syn cluster perlInterpMatch contains=@perlInterpSlash,perlVarSlash,perlVarBang +syn cluster perlInterpMatch contains=@perlInterpSlash,perlVarSlash " Shell commands syn region perlShellCommand matchgroup=perlMatchStartEnd start="`" end="`" contains=@perlInterpDQ @@ -239,7 +242,7 @@ syn region perlMatch matchgroup=perlMatc " Below some hacks to recognise the // variant. This is virtually impossible to catch in all " cases as the / is used in so many other ways, but these should be the most obvious ones. -syn region perlMatch matchgroup=perlMatchStartEnd start=+^split /+lc=5 start=+[^$@%&]\<split /+lc=6 start=+^while /+lc=5 start=+[^$@%&]while /+lc=6 start=+^if /+lc=2 start=+[^$@%&]if /+lc=3 start=+[!=]\~\s*/+lc=2 start=+[(~]/+lc=1 start=+\.\./+lc=2 start=+\s/[^=[:space:][:digit:]$@%&]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash +syn region perlMatch matchgroup=perlMatchStartEnd start=+^split /+lc=5 start=+[^$@%]\<split /+lc=6 start=+^while /+lc=5 start=+[^$@%]\<while /+lc=6 start=+^if /+lc=2 start=+[^$@%]\<if /+lc=3 start=+[!=]\~\s*/+lc=2 start=+[(~]/+lc=1 start=+\.\./+lc=2 start=+\s/[^= \t0-9$@%]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash " Substitutions @@ -258,7 +261,7 @@ syn region perlSubstitutionHash matchgr syn region perlSubstitutionBracket matchgroup=perlMatchStartEnd start=+\[+ end=+\][ecgimosx]*+ contained contains=@perlInterpDQ syn region perlSubstitutionCurly matchgroup=perlMatchStartEnd start=+{+ end=+}[ecgimosx]*+ contained contains=@perlInterpDQ -" A special case for s!!!x which allows for comments and extra whitespace in the pattern +" A special case for m!!x which allows for comments and extra whitespace in the pattern syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s!+ end=+!+me=e-1 contains=@perlInterpSlash,perlComment nextgroup=perlSubstitutionPling syn region perlSubstitutionPling matchgroup=perlMatchStartEnd start=+!+ end=+![ecgimosx]*+ contained contains=@perlInterpDQ @@ -285,24 +288,24 @@ syn match perlString "\<\I\i*\s*=>"me=e " Strings and q, qq, qw and qr expressions -" Parentheses in qq() -syn region perlParens start=+(+ end=+)+ contained transparent contains=perlParens,@perlStringSQ +" Brackets in qq() +syn region perlBrackets start=+(+ end=+)+ contained transparent contains=perlBrackets,@perlStringSQ -syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@Spell,@perlInterpSQ -syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@Spell,@perlInterpDQ +syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ +syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q#+ end=+#+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q|+ end=+|+ contains=@perlInterpSQ -syn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ end=+)+ contains=@perlInterpSQ,perlParens +syn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ end=+)+ contains=@perlInterpSQ,perlBrackets syn region perlQQ matchgroup=perlStringStartEnd start=+\<q{+ end=+}+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q/+ end=+/+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]#+ end=+#+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]|+ end=+|+ contains=@perlInterpDQ -syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx](+ end=+)+ contains=@perlInterpDQ,perlParens +syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx](+ end=+)+ contains=@perlInterpDQ,perlBrackets syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]{+ end=+}+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]/+ end=+/+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw#+ end=+#+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw|+ end=+|+ contains=@perlInterpSQ -syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ end=+)+ contains=@perlInterpSQ,perlParens +syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ end=+)+ contains=@perlInterpSQ,perlBrackets syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw{+ end=+}+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw/+ end=+/+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr#+ end=+#[imosx]*+ contains=@perlInterpMatch @@ -317,18 +320,18 @@ if version >= 600 " XXX Any statements after the identifier are in perlString colour (i.e. " 'if $a' in 'print <<EOF if $a'). if exists("perl_fold") - syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ fold + syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(.\{-}\)"+ end=+^\z1$+ contains=@perlInterpDQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(.\{-}\)'+ end=+^\z1$+ contains=@perlInterpSQ fold - syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold - syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold + syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold + syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold syn region perlAutoload matchgroup=perlStringStartEnd start=+<<['"]\z(END_\(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)['"]+ end=+^\z1$+ contains=ALL fold else - syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ + syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(.\{-}\)"+ end=+^\z1$+ contains=@perlInterpDQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(.\{-}\)'+ end=+^\z1$+ contains=@perlInterpSQ - syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine - syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine + syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine + syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\(['"]\|\)\z(END_\(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL endif else @@ -358,20 +361,19 @@ syn region perlFunction start="\s*\<sub syn keyword perlStatementSub sub contained syn match perlFunctionPrototype "([^)]*)" contained -if !exists("perl_no_scope_in_variables") +if exists("perl_want_scope_in_variables") syn match perlFunctionPRef "\h\w*::" contained syn match perlFunctionName "\h\w*[^:]" contained else syn match perlFunctionName "\h[[:alnum:]_:]*" contained endif - " All other # are comments, except ^#! -syn match perlComment "#.*" contains=@Spell,perlTodo +syn match perlComment "#.*" contains=perlTodo syn match perlSharpBang "^#!.*" " Formats -syn region perlFormat matchgroup=perlStatementIOFunc start="^\s*\<format\s\+\k\+\s*=\s*$"rs=s+6 end="^\s*\.\s*$" contains=perlFormatName,perlFormatField,perlVarPlain +syn region perlFormat matchgroup=perlStatementIOFunc start="^\s*\<format\s\+\k\+\s*=\s*$"rs=s+6 end="^\s*\.\s*$" contains=perlFormatName,perlFormatField,perlVarPlain,perlVarPlain2 syn match perlFormatName "format\s\+\k\+\s*="lc=7,me=e-1 contained syn match perlFormatField "[@^][|<>~]\+\(\.\.\.\)\=" contained syn match perlFormatField "[@^]#[#.]*" contained @@ -391,13 +393,17 @@ endif " Folding if exists("perl_fold") - syn region perlPackageFold start="^package \S\+;$" end="^1;$" end="\n\+package"me=s-1 transparent fold keepend - syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*$" end="^\z1}\s*\#.*$" transparent fold keepend - syn region perlBEGINENDFold start="^\z(\s*\)\<\(BEGIN\|END\|CHECK\|INIT\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend + if !exists("perl_nofold_packages") + syn region perlPackageFold start="^package \S\+;\s*\(#.*\)\=$" end="^1;\s*\(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend + endif + if !exists("perl_nofold_subs") + syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\(#.*\)\=$" transparent fold keepend + syn region perlSubFold start="^\z(\s*\)\<\(BEGIN\|END\|CHECK\|INIT\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend + endif if exists("perl_fold_blocks") - syn region perlIfFold start="^\z(\s*\)\(if\|unless\|for\|while\|until\)\s*(.*)\(\s*{\)\=\s*$" start="^\z(\s*\)foreach\s*\(\(my\|our\)\=\s*\S\+\s*\)\=(.*)\(\s*{\)\=\s*$" start="\z(\s*\)else\s*{\s*$" end="^\z1}\s*;\=$" transparent fold keepend - syn region perlIfFold start="^\z(\s*\)do\(\s*{\)\=\s*$" end="^\z1}\s*while" end="^\z1}\s*;\=$" transparent fold keepend + syn region perlBlockFold start="^\z(\s*\)\(if\|elsif\|unless\|for\|while\|until\)\s*(.*)\(\s*{\)\=\s*\(#.*\)\=$" start="^\z(\s*\)foreach\s*\(\(my\|our\)\=\s*\S\+\s*\)\=(.*)\(\s*{\)\=\s*\(#.*\)\=$" end="^\z1}\s*;\=\(#.*\)\=$" transparent fold keepend + syn region perlBlockFold start="^\z(\s*\)\(do\|else\)\(\s*{\)\=\s*\(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\(#.*\)\=$" transparent fold keepend endif setlocal foldmethod=syntax @@ -444,13 +450,13 @@ if version >= 508 || !exists("did_perl_s HiLink perlList perlStatement HiLink perlMisc perlStatement HiLink perlVarPlain perlIdentifier + HiLink perlVarPlain2 perlIdentifier HiLink perlFiledescRead perlIdentifier HiLink perlFiledescStatement perlIdentifier HiLink perlVarSimpleMember perlIdentifier HiLink perlVarSimpleMemberName perlString HiLink perlVarNotInMatches perlIdentifier HiLink perlVarSlash perlIdentifier - HiLink perlVarBang perlIdentifier HiLink perlQQ perlString if version >= 600 HiLink perlHereDoc perlString @@ -460,7 +466,7 @@ if version >= 508 || !exists("did_perl_s HiLink perlUntilEOFSQ perlString HiLink perlUntilEmptyDQ perlString HiLink perlUntilEmptySQ perlString - HiLink perlUntilEOF perlString + HiLink perlUntilEOF perlString endif HiLink perlStringUnexpanded perlString HiLink perlSubstitutionSQ perlString @@ -496,7 +502,7 @@ if version >= 508 || !exists("did_perl_s HiLink perlStatementFiles perlStatement HiLink perlStatementFlow perlStatement HiLink perlStatementScope perlStatement - HiLink perlStatementInclude perlInclude + HiLink perlStatementInclude perlStatement HiLink perlStatementProc perlStatement HiLink perlStatementSocket perlStatement HiLink perlStatementIPC perlStatement @@ -517,9 +523,9 @@ if version >= 508 || !exists("did_perl_s HiLink perlSpecialMatch perlSpecial HiLink perlSpecialBEOM perlSpecial HiLink perlDATA perlComment - - HiLink perlParens Error - + + HiLink perlBrackets Error + " Possible errors HiLink perlNotEmptyLine Error HiLink perlElseIfError Error
--- a/runtime/syntax/sisu.vim +++ b/runtime/syntax/sisu.vim @@ -2,6 +2,8 @@ " SiSU Maintainer: Ralph Amissah <ralph@amissah.com> " SiSU Markup: SiSU (sisu-0.38) " (originally looked at Ruby Vim by Mirko Nasato) +" Last Update: 2006 Jul 22 + if version < 600 syntax clear elseif exists("b:current_syntax") @@ -54,7 +56,8 @@ syn region sisu_content_alt contains=sis syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\(alt\|group\|poem\){" end="^}\(alt\|group\|poem\)" syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="^code{" end="^}code" "% endnotes -syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\~{" end="}\~" skip="\n" +syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n" +syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n" syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n\n" "% images syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}\(\(https\?://\|\.\./\)\S\+\|image\)" oneline
--- a/src/proto/digraph.pro +++ b/src/proto/digraph.pro @@ -1,9 +1,9 @@ /* digraph.c */ -extern int do_digraph __ARGS((int c)); -extern int get_digraph __ARGS((int cmdline)); -extern int getdigraph __ARGS((int char1, int char2, int meta)); -extern void putdigraph __ARGS((char_u *str)); -extern void listdigraphs __ARGS((void)); -extern char_u *keymap_init __ARGS((void)); -extern void ex_loadkeymap __ARGS((exarg_T *eap)); +int do_digraph __ARGS((int c)); +int get_digraph __ARGS((int cmdline)); +int getdigraph __ARGS((int char1, int char2, int meta)); +void putdigraph __ARGS((char_u *str)); +void listdigraphs __ARGS((void)); +char_u *keymap_init __ARGS((void)); +void ex_loadkeymap __ARGS((exarg_T *eap)); /* vim: set ft=c : */
--- a/src/proto/gui_athena.pro +++ b/src/proto/gui_athena.pro @@ -1,31 +1,31 @@ /* gui_athena.c */ -extern void gui_x11_create_widgets __ARGS((void)); -extern void gui_x11_destroy_widgets __ARGS((void)); -extern void gui_mch_set_toolbar_pos __ARGS((int x, int y, int w, int h)); -extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h)); -extern void gui_x11_set_back_color __ARGS((void)); -extern void gui_mch_enable_menu __ARGS((int flag)); -extern void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h)); -extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx)); -extern void gui_mch_new_menu_font __ARGS((void)); -extern void gui_mch_new_tooltip_font __ARGS((void)); -extern void gui_mch_new_tooltip_colors __ARGS((void)); -extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx)); -extern void gui_mch_show_toolbar __ARGS((int showit)); -extern int gui_mch_compute_toolbar_height __ARGS((void)); -extern void gui_mch_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp)); -extern void gui_mch_toggle_tearoffs __ARGS((int enable)); -extern void gui_mch_new_menu_colors __ARGS((void)); -extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu)); -extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu)); -extern void gui_mch_def_colors __ARGS((void)); -extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max)); -extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h)); -extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag)); -extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient)); -extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb)); -extern void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb)); -extern Window gui_x11_get_wid __ARGS((void)); -extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter)); -extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield)); +void gui_x11_create_widgets __ARGS((void)); +void gui_x11_destroy_widgets __ARGS((void)); +void gui_mch_set_toolbar_pos __ARGS((int x, int y, int w, int h)); +void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h)); +void gui_x11_set_back_color __ARGS((void)); +void gui_mch_enable_menu __ARGS((int flag)); +void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h)); +void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx)); +void gui_mch_new_menu_font __ARGS((void)); +void gui_mch_new_tooltip_font __ARGS((void)); +void gui_mch_new_tooltip_colors __ARGS((void)); +void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx)); +void gui_mch_show_toolbar __ARGS((int showit)); +int gui_mch_compute_toolbar_height __ARGS((void)); +void gui_mch_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp)); +void gui_mch_toggle_tearoffs __ARGS((int enable)); +void gui_mch_new_menu_colors __ARGS((void)); +void gui_mch_destroy_menu __ARGS((vimmenu_T *menu)); +void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu)); +void gui_mch_def_colors __ARGS((void)); +void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max)); +void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h)); +void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag)); +void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient)); +void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb)); +void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb)); +Window gui_x11_get_wid __ARGS((void)); +char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter)); +int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield)); /* vim: set ft=c : */
--- a/src/proto/os_mswin.pro +++ b/src/proto/os_mswin.pro @@ -1,63 +1,63 @@ /* os_mswin.c */ -extern void mch_exit __ARGS((int r)); -extern void mch_early_init __ARGS((void)); -extern int mch_input_isatty __ARGS((void)); -extern void mch_settitle __ARGS((char_u *title, char_u *icon)); -extern void mch_restore_title __ARGS((int which)); -extern int mch_can_restore_title __ARGS((void)); -extern int mch_can_restore_icon __ARGS((void)); -extern int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force)); -extern int mch_isFullName __ARGS((char_u *fname)); -extern void slash_adjust __ARGS((char_u *p)); -extern int vim_stat __ARGS((const char *name, struct stat *stp)); -extern void mch_settmode __ARGS((int tmode)); -extern int mch_get_shellsize __ARGS((void)); -extern void mch_set_shellsize __ARGS((void)); -extern void mch_new_shellsize __ARGS((void)); -extern void mch_suspend __ARGS((void)); -extern void display_errors __ARGS((void)); -extern int mch_has_exp_wildcard __ARGS((char_u *p)); -extern int mch_has_wildcard __ARGS((char_u *p)); -extern int mch_chdir __ARGS((char *path)); -extern int can_end_termcap_mode __ARGS((int give_msg)); -extern int mch_screenmode __ARGS((char_u *arg)); -extern int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result)); -extern int utf8_to_ucs2 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp)); -extern int ucs2_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr)); -extern void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen)); -extern void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); -extern int clip_mch_own_selection __ARGS((VimClipboard *cbd)); -extern void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); -extern short_u *enc_to_ucs2 __ARGS((char_u *str, int *lenp)); -extern char_u *ucs2_to_enc __ARGS((short_u *str, int *lenp)); -extern void clip_mch_request_selection __ARGS((VimClipboard *cbd)); -extern void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); -extern void clip_mch_set_selection __ARGS((VimClipboard *cbd)); -extern void DumpPutS __ARGS((const char *psz)); -extern int mch_get_winpos __ARGS((int *x, int *y)); -extern void mch_set_winpos __ARGS((int x, int y)); -extern void mch_print_cleanup __ARGS((void)); -extern int mch_print_init __ARGS((prt_settings_T *psettings, char_u *jobname, int forceit)); -extern int mch_print_begin __ARGS((prt_settings_T *psettings)); -extern void mch_print_end __ARGS((prt_settings_T *psettings)); -extern int mch_print_end_page __ARGS((void)); -extern int mch_print_begin_page __ARGS((char_u *msg)); -extern int mch_print_blank_page __ARGS((void)); -extern void mch_print_start_line __ARGS((int margin, int page_line)); -extern int mch_print_text_out __ARGS((char_u *p, int len)); -extern void mch_print_set_font __ARGS((int iBold, int iItalic, int iUnderline)); -extern void mch_print_set_bg __ARGS((long_u bgcol)); -extern void mch_print_set_fg __ARGS((long_u fgcol)); -extern char_u *mch_resolve_shortcut __ARGS((char_u *fname)); -extern void win32_set_foreground __ARGS((void)); -extern void serverInitMessaging __ARGS((void)); -extern void serverSetName __ARGS((char_u *name)); -extern char_u *serverGetVimNames __ARGS((void)); -extern int serverSendReply __ARGS((char_u *name, char_u *reply)); -extern int serverSendToVim __ARGS((char_u *name, char_u *cmd, char_u **result, void *ptarget, int asExpr, int silent)); -extern void serverForeground __ARGS((char_u *name)); -extern char_u *serverGetReply __ARGS((HWND server, int *expr_res, int remove, int wait)); -extern void serverProcessPendingMessages __ARGS((void)); -extern char *charset_id2name __ARGS((int id)); -extern int get_logfont __ARGS((LOGFONT *lf, char_u *name, HDC printer_dc, int verbose)); +void mch_exit __ARGS((int r)); +void mch_early_init __ARGS((void)); +int mch_input_isatty __ARGS((void)); +void mch_settitle __ARGS((char_u *title, char_u *icon)); +void mch_restore_title __ARGS((int which)); +int mch_can_restore_title __ARGS((void)); +int mch_can_restore_icon __ARGS((void)); +int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force)); +int mch_isFullName __ARGS((char_u *fname)); +void slash_adjust __ARGS((char_u *p)); +int vim_stat __ARGS((const char *name, struct stat *stp)); +void mch_settmode __ARGS((int tmode)); +int mch_get_shellsize __ARGS((void)); +void mch_set_shellsize __ARGS((void)); +void mch_new_shellsize __ARGS((void)); +void mch_suspend __ARGS((void)); +void display_errors __ARGS((void)); +int mch_has_exp_wildcard __ARGS((char_u *p)); +int mch_has_wildcard __ARGS((char_u *p)); +int mch_chdir __ARGS((char *path)); +int can_end_termcap_mode __ARGS((int give_msg)); +int mch_screenmode __ARGS((char_u *arg)); +int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result)); +int utf8_to_ucs2 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp)); +int ucs2_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr)); +void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen)); +void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); +int clip_mch_own_selection __ARGS((VimClipboard *cbd)); +void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); +short_u *enc_to_ucs2 __ARGS((char_u *str, int *lenp)); +char_u *ucs2_to_enc __ARGS((short_u *str, int *lenp)); +void clip_mch_request_selection __ARGS((VimClipboard *cbd)); +void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); +void clip_mch_set_selection __ARGS((VimClipboard *cbd)); +void DumpPutS __ARGS((const char *psz)); +int mch_get_winpos __ARGS((int *x, int *y)); +void mch_set_winpos __ARGS((int x, int y)); +void mch_print_cleanup __ARGS((void)); +int mch_print_init __ARGS((prt_settings_T *psettings, char_u *jobname, int forceit)); +int mch_print_begin __ARGS((prt_settings_T *psettings)); +void mch_print_end __ARGS((prt_settings_T *psettings)); +int mch_print_end_page __ARGS((void)); +int mch_print_begin_page __ARGS((char_u *msg)); +int mch_print_blank_page __ARGS((void)); +void mch_print_start_line __ARGS((int margin, int page_line)); +int mch_print_text_out __ARGS((char_u *p, int len)); +void mch_print_set_font __ARGS((int iBold, int iItalic, int iUnderline)); +void mch_print_set_bg __ARGS((long_u bgcol)); +void mch_print_set_fg __ARGS((long_u fgcol)); +char_u *mch_resolve_shortcut __ARGS((char_u *fname)); +void win32_set_foreground __ARGS((void)); +void serverInitMessaging __ARGS((void)); +void serverSetName __ARGS((char_u *name)); +char_u *serverGetVimNames __ARGS((void)); +int serverSendReply __ARGS((char_u *name, char_u *reply)); +int serverSendToVim __ARGS((char_u *name, char_u *cmd, char_u **result, void *ptarget, int asExpr, int silent)); +void serverForeground __ARGS((char_u *name)); +char_u *serverGetReply __ARGS((HWND server, int *expr_res, int remove, int wait)); +void serverProcessPendingMessages __ARGS((void)); +char *charset_id2name __ARGS((int id)); +int get_logfont __ARGS((LOGFONT *lf, char_u *name, HDC printer_dc, int verbose)); /* vim: set ft=c : */