summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-03-09 22:32:39 +0000
committerBram Moolenaar <Bram@vim.org>2006-03-09 22:32:39 +0000
commit4ea8fe1d0600a7020c9f3a652f1d429a96965311 (patch)
tree11539bbb19bde18e6d1cc20ddd8109c7a05f174d /runtime
parent0fd9289de3079583cd19c88425277b99b5a15253 (diff)
downloadvim-git-4ea8fe1d0600a7020c9f3a652f1d429a96965311.tar.gz
updated for version 7.0219
Diffstat (limited to 'runtime')
-rw-r--r--runtime/autoload/netrw.vim571
-rw-r--r--runtime/autoload/netrwSettings.vim1
-rw-r--r--runtime/doc/os_mac.txt31
-rw-r--r--runtime/doc/pi_netrw.txt59
-rw-r--r--runtime/doc/tags31
-rw-r--r--runtime/menu.vim59
-rw-r--r--runtime/syntax/sqlanywhere.vim706
7 files changed, 1182 insertions, 276 deletions
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 3a184a149..54613511c 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,7 +1,7 @@
" netrw.vim: Handles file transfer and remote directory listing across a network
" AUTOLOAD PORTION
-" Date: Jan 30, 2006
-" Version: 78
+" Date: Mar 09, 2006
+" Version: 79
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
@@ -23,7 +23,7 @@
if &cp || exists("g:loaded_netrw")
finish
endif
-let g:loaded_netrw = "v78"
+let g:loaded_netrw = "v79"
if v:version < 700
echohl WarningMsg | echo "***netrw*** you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw" | echohl None
finish
@@ -76,7 +76,7 @@ if !exists("g:netrw_ssh_cmd")
let g:netrw_ssh_cmd= "ssh"
endif
-if has("win32") || has("win95") || has("win64") || has("win16")
+if (has("win32") || has("win95") || has("win64") || has("win16"))
\ && exists("g:netrw_use_nt_rcp")
\ && g:netrw_use_nt_rcp
\ && executable( $SystemRoot .'/system32/rcp.exe')
@@ -191,6 +191,9 @@ if exists("g:netrw_silent") && g:netrw_silent != 0
else
let g:netrw_silentxfer= ""
endif
+if !exists("g:netrw_fastbrowse")
+ let g:netrw_fastbrowse= 1
+endif
if !exists("g:netrw_sort_by")
" alternatives: date size
let g:netrw_sort_by= "name"
@@ -224,6 +227,12 @@ if !exists("s:netrw_cd_escape")
let s:netrw_cd_escape="[]#*$%'\" ?`!&();<>\\"
endif
endif
+if !exists("g:netrw_fname_escape")
+ let g:netrw_fname_escape= ' ?&;'
+endif
+if !exists("g:netrw_tmpfile_escape")
+ let g:netrw_tmpfile_escape= ' ?&;'
+endif
if !exists("s:netrw_glob_escape")
if has("win32") || has("win95") || has("win64") || has("win16")
let s:netrw_glob_escape= ""
@@ -292,49 +301,48 @@ endfun
" ------------------------------------------------------------------------
" NetRead: responsible for reading a file over the net {{{2
-fun! netrw#NetRead(...)
-" call Dfunc("NetRead(a:1<".a:1.">)")
-
+fun! netrw#NetRead(mode,...)
+" call Dfunc("NetRead(mode=".a:mode.",...) a:0=".a:0)
+
" save options
call s:NetOptionSave()
-
- " Special Exception: if a file is named "0r", then {{{3
- " "0r" will be used to read the
- " following files instead of "r"
- if a:0 == 0
- let readcmd= "r"
- let ichoice= 0
- elseif a:1 == "0r"
+
+ if a:mode == 0 " read remote file before current line
let readcmd = "0r"
- let ichoice = 2
+ elseif a:mode == 1 " read file after current line
+ let readcmd = "r"
+ elseif a:mode == 2 " replace with remote file
+ let readcmd = "%r"
else
+ exe a:mode
let readcmd = "r"
- let ichoice = 1
endif
-
+ let ichoice = (a:0 == 0)? 0 : 1
+" call Decho("readcmd<".readcmd."> ichoice=".ichoice)
+
" get name of a temporary file and set up shell-quoting character {{{3
let tmpfile= tempname()
- let tmpfile= substitute(tmpfile,'\','/','ge')
+ let tmpfile= escape(substitute(tmpfile,'\','/','ge'),g:netrw_tmpfile_escape)
if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
echohl Error | echo "***netrw*** your <".substitute(tmpfile,'[^/]\+$','','e')."> directory is missing!" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("NetRead")
return
endif
-
-" call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
+" call Decho("tmpfile<".tmpfile.">")
+
while ichoice <= a:0
-
+
" attempt to repeat with previous host-file-etc
if exists("b:netrw_lastfile") && a:0 == 0
" call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
let choice = b:netrw_lastfile
let ichoice= ichoice + 1
-
+
else
exe "let choice= a:" . ichoice
" call Decho("no lastfile: choice<" . choice . ">")
-
+
if match(choice,"?") == 0
" give help
echomsg 'NetRead Usage:'
@@ -361,7 +369,7 @@ fun! netrw#NetRead(...)
" case "... ... ..."
let choice = strpart(choice,1,strlen(choice)-1)
let wholechoice = ""
-
+
while match(choice,"\"$") == -1
let wholechoice = wholechoice . " " . choice
let ichoice = ichoice + 1
@@ -382,7 +390,7 @@ fun! netrw#NetRead(...)
" call Decho("choice<" . choice . ">")
let ichoice= ichoice + 1
-
+
" fix up windows urls
if has("win32") || has("win95") || has("win64") || has("win16")
let choice = substitute(choice,'\\','/','ge')
@@ -391,10 +399,10 @@ fun! netrw#NetRead(...)
exe 'lcd ' . fnamemodify(tmpfile,':h')
let tmpfile = fnamemodify(tmpfile,':t')
endif
-
+
" Determine method of read (ftp, rcp, etc) {{{3
call s:NetMethod(choice)
-
+
" Check if NetBrowse() should be handling this request
" call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
if choice =~ "^.*[\/]$"
@@ -409,14 +417,14 @@ fun! netrw#NetRead(...)
let tmpfile= substitute(tmpfile,"$",suffix,'e')
" call Decho("chgd tmpfile<".tmpfile."> (added ".suffix." suffix) netrw_fname<".b:netrw_fname.">")
endif
-
+
" ============
" Perform Protocol-Based Read {{{3
" ===========================
if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
echo "(netrw) Processing your read request..."
endif
-
+
".........................................
" rcp: NetRead Method #1 {{{3
if b:netrw_method == 1 " read with rcp
@@ -439,16 +447,16 @@ fun! netrw#NetRead(...)
let uid_machine = g:netrw_machine
endif
endif
-" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&;')." ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&;')." ".tmpfile
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + <.netrc>: NetRead Method #2 {{{3
elseif b:netrw_method == 2 " read with ftp + <.netrc>
" call Decho("read via ftp+.netrc (method #2)")
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
@@ -473,13 +481,13 @@ fun! netrw#NetRead(...)
bd!
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + machine,id,passwd,filename: NetRead Method #3 {{{3
elseif b:netrw_method == 3 " read with ftp + machine, id, passwd, and fname
" Construct execution string (four lines) which will be passed through filter
" call Decho("read via ftp+mipf (method #3)")
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
@@ -489,7 +497,7 @@ fun! netrw#NetRead(...)
put ='open '.g:netrw_machine
" call Decho("filter input: ".getline("."))
endif
-
+
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
" call Decho("filter input: ".getline("."))
@@ -499,14 +507,14 @@ fun! netrw#NetRead(...)
put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
" call Decho("filter input: ".getline("."))
endif
-
+
if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
put =g:netrw_ftpmode
" call Decho("filter input: ".getline("."))
endif
put ='get \"'.netrw_fname.'\" '.tmpfile
" call Decho("filter input: ".getline("."))
-
+
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
@@ -525,7 +533,7 @@ fun! netrw#NetRead(...)
bd!
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" scp: NetRead Method #4 {{{3
elseif b:netrw_method == 4 " read with scp
@@ -537,15 +545,15 @@ fun! netrw#NetRead(...)
endif
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".cygtmpfile)
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".cygtmpfile
+" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".cygtmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".cygtmpfile
else
-" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".tmpfile
+" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".tmpfile
endif
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" http: NetRead Method #5 (wget) {{{3
elseif b:netrw_method == 5
@@ -558,17 +566,18 @@ fun! netrw#NetRead(...)
" call Dret("NetRead")
return
endif
-
+
if match(b:netrw_fname,"#") == -1
" simple wget
-" call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&')
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
+" call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_fname
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-
+
else
" wget plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
- let netrw_html= substitute(b:netrw_fname,"#.*$","","")
- let netrw_tag = substitute(b:netrw_fname,"^.*#","","")
+ let netrw_html= substitute(netrw_fname,"#.*$","","")
+ let netrw_tag = substitute(netrw_fname,"^.*#","","")
" call Decho("netrw_html<".netrw_html.">")
" call Decho("netrw_tag <".netrw_tag.">")
" call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html)
@@ -578,14 +587,14 @@ fun! netrw#NetRead(...)
exe 'norm! 1G/<\s*a\s*name=\s*"'.netrw_tag.'"/'."\<CR>"
endif
let b:netrw_lastfile = choice
-
+
".........................................
" cadaver: NetRead Method #6 {{{3
elseif b:netrw_method == 6
" call Decho("read via cadaver (method #6)")
-
+
" Construct execution string (four lines) which will be passed through filter
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
@@ -594,7 +603,7 @@ fun! netrw#NetRead(...)
put ='open '.g:netrw_machine
endif
put ='user '.g:netrw_uid.' '.g:netrw_passwd
-
+
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
put ='get '.netrw_fname.' '.cygtmpfile
@@ -602,7 +611,7 @@ fun! netrw#NetRead(...)
put ='get '.netrw_fname.' '.tmpfile
endif
put ='quit'
-
+
" perform cadaver operation:
norm! 1Gdd
" call Decho("executing: %!".g:netrw_dav_cmd)
@@ -610,26 +619,28 @@ fun! netrw#NetRead(...)
bd!
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" rsync: NetRead Method #7 {{{3
elseif b:netrw_method == 7
" call Decho("read via rsync (method #7)")
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
+" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile
else
-" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile
endif
let result = s:NetGetFile(readcmd,tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" fetch: NetRead Method #8 {{{3
" fetch://[user@]host[:http]/path
elseif b:netrw_method == 8
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_fetch_cmd == ""
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** fetch command not available" | echohl None
@@ -643,41 +654,42 @@ fun! netrw#NetRead(...)
let netrw_option= "ftp"
endif
" call Decho("read via fetch for ".netrw_option)
-
+
if exists("g:netrw_uid") && g:netrw_uid != "" && exists("g:netrw_passwd") && g:netrw_passwd != ""
-" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".netrw_fname
else
-" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".netrw_fname
endif
-
+
let result = s:NetGetFile(readcmd,tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" sftp: NetRead Method #9 {{{3
elseif b:netrw_method == 9
" call Decho("read via sftp (method #4)")
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
- exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
+" call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile)
+" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile)
+ exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile
else
-" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile
endif
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" Complain {{{3
else
echo "***warning*** unable to comply with your request<" . choice . ">"
endif
endwhile
-
+
" cleanup {{{3
" call Decho("cleanup")
if exists("b:netrw_method")
@@ -691,18 +703,21 @@ endfun
" ------------------------------------------------------------------------
" NetGetFile: Function to read temporary file "tfile" with command "readcmd". {{{2
+" readcmd == %r : replace buffer with newly read file
+" == 0r : read file at top of buffer
+" == r : read file after current line
fun! s:NetGetFile(readcmd, tfile, method)
-" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
+" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
" get name of remote filename (ie. url and all)
let rfile= bufname("%")
" call Decho("rfile<".rfile.">")
-
+
if exists("*NetReadFixup")
" for the use of NetReadFixup (not otherwise used internally)
let line2= line("$")
endif
-
+
" transform paths from / to \ for Windows (except for cygwin)
if &term == "win32"
if g:netrw_cygwin
@@ -716,8 +731,8 @@ fun! s:NetGetFile(readcmd, tfile, method)
let tfile= a:tfile
" call Decho("tfile=a:tfile<".tfile.">")
endif
-
- if a:readcmd[0] == '0'
+
+ if a:readcmd[0] == '%'
" get file into buffer
" call Dredir("ls!","starting buffer list")
@@ -749,18 +764,17 @@ fun! s:NetGetFile(readcmd, tfile, method)
let lastline= line("$")
" call Decho("exe<".a:readcmd." ".v:cmdarg." ".tfile."> line#".curline)
exe a:readcmd." ".v:cmdarg." ".tfile
- let line1 = curline + 1
- let line2 = line("$") - lastline + 1
+ let line1= curline + 1
+ let line2= line("$") - lastline + 1
else
" not readable
-" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
echohl WarningMsg | echo "***netrw*** file <".tfile."> not readable"| echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("NetGetFile : tfile<".tfile."> not readable")
return
endif
-
+
" User-provided (ie. optional) fix-it-up command
if exists("*NetReadFixup")
" call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
@@ -773,9 +787,9 @@ fun! s:NetGetFile(readcmd, tfile, method)
if has("gui") && has("gui_running")
silent! emenu Buffers.Refresh\ menu
endif
-
+
" call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> tfile<".a:tfile."> readable=".filereadable(a:tfile))
-
+
" make sure file is being displayed
redraw!
" call Dret("NetGetFile")
@@ -785,26 +799,26 @@ endfun
" NetWrite: responsible for writing a file over the net {{{2
fun! netrw#NetWrite(...) range
" call Dfunc("NetWrite(a:0=".a:0.")")
-
+
" option handling
let mod= 0
call s:NetOptionSave()
-
+
" Get Temporary Filename {{{3
- let tmpfile= tempname()
+ let tmpfile= escape(tempname(),g:netrw_tmpfile_escape)
if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
echohl Error | echo "***netrw*** your ".substitute(tmpfile,'[^/]\+$','','e')." directory is missing!"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("NetWrite")
return
endif
-
+
if a:0 == 0
let ichoice = 0
else
let ichoice = 1
endif
-
+
if &binary
" for binary writes, write entire file. Line numbers don't really make sense.
" Supports the writing of tar and zip files.
@@ -815,9 +829,9 @@ fun! netrw#NetWrite(...) range
" call Decho("silent exe ".a:firstline."," . a:lastline . "w! ".v:cmdarg." ".tmpfile)
silent exe a:firstline."," . a:lastline . "w! ".v:cmdarg." ".tmpfile
endif
-
+
while ichoice <= a:0
-
+
" Process arguments: {{{3
" attempt to repeat with previous host-file-etc
if exists("b:netrw_lastfile") && a:0 == 0
@@ -826,7 +840,7 @@ fun! netrw#NetWrite(...) range
let ichoice= ichoice + 1
else
exe "let choice= a:" . ichoice
-
+
" Reconstruct Choice if choice starts with '"'
if match(choice,"?") == 0
echomsg 'NetWrite Usage:"'
@@ -841,7 +855,7 @@ fun! netrw#NetWrite(...) range
echomsg ':Nwrite scp://[user@]machine[[:#]port]/path uses scp'
echomsg ':Nwrite sftp://[user@]machine/path uses sftp'
break
-
+
elseif match(choice,"^\"") != -1
if match(choice,"\"$") != -1
" case "..."
@@ -850,7 +864,7 @@ fun! netrw#NetWrite(...) range
" case "... ... ..."
let choice = strpart(choice,1,strlen(choice)-1)
let wholechoice = ""
-
+
while match(choice,"\"$") == -1
let wholechoice= wholechoice . " " . choice
let ichoice = ichoice + 1
@@ -870,7 +884,7 @@ fun! netrw#NetWrite(...) range
endif
" call Decho("choice<" . choice . ">")
let ichoice= ichoice + 1
-
+
" fix up windows urls
if has("win32") || has("win95") || has("win64") || has("win16")
let choice= substitute(choice,'\\','/','ge')
@@ -878,17 +892,17 @@ fun! netrw#NetWrite(...) range
exe 'lcd ' . fnamemodify(tmpfile,':h')
let tmpfile = fnamemodify(tmpfile,':t')
endif
-
+
" Determine method of read (ftp, rcp, etc) {{{3
call s:NetMethod(choice)
-
+
" =============
" Perform Protocol-Based Write {{{3
" ============================
if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
echo "(netrw) Processing your write request..."
endif
-
+
".........................................
" rcp: NetWrite Method #1 {{{3
if b:netrw_method == 1
@@ -906,14 +920,15 @@ fun! netrw#NetWrite(...) range
let uid_machine = g:netrw_machine
endif
endif
-" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&')
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
+" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".netrw_fname
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + <.netrc>: NetWrite Method #2 {{{3
elseif b:netrw_method == 2
- let netrw_fname = b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
@@ -937,11 +952,11 @@ fun! netrw#NetWrite(...) range
endif
bd!
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + machine, id, passwd, filename: NetWrite Method #3 {{{3
elseif b:netrw_method == 3
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
@@ -964,7 +979,7 @@ fun! netrw#NetWrite(...) range
" call Decho("filter input: ".getline("."))
" save choice/id/password for future use
let b:netrw_lastfile = choice
-
+
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
@@ -981,10 +996,11 @@ fun! netrw#NetWrite(...) range
let mod=1
endif
bd!
-
+
".........................................
" scp: NetWrite Method #4 {{{3
elseif b:netrw_method == 4
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if exists("g:netrw_port") && g:netrw_port != ""
let useport= " -P ".g:netrw_port
else
@@ -992,14 +1008,14 @@ fun! netrw#NetWrite(...) range
endif
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'")
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'"
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".netrw_fname."'")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".netrw_fname."'"
else
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'")
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'"
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".netrw_fname."'")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".netrw_fname."'"
endif
let b:netrw_lastfile = choice
-
+
".........................................
" http: NetWrite Method #5 {{{3
elseif b:netrw_method == 5
@@ -1007,14 +1023,14 @@ fun! netrw#NetWrite(...) range
echohl Error | echo "***netrw*** currently <netrw.vim> does not support writing using http:" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
-
+
".........................................
" dav: NetWrite Method #6 (cadaver) {{{3
elseif b:netrw_method == 6
" call Decho("write via cadaver (method #6)")
-
+
" Construct execution string (four lines) which will be passed through filter
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
@@ -1023,38 +1039,39 @@ fun! netrw#NetWrite(...) range
put ='open '.g:netrw_machine
endif
put ='user '.g:netrw_uid.' '.g:netrw_passwd
-
+
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
put ='put '.cygtmpfile.' '.netrw_fname
else
put ='put '.tmpfile.' '.netrw_fname
endif
-
+
" perform cadaver operation:
norm! 1Gdd
" call Decho("executing: %!".g:netrw_dav_cmd)
exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
bd!
let b:netrw_lastfile = choice
-
+
".........................................
" rsync: NetWrite Method #7 {{{3
elseif b:netrw_method == 7
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".netrw_fname
else
-" call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".netrw_fname
endif
let b:netrw_lastfile = choice
-
+
".........................................
" sftp: NetWrite Method #9 {{{3
elseif b:netrw_method == 9
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if exists("g:netrw_uid") && ( g:netrw_uid != "" )
let uid_machine = g:netrw_uid .'@'. g:netrw_machine
else
@@ -1068,23 +1085,23 @@ fun! netrw#NetWrite(...) range
exe g:netrw_silentxfer."%!".g:netrw_sftp_cmd.' '.uid_machine
bd!
let b:netrw_lastfile= choice
-
+
".........................................
" Complain {{{3
else
echo "***warning*** unable to comply with your request<" . choice . ">"
endif
endwhile
-
+
" cleanup {{{3
" call Decho("cleanup")
let result=delete(tmpfile)
call s:NetOptionRestore()
-
+
if a:firstline == 1 && a:lastline == line("$")
let &mod= mod " usually equivalent to set nomod
endif
-
+
" call Dret("NetWrite")
endfun
@@ -1135,6 +1152,10 @@ fun! s:NetBrowse(dirname)
" use buffer-oriented WinVars if buffer ones exist but window ones don't
call s:UseBufWinVars()
+ " set up menus
+ let b:netrw_browser_active= 1
+ call s:NetMenu()
+
" make this buffer modifiable
setlocal ma nonu nowrap
@@ -1216,14 +1237,14 @@ fun! s:NetBrowse(dirname)
" call Decho("exe file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape))
exe "file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape)
exe "silent doau BufReadPre ".fname
- silent call netrw#NetRead(method."://".user.machine."/".path)
+ silent call netrw#NetRead(2,method."://".user.machine."/".path)
exe "silent doau BufReadPost ".fname
keepjumps 1d
" save certain window-oriented variables into buffer-oriented variables
call s:SetBufWinVars()
call s:NetOptionRestore()
- setlocal nomod
+ setlocal nomod nowrap
" call Dret("NetBrowse : file<".fname.">")
return
@@ -1256,7 +1277,10 @@ fun! s:NetBrowse(dirname)
" call Decho("exe file ".escape(bufname,s:netrw_cd_escape))
exe 'file '.escape(bufname,s:netrw_cd_escape)
" call Decho("renaming file to bufname<".bufname.">")
- setlocal bh=hide bt=nofile nobl nonu noswf
+ setlocal bt=nofile nobl nonu noswf
+ if g:netrw_fastbrowse >= 1
+ setlocal bh=hide
+ endif
" save current directory on directory history list
call s:NetBookmarkDir(3,expand("%"))
@@ -1276,7 +1300,7 @@ fun! s:NetBrowse(dirname)
nnoremap <buffer> <silent> <c-h> :call <SID>NetHideEdit(0)<cr>
nnoremap <buffer> <silent> i :call <SID>NetLongList(0)<cr>
nnoremap <buffer> <silent> o :call <SID>NetSplit(0)<cr>
- nnoremap <buffer> <silent> O :call <SID>NetObtain()<cr>
+ nnoremap <buffer> <silent> O :call netrw#NetObtain()<cr>
nnoremap <buffer> <silent> P :call <SID>NetPrevWinOpen(0)<cr>
nnoremap <buffer> <silent> q :<c-u>call <SID>NetBookmarkDir(2,expand("%"))<cr>
nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
@@ -1475,12 +1499,16 @@ fun! s:NetBrowseChgDir(dirname,newdir)
rightb vert new
wincmd |
endif
+ call s:NetMenu()
" call Decho("handling a file: dirname<".dirname.">")
elseif newdir == './'
" refresh the directory list
" call Decho("refresh directory listing")
- setlocal ma nobl bh=hide
+ setlocal ma nobl
+ if g:netrw_fastbrowse >= 1
+ setlocal bh=hide
+ endif
%d
elseif newdir == '../'
@@ -1630,7 +1658,7 @@ fun! s:NetBrowseRm(usrhost,path) range
elseif ok =~ 'q\%[uit]'
break
endif
-
+
else
" attempt to remove directory
if !all
@@ -1661,7 +1689,7 @@ fun! s:NetBrowseRm(usrhost,path) range
" call Decho("2nd attempt to remove dir: system(".netrw_rmf_cmd.")")
let ret= system(netrw_rmf_cmd)
" call Decho("returned=".ret." errcode=".v:shell_error)
-
+
if v:shell_error != 0 && !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** unable to remove directory<".rmfile."> -- is it empty?" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
@@ -1795,25 +1823,23 @@ fun! netrw#NetBrowseX(fname,remote)
" seems kde systems often have gnome-open due to dependencies, even though
" gnome-open's subsidiary display tools are largely absent. Kde systems
- " usually have "kicker" running, though... (tnx Mikolaj Machowski)
- if !exists("s:haskicker")
+ " usually have "kdeinit" running, though... (tnx Mikolaj Machowski)
+ if !exists("s:haskdeinit")
if has("unix")
- let v:shell_error=0
- silent! let s:haskicker= system('ps -e') =~ 'kicker'
+ silent! let s:haskdeinit= system('ps -e') =~ 'kdeinit'
if v:shell_error
- let s:haskicker = 0
- let v:shell_error = 0
+ let s:haskdeinit = 0
endif
else
- let s:haskicker= 0
+ let s:haskdeinit= 0
endif
-" call Decho("setting s:haskicker=".s:haskicker)
+" call Decho("setting s:haskdeinit=".s:haskdeinit)
endif
if a:remote == 1
" create a local copy
let fname= tempname().".".exten
-" call Decho("create a local copy of <".a:fname."> as <".fname.">")
+" call Decho("a:remote==1: create a local copy of <".a:fname."> as <".fname.">")
exe "silent keepjumps bot 1new ".a:fname
set bh=delete
exe "w! ".fname
@@ -1827,15 +1853,12 @@ fun! netrw#NetBrowseX(fname,remote)
else
let redir= &srr . "/dev/null"
endif
-" call Decho("redir:".redir.":")
+" call Decho("redir{".redir."} srr{".&srr."}")
if exists("g:netrw_browsex_viewer") && executable(g:netrw_browsex_viewer)
+" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">")
if g:netrw_browsex_viewer == '-'
- call netrwFileHandlers#Init()
- if exten != "" && exists("*netrwFileHandlers#NFH_".exten)
-" call Decho("let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")')
- exe "let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")'
- endif
+ let ret= netrwFileHandlers#Invoke(exten,fname)
else
" call Decho("exe silent !".g:netrw_browsex_viewer." '".escape(fname,'%#')."' ".redir)
exe "silent !".g:netrw_browsex_viewer." '".escape(fname,'%#')."'".redir
@@ -1848,23 +1871,26 @@ fun! netrw#NetBrowseX(fname,remote)
exe 'silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"'
let ret= v:shell_error
- elseif has("unix") && executable("gnome-open") && !s:haskicker
+ elseif has("unix") && executable("gnome-open") && !s:haskdeinit
" call Decho("exe silent !gnome-open '".escape(fname,'%#')."' ".redir)
exe "silent !gnome-open '".escape(fname,'%#')."'".redir
let ret= v:shell_error
- elseif has("unix") && executable("kfmclient") && s:haskicker
+ elseif has("unix") && executable("kfmclient") && s:haskdeinit
" call Decho("exe silent !kfmclient exec '".escape(fname,'%#')."' ".redir)
exe "silent !kfmclient exec '".escape(fname,'%#')."' ".redir
let ret= v:shell_error
else
- call netrwFileHandlers#Init()
- if exten != "" && exists("*netrwFileHandlers#NFH_".exten)
-" call Decho("let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")')
- exe "let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")'
- endif
+ " netrwFileHandlers#Invoke() always returns 0
+ let ret= netrwFileHandlers#Invoke(exten,fname)
+ endif
+
+ " if unsuccessful, attempt netrwFileHandlers#Invoke()
+ if ret
+ let ret= netrwFileHandlers#Invoke(exten,fname)
endif
+
redraw!
" cleanup: remove temporary file,
@@ -1928,19 +1954,19 @@ fun! s:NetBrowseFtpCmd(path,cmd)
else
put ='open '.g:netrw_machine
endif
-
+
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
put ='\"'.g:netrw_passwd.'\"'
else
put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
endif
-
+
if a:path != ""
put ='cd \"'.a:path.'\"'
endif
exe "put ='".a:cmd."'"
-
+
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
@@ -2123,6 +2149,9 @@ fun! s:NetrwWideListing()
" determine qty files per line (fpl)
let w:netrw_fpl= winwidth(0)/b:netrw_cpf
+ if w:netrw_fpl <= 0
+ let w:netrw_fpl= 1
+ endif
" call Decho("fpl= ".winwidth(0)."/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl)
" make wide display
@@ -2258,7 +2287,7 @@ fun! s:NetMakeDir(usrhost)
endif
redraw!
endif
-
+
" call Dret("NetMakeDir")
endfun
@@ -2376,13 +2405,40 @@ endfun
" ---------------------------------------------------------------------
" NetObtain: obtain file under cursor (for remote browsing support) {{{2
-fun! s:NetObtain()
- let fname= expand("<cWORD>")
+fun! netrw#NetObtain(...)
+" call Dfunc("NetObtain() a:0=".a:0)
+
+ if a:0==0
+ " no arguments -- use word under cursor
+ let fname= expand("<cWORD>")
+" call Decho("no arguments, use <".fname.">")
+ elseif a:0 > 1
+ " more than one argument, recurse with each argument separately
+" call Decho("more than 1 argument, use recursion")
+ let i=1
+ while i <= a:0
+ call netrw#NetObtain(a:{i})
+ let i=i+1
+ endwhile
+ return
+ else
+ " one argument provided
+ let fname = a:1
+ let keep_netrw_choice = exists("b:netrw_choice")? b:netrw_choice : ""
+ let keep_netrw_fname = exists("b:netrw_fname")? b:netrw_fname : ""
+ let keep_netrw_wmethod = exists("w:netrw_method")? w:netrw_method : ""
+ call s:NetMethod(fname)
+ let w:netrw_method= b:netrw_method
+ let fname = b:netrw_fname
+" call Decho("g:netrw_scp_cmd<".g:netrw_scp_cmd.">")
+" call Decho("g:netrw_machine<".g:netrw_machine.">")
+" call Decho("fname<".fname.">")
+ endif
" NetrwStatusLine support - for obtaining support
call s:SetupNetrwStatusLine('%f %h%m%r%=%9*Obtaining '.fname)
-" call Dfunc("NetObtain() method=".w:netrw_method)
+" call Decho("method=".w:netrw_method)
if exists("w:netrw_method") && w:netrw_method =~ '[235]'
if executable("ftp")
let curdir = expand("%")
@@ -2419,9 +2475,9 @@ fun! s:NetObtain()
" call Decho('ftp: open '.g:netrw_machine.' '.g:netrw_port)
else
put ='open '.g:netrw_machine
-" call Decho('ftp: open '.g:netrw_machine
+" call Decho('ftp: open '.g:netrw_machine)
endif
-
+
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
put ='\"'.g:netrw_passwd.'\"'
@@ -2431,21 +2487,21 @@ fun! s:NetObtain()
put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
" call Decho('user '.g:netrw_uid.' '.g:netrw_passwd)
endif
-
+
if a:path != ""
put ='cd '.a:path
" call Decho('cd '.a:path)
endif
exe "put ='".a:cmd."'"
" call Decho("ftp: ".a:cmd)
-
+
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password
" call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i -n")
exe g:netrw_silentxfer.endline.",$!".g:netrw_ftp_cmd." -i -n"
-
+
".........................................
else
echo "***warning*** unable to comply with your request<" . choice . ">"
@@ -2459,8 +2515,14 @@ fun! s:NetObtain()
echohl Error | echo "***netrw*** this system doesn't support ftp" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
+ " restore status line
let &stl = s:netrw_users_stl
let &laststatus = s:netrw_users_ls
+ " restore NetMethod
+ if exists("keep_netrw_method")
+ call s:NetMethod(keep_netrw_choice)
+ let w:netrw_method = keep_netrw_wmethod
+ endif
" call Dret("NetObtain")
return
endif
@@ -2470,6 +2532,7 @@ fun! s:NetObtain()
" scp: Method#4
let curdir = expand("%")
let path = substitute(curdir,'scp://[^/]\+/','','e')
+" call Decho("path<".path.">")
if exists("g:netrw_port") && g:netrw_port != ""
let useport= " -P ".g:netrw_port
else
@@ -2490,6 +2553,12 @@ fun! s:NetObtain()
let &laststatus = s:netrw_users_ls
redraw!
+ " restore NetMethod
+ if exists("keep_netrw_method")
+ call s:NetMethod(keep_netrw_choice)
+ let w:netrw_method = keep_netrw_wmethod
+ endif
+
" call Dret("NetObtain")
endfun
@@ -2569,6 +2638,77 @@ fun! s:NetPrevWinOpen(islocal)
" call Dret("NetPrevWinOpen")
endfun
+" ---------------------------------------------------------------------
+" NetMenu: generates the menu for gvim and netrw {{{2
+fun! s:NetMenu()
+
+ if has("menu") && has("gui_running") && &go =~ 'm'
+" call Dfunc("NetMenu()")
+ if !exists("s:netrw_menu_enabled")
+ let s:netrw_menu_enabled= 1
+ if !exists("g:DrChipTopLvlMenu")
+ let g:DrChipTopLvlMenu= "DrChip."
+ endif
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Help<tab>? ?'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Apply\ Special\ Viewer<tab>x x'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Bookmark\ Current\ Directory<tab>b Nb'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Go\ Up\ Directory<tab>- -'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Goto\ Bookmarked\ Directory<tab>B NB'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Recently\ Used\ Directory<tab>u u'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Subsequently\ Used\ Directory<tab>U U'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Delete\ File/Directory<tab>D D'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File\ Hiding\ List<tab>'."<ctrl-h> \<c-h>"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File/Directory<tab><cr> '."\<cr>"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File/Directory,\ New\ Window<tab>o o'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File/Directory,\ New\ Vertical\ Window\ <tab>v v'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.List\ Bookmarks\ and\ History<tab>q q'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Listing\ Style\ (thin-long-wide)<tab>i i'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Make\ Subdirectory<tab>d d'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Normal-Hide-Show<tab>a a'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Obtain\ File<tab>O O'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Preview\ File/Directory<tab>p p'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Previous\ Window\ Browser<tab>P P'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Refresh\ Listing<tab>'."<ctrl-l> \<c-l>"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Rename\ File/Directory<tab>R R'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Reverse\ Sorting\ Order<tab>'."r r"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Select\ Sorting\ Style<tab>s s'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Sorting\ Sequence\ Edit<tab>S S'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Set\ Current\ Directory<tab>c c'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Settings/Options<tab>:NetrwSettings '.":NetrwSettings\<cr>"
+ else
+" call Decho("clear menus")
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Help'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Apply\ Special\ Viewer'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Bookmark\ Current\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Go\ Up\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Goto\ Bookmarked\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Recently\ Used\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Subsequently\ Used\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Delete\ File/Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File\ Hiding\ List'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Enter\ File/Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Enter\ File/Directory\ (vertical\ split)'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.List\ Bookmarks\ and\ History'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Listing\ Style\ (thin-long-wide)'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Make\ Subdirectory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Normal-Hide-Show'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Obtain\ File'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Preview\ File'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Previous\ Window\ Browser'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Refresh\ Listing'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Rename\ File/Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Reverse\ Sorting\ Order'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Select\ Sorting\ Style'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Sorting\ Sequence\ Edit'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Set\ Current\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Settings/Options'
+ endif
+" call Dret("NetMenu")
+ endif
+
+endfun
+
" ==========================================
" Local Directory Browsing Support: {{{1
" ==========================================
@@ -2597,6 +2737,13 @@ fun! netrw#DirBrowse(dirname)
" call Dret("DirBrowse")
return
endif
+ if &fo =~ '[ta]'
+ set fo-=t
+ set fo-=a
+ echohl Warning
+ echo '***warning*** directory browsing and formatoptions "ta" are incompatible'
+ echohl None
+ endif
call s:NetOptionSave()
@@ -2613,6 +2760,10 @@ fun! netrw#DirBrowse(dirname)
" use buffer-oriented WinVars if buffer ones exist but window ones don't
call s:UseBufWinVars()
+ " set up menus
+ let b:netrw_browser_active= 1
+ call s:NetMenu()
+
" find buffer number of buffer named precisely the same as a:dirname
let bufnum= bufnr(escape(a:dirname,'\'))
" call Decho("findbuf: bufnum=".bufnum)
@@ -2692,7 +2843,10 @@ fun! netrw#DirBrowse(dirname)
exe 'silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape)
" make this buffer not-a-file, modifiable, not line-numbered, etc
- setlocal bh=hide bt=nofile nobl ma nonu noswf
+ setlocal bt=nofile nobl ma nonu noswf nowrap
+ if g:netrw_fastbrowse >= 2
+ setlocal bh=hide
+ endif
keepalt silent! %d
" ---------------------------
@@ -2845,7 +2999,10 @@ fun! netrw#DirBrowse(dirname)
" save certain window-oriented variables into buffer-oriented variables
call s:SetBufWinVars()
call s:NetOptionRestore()
- setlocal noma nomod nonu bh=hide nobl
+ setlocal noma nomod nonu nobl nowrap
+ if g:netrw_fastbrowse >= 2
+ setlocal bh=hide
+ endif
" call Dret("DirBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
endfun
@@ -2941,7 +3098,7 @@ fun! s:LocalBrowseList()
keepjumps silent! put=pfile
endif
endwhile
-
+
" cleanup any windows mess at end-of-line
silent! keepjumps %s/\r$//e
setlocal ts=32
@@ -2981,6 +3138,7 @@ fun! s:LocalBrowseChgDir(dirname,newdir,...)
wincmd |
endif
exe "e! ".escape(dirname,s:netrw_cd_escape)
+ call s:NetMenu()
set ma nomod
endif
@@ -3058,7 +3216,7 @@ fun! s:LocalBrowseRm(path) range
elseif ok =~ 'q\%[uit]'
break
endif
-
+
else
" attempt to remove directory
if !all
@@ -3434,13 +3592,14 @@ endfun
" 9: sftp
fun! s:NetMethod(choice) " globals: method machine id passwd fname
" call Dfunc("NetMethod(a:choice<".a:choice.">)")
-
+
" initialization
let b:netrw_method = 0
let g:netrw_machine = ""
let b:netrw_fname = ""
let g:netrw_port = ""
-
+ let g:netrw_choice = a:choice
+
" Patterns:
" mipf : a:machine a:id password filename Use ftp
" mf : a:machine filename Use ftp + <.netrc> or g:netrw_uid g:netrw_passwd
@@ -3464,7 +3623,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let rsyncurm = '^rsync://\([^/]\{-}\)/\(.*\)\=$'
let fetchurm = '^fetch://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\(:http\)\=/\(.*\)$'
let sftpurm = '^sftp://\([^/]\{-}\)/\(.*\)\=$'
-
+
" call Decho("determine method:")
" Determine Method
" rcp://user@hostname/...path-to-file
@@ -3477,7 +3636,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
if userid != ""
let g:netrw_uid= userid
endif
-
+
" scp://user@hostname/...path-to-file
elseif match(a:choice,scpurm) == 0
" call Decho("scp://...")
@@ -3485,14 +3644,14 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let g:netrw_machine = substitute(a:choice,scpurm,'\1',"")
let g:netrw_port = substitute(a:choice,scpurm,'\2',"")
let b:netrw_fname = substitute(a:choice,scpurm,'\3',"")
-
+
" http://user@hostname/...path-to-file
elseif match(a:choice,httpurm) == 0
" call Decho("http://...")
let b:netrw_method = 5
let g:netrw_machine= substitute(a:choice,httpurm,'\1',"")
let b:netrw_fname = substitute(a:choice,httpurm,'\2',"")
-
+
" dav://hostname[:port]/..path-to-file..
elseif match(a:choice,davurm) == 0
" call Decho("dav://...")
@@ -3503,14 +3662,14 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let g:netrw_machine= 'http://'.substitute(a:choice,davurm,'\1/\2',"")
endif
let b:netrw_fname = substitute(a:choice,davurm,'\3',"")
-
+
" rsync://user@hostname/...path-to-file
elseif match(a:choice,rsyncurm) == 0
" call Decho("rsync://...")
let b:netrw_method = 7
let g:netrw_machine= substitute(a:choice,rsyncurm,'\1',"")
let b:netrw_fname = substitute(a:choice,rsyncurm,'\2',"")
-
+
" ftp://[user@]hostname[[:#]port]/...path-to-file
elseif match(a:choice,ftpurm) == 0
" call Decho("ftp://...")
@@ -3536,7 +3695,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let b:netrw_method= 3
endif
endif
-
+
elseif match(a:choice,fetchurm) == 0
" call Decho("fetch://...")
let b:netrw_method = 8
@@ -3544,7 +3703,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let g:netrw_machine= substitute(a:choice,fetchurm,'\3',"")
let b:netrw_option = substitute(a:choice,fetchurm,'\4',"")
let b:netrw_fname = substitute(a:choice,fetchurm,'\5',"")
-
+
" Issue an ftp : "machine id password [path/]filename"
elseif match(a:choice,mipf) == 0
" call Decho("(ftp) host id pass file")
@@ -3553,7 +3712,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let g:netrw_uid = substitute(a:choice,mipf,'\2',"")
let g:netrw_passwd = substitute(a:choice,mipf,'\3',"")
let b:netrw_fname = substitute(a:choice,mipf,'\4',"")
-
+
" Issue an ftp: "hostname [path/]filename"
elseif match(a:choice,mf) == 0
" call Decho("(ftp) host file")
@@ -3561,20 +3720,20 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let b:netrw_method = 3
let g:netrw_machine = substitute(a:choice,mf,'\1',"")
let b:netrw_fname = substitute(a:choice,mf,'\2',"")
-
+
elseif filereadable(expand("$HOME/.netrc"))
let b:netrw_method = 2
let g:netrw_machine = substitute(a:choice,mf,'\1',"")
let b:netrw_fname = substitute(a:choice,mf,'\2',"")
endif
-
+
" sftp://user@hostname/...path-to-file
elseif match(a:choice,sftpurm) == 0
" call Decho("sftp://...")
let b:netrw_method = 9
let g:netrw_machine= substitute(a:choice,sftpurm,'\1',"")
let b:netrw_fname = substitute(a:choice,sftpurm,'\2',"")
-
+
" Issue an rcp: hostname:filename" (this one should be last)
elseif match(a:choice,rcphf) == 0
" call Decho("(rcp) [user@]host:file) rcphf<".rcphf.">")
@@ -3593,7 +3752,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
" don't let PCs try <.netrc>
let b:netrw_method = 3
endif
-
+
else
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** cannot determine method" | echohl None
@@ -3606,7 +3765,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
if g:netrw_port != ""
let g:netrw_port = substitute(g:netrw_port,'[#:]\+','','')
endif
-
+
" call Decho("a:choice <".a:choice.">")
" call Decho("b:netrw_method <".b:netrw_method.">")
" call Decho("g:netrw_machine<".g:netrw_machine.">")
@@ -3618,7 +3777,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
" call Decho("g:netrw_passwd <".g:netrw_passwd.">")
" endif "Decho
" call Decho("b:netrw_fname <".b:netrw_fname.">")
-" call Dret("NetMethod")
+" call Dret("NetMethod : b:netrw_method=".b:netrw_method)
endfun
" ------------------------------------------------------------------------
@@ -3666,14 +3825,18 @@ fun! s:NetOptionSave()
" Get Temporary Filename
let w:aikeep = &ai
" record autochdir setting and then insure its unset (tnx to David Fishburn)
- if has("netbeans_intg") || has("sun_workshop")
- let w:acdkeep = &autochdir
- set noautochdir
+ if &acd && (has("netbeans_intg") || has("sun_workshop"))
+ set noacd
+ echohl Warning | echomsg "***warning*** directory browsing and the acd setting are incompatible" |echohl None
endif
+ let w:fokeep = &fo
+ let w:aikeep = &ai
+ let w:cikeep = &ci
let w:cinkeep = &cin
let w:cinokeep = &cino
let w:comkeep = &com
let w:cpokeep = &cpo
+ let w:magickeep = &magic
if !g:netrw_keepdir
let w:dirkeep = getcwd()
endif
@@ -3684,7 +3847,7 @@ fun! s:NetOptionSave()
setlocal cino =
setlocal com =
setlocal cpo -=aA
- setlocal nocin noai nospell
+ setlocal nocin noai noci magic nospell fo=nroql2
setlocal tw =0
setlocal report=10000
if has("win32") && !has("win95")
@@ -3705,18 +3868,18 @@ fun! s:NetOptionRestore()
return
endif
unlet w:netoptionsave
-
+
if exists("w:aikeep")| let &ai= w:aikeep|endif
- if (has("netbeans_intg") || has("sun_workshop")) && exists("w:acdkeep")
- let &acd= w:acdkeep
- unlet w:acdkeep
- endif
+ if exists("w:aikeep") |let &ai = w:aikeep |unlet w:aikeep |endif
+ if exists("w:cikeep") |let &ci = w:cikeep |unlet w:cikeep |endif
if exists("w:cinkeep") |let &cin = w:cinkeep |unlet w:cinkeep |endif
if exists("w:cinokeep") |let &cino = w:cinokeep |unlet w:cinokeep |endif
if exists("w:comkeep") |let &com = w:comkeep |unlet w:comkeep |endif
if exists("w:cpokeep") |let &cpo = w:cpokeep |unlet w:cpokeep |endif
if exists("w:dirkeep") |exe "lcd ".w:dirkeep |unlet w:dirkeep |endif
+ if exists("w:fokeep") |let &fo = w:fokeep |unlet w:fokeep |endif
if exists("w:gdkeep") |let &gd = w:gdkeep |unlet w:gdkeep |endif
+ if exists("w:magic") |let &magic = w:magic |unlet w:magic |endif
if exists("w:repkeep") |let &report = w:repkeep |unlet w:repkeep |endif
if exists("w:spellkeep")|let &spell = w:spellkeep |unlet w:spellkeep|endif
if exists("w:twkeep") |let &tw = w:twkeep |unlet w:twkeep |endif
@@ -3733,7 +3896,7 @@ fun! s:NetOptionRestore()
endif
unlet w:swfkeep
endif
-
+
" call Dret("NetOptionRestore")
endfun
@@ -3760,7 +3923,7 @@ endif
if v:version < 700
fun! s:NetSort() range
" " call Dfunc("NetSort()")
-
+
let i = a:firstline + 1
while i <= a:lastline
" find insertion point via binary search
@@ -3795,7 +3958,7 @@ if v:version < 700
endif
let i = i + 1
endwhile
-
+
" " call Dret("NetSort")
endfun
endif
diff --git a/runtime/autoload/netrwSettings.vim b/runtime/autoload/netrwSettings.vim
index 73cfd18f8..e8d6bd28b 100644
--- a/runtime/autoload/netrwSettings.vim
+++ b/runtime/autoload/netrwSettings.vim
@@ -96,6 +96,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
+ put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
put = 'let g:netrw_hide = '.g:netrw_hide
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index 3db95ff7f..1f0b4d1b2 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -1,4 +1,4 @@
-*os_mac.txt* For Vim version 7.0aa. Last change: 2005 Mar 29
+*os_mac.txt* For Vim version 7.0aa. Last change: 2006 Mar 09
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -33,9 +33,10 @@ Indianapolis IN 46220 USA
==============================================================================
1. Filename Convention *mac-filename*
-You can use either the unix or mac path separator or a mix of both. In order
-to determine if the specified filename is relative to the current folder or
-absolute (i.e. relative to the "Desktop"), the following algorithm is used:
+Starting with Vim version 7 you can just use the unix path separators with
+Vim. In order to determine if the specified filename is relative to the
+current folder or absolute (i.e. relative to the "Desktop"), the following
+algorithm is used:
If the path start by a "/", the path is absolute
If the path start by a ":", the path is relative
@@ -58,10 +59,16 @@ You can use the |$VIM| and |$VIMRUNTIME| variable. >
==============================================================================
2. .vimrc and .vim files *mac-vimfile*
-On the Mac files starting with a dot "." are discouraged, thus the rc files
-are named "vimrc" or "_vimrc" and "gvimrc" or "_gvimrc". These files can be in
-any format (mac, dos or unix). Vim can handle any file format when the
-|'nocompatible'| option is set, otherwise it will only handle mac format
+It is recommended to use Unix style line separators for Vim scripts, thus a
+single newline character.
+
+When starting up Vim will load the $VIMRUNTIME/macmap.vim script to define
+default command-key mappings.
+
+On older systems files starting with a dot "." are discouraged, thus the rc
+files are named "vimrc" or "_vimrc" and "gvimrc" or "_gvimrc". These files
+can be in any format (mac, dos or unix). Vim can handle any file format when
+the |'nocompatible'| option is set, otherwise it will only handle mac format
files.
==============================================================================
@@ -80,14 +87,6 @@ A: Assuming that Vim.app is located in /Applications:
==============================================================================
4. Mac Lack *mac-lack*
-The filenames containing both ":" and "/" are sometimes misinterpreted. (just
-re-execute the command)
-
-Scrollbar are not scrolling live, and when only the arrow or scroll area, a
-limit of 32 line or page is scrolled.
-
-Syntax highlighting works on 68k Macs but is _really_ slow.
-
In a terminal CTRL-^ needs to be entered as Shift-Control-6. CTRL-@ as
Shift-Control-2.
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 86593e6ca..b7a4ae6c4 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt* For Vim version 7.0. Last change: Jan 27, 2006
+*pi_netrw.txt* For Vim version 7.0. Last change: Mar 09, 2006
VIM REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -12,7 +12,7 @@
1. Starting With Netrw.................................|netrw-start|
2. Netrw Reference......................................|netrw-ref|
- CONTROLLING EXTERNAL APPLICTIONS...................|netrw-externapp|
+ CONTROLLING EXTERNAL APPLICATIONS..................|netrw-externapp|
READING............................................|netrw-read|
WRITING............................................|netrw-write|
DIRECTORY LISTING..................................|netrw-dirlist|
@@ -32,6 +32,7 @@
Quick Reference Commands Table.....................|netrw-browse-cmds|
Netrw Browser Variables............................|netrw-browse-var|
Introduction To Directory Browsing.................|netrw-browse-intro|
+ Netrw Browsing And Option Incompatibilities........|netrw-incompatible|
Directory Exploring Commands.......................|netrw-explore|
Refreshing The Listing.............................|netrw-ctrl-l|
Going Up...........................................|netrw--|
@@ -39,7 +40,7 @@
Obtaining A File...................................|netrw-O|
Thin, Long, and Wide Listings......................|netrw-i|
Making A New Directory.............................|netrw-d|
- Deleting Files Or Directories......................|netrw-delete|
+ Deleting Files Or Directories......................|netrw-D|
Renaming Files Or Directories......................|netrw-move|
Hiding Files Or Directories........................|netrw-a|
Edit File Or Directory Hiding List.................|netrw-ctrl-h|
@@ -132,7 +133,7 @@ section, |netrw-externapp|.
==============================================================================
2. Netrw Reference *netrw-ref*
-CONTROLLING EXTERNAL APPLICTIONS *netrw-externapp*
+CONTROLLING EXTERNAL APPLICATIONS *netrw-externapp*
Protocol Variable Default Value
-------- ---------------- -------------
@@ -719,6 +720,7 @@ NETRW BROWSER VARIABLES *netrw-browse-var*
=0: re-using the same window
=1: horizontally splitting the window first
=2: vertically splitting the window first
+
*g:netrw_browsex_viewer* specify user's preference for a viewer: >
"kfmclient exec"
"gnome-open"
@@ -727,7 +729,27 @@ NETRW BROWSER VARIABLES *netrw-browse-var*
< is used, then netrwFileHandler() will look for
a script/function to handle the given
extension. (see |netrw_filehandler|).
-<
+
+ *g:netrw_fastbrowse* =0: slow speed browsing, never re-use
+ directory listings; always obtain
+ directory listings.
+ =1: medium speed browsing, re-use directory
+ listings only when remote browsing.
+ (default value)
+ =2: fast browsing, only obtains directory
+ listings when the directory hasn't been
+ seen before (or |netrw-ctrl-l| is used).
+ Fast browsing retains old directory listing
+ buffers so that they don't need to be
+ re-acquired. This feature is especially
+ important for remote browsing. However, if
+ a file is introduced or deleted into or from
+ such directories, the old directory buffer
+ becomes out-of-date. One may always refresh
+ such a directory listing with |netrw-ctrl-l|.
+ This option gives the choice of the trade-off
+ between accuracy and speed to the user.
+
*g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
that can show up as "directories" and "files"
in the listing. This pattern is used to
@@ -819,6 +841,12 @@ NETRW BROWSER VARIABLES *netrw-browse-var*
*g:netrw_winsize* specify initial size of new o/v windows
default: ""
+ *g:DrChipTopLvlMenu* This variable specifies the top level
+ submenu name; by default, its "DrChip.".
+ If you wish to change this, do so in your
+ .vimrc. It affects all of my plugins which
+ have menus.
+
INTRODUCTION TO DIRECTORY BROWSING *netrw-browse-intro*
Netrw supports the browsing of directories on the local system and on remote
@@ -843,6 +871,18 @@ For local directories, the trailing slash is not required.
If you'd like to avoid entering the password in for remote directory listings
with ssh or scp, see |netrw-listhack|.
+
+NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible*
+
+Netrw will not work properly with >
+
+ :set acd
+ :set fo=...ta...
+<
+If either of these options are present when browsing is attempted, netrw
+will change them by using noacd and removing the ta suboptions from the
+|formatoptions|.
+
*netrw-explore* *netrw-pexplore*
*netrw-hexplore* *netrw-sexplore*
DIRECTORY EXPLORING COMMANDS *netrw-nexplore* *netrw-vexplore*
@@ -1094,9 +1134,9 @@ One may use a preview window (currently only for local browsing) by using the
PREVIOUS WINDOW *netrw-P* *netrw-prvwin*
-To edit a file or directory in the previously used window (see :he |CTRL-W_P|),
+To edit a file or directory in the previously used window (see :he |ctrl-w_p|),
press a "P". If there's only one window, then the one window will be
-horizontally split (above/below splitting is controlled by |g:netrw_alto|,
+horizontally split (above/below splitting is controlled by |g:netrw-alto|,
and its initial size is controlled by |g:netrw_winsize|).
If there's more than one window, the previous window will be re-used on
@@ -1399,6 +1439,11 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
11. History *netrw-history* {{{1
+ v79: * directories are now displayed with nowrap
+ * (bugfix) if the column width was smaller than the largest
+ file's name, then netrw would hang when using wide-listing
+ mode - fixed
+ * g:netrw_fastbrowse introduced
v78: * progress has been made on allowing spaces inside directory
names for remote work (reading, writing, browsing). (scp)
v77: * Mikolaj Machowski fixed a bug in a substitute command
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 9cc30ead5..ba89c010e 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4117,6 +4117,7 @@ Ruby if_ruby.txt /*Ruby*
Russian russian.txt /*Russian*
S change.txt /*S*
SHELL starting.txt /*SHELL*
+SQLSetType sql.txt /*SQLSetType*
Select visual.txt /*Select*
Select-mode visual.txt /*Select-mode*
Select-mode-mapping visual.txt /*Select-mode-mapping*
@@ -4132,6 +4133,7 @@ Syntax autocmd.txt /*Syntax*
T motion.txt /*T*
TCL if_tcl.txt /*TCL*
TERM starting.txt /*TERM*
+TSQL sql.txt /*TSQL*
TTpro-telnet syntax.txt /*TTpro-telnet*
Tab intro.txt /*Tab*
TabEnter autocmd.txt /*TabEnter*
@@ -4139,6 +4141,7 @@ TabLeave autocmd.txt /*TabLeave*
Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse*
+Transact-SQL sql.txt /*Transact-SQL*
U undo.txt /*U*
UTF-8 mbyte.txt /*UTF-8*
UTF8-xterm mbyte.txt /*UTF8-xterm*
@@ -5217,7 +5220,9 @@ ft-sgml-syntax syntax.txt /*ft-sgml-syntax*
ft-sh-syntax syntax.txt /*ft-sh-syntax*
ft-spec-plugin filetype.txt /*ft-spec-plugin*
ft-spup-syntax syntax.txt /*ft-spup-syntax*
+ft-sql filetype.txt /*ft-sql*
ft-sql-syntax syntax.txt /*ft-sql-syntax*
+ft-sqlanywhere-syntax syntax.txt /*ft-sqlanywhere-syntax*
ft-sqlinformix-syntax syntax.txt /*ft-sqlinformix-syntax*
ft-syntax-omni insert.txt /*ft-syntax-omni*
ft-tcsh-syntax syntax.txt /*ft-tcsh-syntax*
@@ -5260,12 +5265,14 @@ g'a motion.txt /*g'a*
g, motion.txt /*g,*
g0 motion.txt /*g0*
g8 various.txt /*g8*
+g:DrChipTopLvlMenu pi_netrw.txt /*g:DrChipTopLvlMenu*
g:netrw_alto pi_netrw.txt /*g:netrw_alto*
g:netrw_altv pi_netrw.txt /*g:netrw_altv*
g:netrw_browse_split pi_netrw.txt /*g:netrw_browse_split*
g:netrw_browsex_viewer pi_netrw.txt /*g:netrw_browsex_viewer*
g:netrw_cygwin pi_netrw.txt /*g:netrw_cygwin*
g:netrw_dav_cmd pi_netrw.txt /*g:netrw_dav_cmd*
+g:netrw_fastbrowse pi_netrw.txt /*g:netrw_fastbrowse*
g:netrw_fetch_cmd pi_netrw.txt /*g:netrw_fetch_cmd*
g:netrw_ftp pi_netrw.txt /*g:netrw_ftp*
g:netrw_ftp_browse_reject pi_netrw.txt /*g:netrw_ftp_browse_reject*
@@ -5484,7 +5491,6 @@ hebrew hebrew.txt /*hebrew*
hebrew.txt hebrew.txt /*hebrew.txt*
help various.txt /*help*
help-context help.txt /*help-context*
-help-tags tags 1
help-translated various.txt /*help-translated*
help-xterm-window various.txt /*help-xterm-window*
help.txt help.txt /*help.txt*
@@ -5734,6 +5740,7 @@ index() eval.txt /*index()*
index.txt index.txt /*index.txt*
info-message starting.txt /*info-message*
inform.vim syntax.txt /*inform.vim*
+informix sql.txt /*informix*
initialization starting.txt /*initialization*
input() eval.txt /*input()*
inputdialog() eval.txt /*inputdialog()*
@@ -6019,6 +6026,7 @@ multilang-messages mlang.txt /*multilang-messages*
multilang-scripts mlang.txt /*multilang-scripts*
myfiletypefile syntax.txt /*myfiletypefile*
myscriptsfile syntax.txt /*myscriptsfile*
+mysql sql.txt /*mysql*
mysyntaxfile syntax.txt /*mysyntaxfile*
mysyntaxfile-add syntax.txt /*mysyntaxfile-add*
mysyntaxfile-replace syntax.txt /*mysyntaxfile-replace*
@@ -6107,6 +6115,7 @@ netrw-hexplore pi_netrw.txt /*netrw-hexplore*
netrw-history pi_netrw.txt /*netrw-history*
netrw-horiz pi_netrw.txt /*netrw-horiz*
netrw-i pi_netrw.txt /*netrw-i*
+netrw-incompatible pi_netrw.txt /*netrw-incompatible*
netrw-list pi_netrw.txt /*netrw-list*
netrw-listbookmark pi_netrw.txt /*netrw-listbookmark*
netrw-listhack pi_netrw.txt /*netrw-listhack*
@@ -6269,6 +6278,7 @@ option-summary options.txt /*option-summary*
options options.txt /*options*
options-changed version5.txt /*options-changed*
options.txt options.txt /*options.txt*
+oracle sql.txt /*oracle*
os2 os_os2.txt /*os2*
os2ansi os_os2.txt /*os2ansi*
os390 os_390.txt /*os390*
@@ -6341,6 +6351,7 @@ pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
pi_paren.txt pi_paren.txt /*pi_paren.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
+plsql sql.txt /*plsql*
plugin usr_05.txt /*plugin*
plugin-details filetype.txt /*plugin-details*
plugin-filetype usr_41.txt /*plugin-filetype*
@@ -6356,6 +6367,7 @@ ports-6 version6.txt /*ports-6*
posix vi_diff.txt /*posix*
posix-compliance vi_diff.txt /*posix-compliance*
posix-screen-size vi_diff.txt /*posix-screen-size*
+postgress sql.txt /*postgress*
postscr.vim syntax.txt /*postscr.vim*
postscript-cjk-printing print.txt /*postscript-cjk-printing*
postscript-print-encoding print.txt /*postscript-print-encoding*
@@ -6379,6 +6391,7 @@ profiling repeat.txt /*profiling*
profiling-variable eval.txt /*profiling-variable*
progname-variable eval.txt /*progname-variable*
progress.vim syntax.txt /*progress.vim*
+psql sql.txt /*psql*
ptcap.vim syntax.txt /*ptcap.vim*
pterm-mouse options.txt /*pterm-mouse*
pumvisible() eval.txt /*pumvisible()*
@@ -6769,8 +6782,23 @@ sponsor-faq sponsor.txt /*sponsor-faq*
sponsor.txt sponsor.txt /*sponsor.txt*
spoon os_unix.txt /*spoon*
spup.vim syntax.txt /*spup.vim*
+sql-adding-dialects sql.txt /*sql-adding-dialects*
+sql-dialects sql.txt /*sql-dialects*
+sql-macros sql.txt /*sql-macros*
+sql-matchit sql.txt /*sql-matchit*
+sql-navigation sql.txt /*sql-navigation*
+sql-object-motions sql.txt /*sql-object-motions*
+sql-predefined-objects sql.txt /*sql-predefined-objects*
+sql-type-default sql.txt /*sql-type-default*
+sql-types sql.txt /*sql-types*
+sql.txt sql.txt /*sql.txt*
sql.vim syntax.txt /*sql.vim*
+sqlanywhere sql.txt /*sqlanywhere*
+sqlanywhere.vim syntax.txt /*sqlanywhere.vim*
sqlinformix.vim syntax.txt /*sqlinformix.vim*
+sqlj sql.txt /*sqlj*
+sqlserver sql.txt /*sqlserver*
+sqlsettype sql.txt /*sqlsettype*
sscanf eval.txt /*sscanf*
standard-plugin usr_05.txt /*standard-plugin*
standard-plugin-list help.txt /*standard-plugin-list*
@@ -6824,6 +6852,7 @@ swapchoice-variable eval.txt /*swapchoice-variable*
swapcommand-variable eval.txt /*swapcommand-variable*
swapfile-changed version4.txt /*swapfile-changed*
swapname-variable eval.txt /*swapname-variable*
+sybase sql.txt /*sybase*
syn-sync-grouphere syntax.txt /*syn-sync-grouphere*
syn-sync-groupthere syntax.txt /*syn-sync-groupthere*
syn-sync-linecont syntax.txt /*syn-sync-linecont*
diff --git a/runtime/menu.vim b/runtime/menu.vim
index 4313a8e14..a9b1c0ec6 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Mar 05
+" Last Change: 2006 Mar 09
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
@@ -131,41 +131,6 @@ an 10.600 &File.-SEP4- <Nop>
an 10.610 &File.Sa&ve-Exit<Tab>:wqa :confirm wqa<CR>
an 10.620 &File.E&xit<Tab>:qa :confirm qa<CR>
-" Pasting blockwise and linewise selections is not possible in Insert and
-" Visual mode without the +virtualedit feature. They are pasted as if they
-" were characterwise instead. Add to that some tricks to leave the cursor in
-" the right position, also for "gi".
-" Note: the same stuff appears in mswin.vim.
-if has("virtualedit")
- let s:paste_cmd = ":call <SID>Paste()<CR>"
- func! <SID>Paste()
- let ove = &ve
- set ve=all
- normal! `^
- if @+ != ''
- normal! "+gP
- endif
- let c = col(".")
- normal! i
- if col(".") < c " compensate for i<ESC> moving the cursor left
- normal! l
- endif
- let &ve = ove
- endfunc
-else
- let s:paste_cmd = "\"=@+.'xy'<CR>gPFx\"_2x"
-endif
-
-" Define the string to use for items that are present both in Edit, Popup and
-" Toolbar menu.
-if has("virtualedit")
- let s:paste_v_cmd = '"-c<Esc>' . s:paste_cmd
- let s:paste_i_cmd = '<Esc>' . s:paste_cmd . 'gi'
-else
- let s:paste_v_cmd = '"-c<Esc>gix<Esc>' . s:paste_cmd . '"_x'
- let s:paste_i_cmd = 'x<Esc>' . s:paste_cmd . '"_s'
-endif
-
func! <SID>SelectAll()
exe "norm gg" . (&slm == "" ? "VG" : "gH\<C-O>G")
endfunc
@@ -182,8 +147,8 @@ vnoremenu 20.350 &Edit.&Copy<Tab>"+y "+y
cnoremenu 20.350 &Edit.&Copy<Tab>"+y <C-Y>
nnoremenu 20.360 &Edit.&Paste<Tab>"+gP "+gP
cnoremenu &Edit.&Paste<Tab>"+gP <C-R>+
-exe 'vnoremenu <script> &Edit.&Paste<Tab>"+gP ' . s:paste_v_cmd
-exe 'inoremenu <script> &Edit.&Paste<Tab>"+gP ' . s:paste_i_cmd
+exe 'vnoremenu <script> &Edit.&Paste<Tab>"+gP ' . paste#paste_cmd['v']
+exe 'inoremenu <script> &Edit.&Paste<Tab>"+gP ' . paste#paste_cmd['i']
nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p
nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
@@ -199,10 +164,10 @@ an 20.405 &Edit.-SEP2- <Nop>
if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
an 20.410 &Edit.&Find\.\.\. :promptfind<CR>
vunmenu &Edit.&Find\.\.\.
- vnoremenu <silent> &Edit.&Find\.\.\. y:call <SID>FixFText()<CR>:promptfind <C-R>"<CR>
+ vnoremenu <silent> &Edit.&Find\.\.\. y:promptfind <C-R>=<SID>FixFText()<CR><CR>
an 20.420 &Edit.Find\ and\ Rep&lace\.\.\. :promptrepl<CR>
vunmenu &Edit.Find\ and\ Rep&lace\.\.\.
- vnoremenu <silent> &Edit.Find\ and\ Rep&lace\.\.\. y:call <SID>FixFText()<CR>:promptrepl <C-R>"<CR>
+ vnoremenu <silent> &Edit.Find\ and\ Rep&lace\.\.\. y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
else
an 20.410 &Edit.&Find<Tab>/ /
an 20.420 &Edit.Find\ and\ Rep&lace<Tab>:%s :%s/
@@ -215,7 +180,7 @@ an 20.430 &Edit.Settings\ &Window :options<CR>
fun! s:FixFText()
" Fix text in nameless register to be used with :promptfind.
- let @" = substitute(@", "[\r\n]", '\\n', 'g')
+ return substitute(@", "[\r\n]", '\\n', 'g')
endfun
" Edit/Global Settings
@@ -851,8 +816,8 @@ vnoremenu 1.30 PopUp.&Copy "+y
cnoremenu 1.30 PopUp.&Copy <C-Y>
nnoremenu 1.40 PopUp.&Paste "+gP
cnoremenu 1.40 PopUp.&Paste <C-R>+
-exe 'vnoremenu <script> 1.40 PopUp.&Paste ' . s:paste_v_cmd
-exe 'inoremenu <script> 1.40 PopUp.&Paste ' . s:paste_i_cmd
+exe 'vnoremenu <script> 1.40 PopUp.&Paste ' . paste#paste_cmd['v']
+exe 'inoremenu <script> 1.40 PopUp.&Paste ' . paste#paste_cmd['i']
vnoremenu 1.50 PopUp.&Delete x
an 1.55 PopUp.-SEP2- <Nop>
vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
@@ -976,14 +941,14 @@ if has("toolbar")
cnoremenu 1.80 ToolBar.Copy <C-Y>
nnoremenu 1.90 ToolBar.Paste "+gP
cnoremenu ToolBar.Paste <C-R>+
- exe 'vnoremenu <script> ToolBar.Paste ' . s:paste_v_cmd
- exe 'inoremenu <script> ToolBar.Paste ' . s:paste_i_cmd
+ exe 'vnoremenu <script> ToolBar.Paste ' . paste#paste_cmd['v']
+ exe 'inoremenu <script> ToolBar.Paste ' . paste#paste_cmd['i']
if !has("gui_athena")
an 1.95 ToolBar.-sep3- <Nop>
an 1.100 ToolBar.Replace :promptrepl<CR>
vunmenu ToolBar.Replace
- vnoremenu ToolBar.Replace y:promptrepl <C-R>"<CR>
+ vnoremenu ToolBar.Replace y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
an 1.110 ToolBar.FindNext n
an 1.120 ToolBar.FindPrev N
endif
@@ -1099,8 +1064,6 @@ an 50.730 &Syntax.&Convert\ to\ HTML :runtime syntax/2html.vim<CR>
endif " !exists("did_install_syntax_menu")
-unlet! s:paste_i_cmd s:paste_v_cmd s:paste_cmd
-
" Restore the previous value of 'cpoptions'.
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/syntax/sqlanywhere.vim b/runtime/syntax/sqlanywhere.vim
new file mode 100644
index 000000000..b69da0bde
--- /dev/null
+++ b/runtime/syntax/sqlanywhere.vim
@@ -0,0 +1,706 @@
+" Vim syntax file
+" Language: SQL, Adaptive Server Anywhere
+" Maintainer: David Fishburn <fishburn at ianywhere dot com>
+" Last Change: Thu Sep 15 2005 10:30:09 AM
+" Version: 9.0.2
+
+" Description: Updated to Adaptive Server Anywhere 9.0.2
+" Updated to Adaptive Server Anywhere 9.0.1
+" Updated to Adaptive Server Anywhere 9.0.0
+"
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+syn case ignore
+
+" The SQL reserved words, defined as keywords.
+
+syn keyword sqlSpecial false null true
+
+" common functions
+syn keyword sqlFunction count sum avg min max debug_eng isnull
+syn keyword sqlFunction greater lesser argn string ymd todate
+syn keyword sqlFunction totimestamp date today now utc_now
+syn keyword sqlFunction number identity years months weeks days
+syn keyword sqlFunction hours minutes seconds second minute hour
+syn keyword sqlFunction day month year dow date_format substr
+syn keyword sqlFunction substring byte_substr length byte_length
+syn keyword sqlFunction datalength ifnull evaluate list
+syn keyword sqlFunction soundex similar difference like_start
+syn keyword sqlFunction like_end regexp_compile
+syn keyword sqlFunction regexp_compile_patindex remainder abs
+syn keyword sqlFunction graphical_plan plan explanation ulplan
+syn keyword sqlFunction graphical_ulplan long_ulplan
+syn keyword sqlFunction short_ulplan rewrite watcomsql
+syn keyword sqlFunction transactsql dialect estimate
+syn keyword sqlFunction estimate_source index_estimate
+syn keyword sqlFunction experience_estimate traceback wsql_state
+syn keyword sqlFunction lang_message dateadd datediff datepart
+syn keyword sqlFunction datename dayname monthname quarter
+syn keyword sqlFunction tsequal hextoint inttohex rand textptr
+syn keyword sqlFunction rowid grouping stddev variance rank
+syn keyword sqlFunction dense_rank density percent_rank user_name
+syn keyword sqlFunction user_id str stuff char_length nullif
+syn keyword sqlFunction sortkey compare ts_index_statistics
+syn keyword sqlFunction ts_table_statistics isdate isnumeric
+syn keyword sqlFunction get_identity lookup newid uuidtostr
+syn keyword sqlFunction strtouuid varexists
+
+" 9.0.1 functions
+syn keyword sqlFunction acos asin atan atn2 cast ceiling convert cos cot
+syn keyword sqlFunction char_length coalesce dateformat datetime degrees exp
+syn keyword sqlFunction floor getdate insertstr
+syn keyword sqlFunction log log10 lower mod pi power
+syn keyword sqlFunction property radians replicate round sign sin
+syn keyword sqlFunction sqldialect tan truncate truncnum
+syn keyword sqlFunction base64_encode base64_decode
+syn keyword sqlFunction hash compress decompress encrypt decrypt
+
+" string functions
+syn keyword sqlFunction ascii char left ltrim repeat
+syn keyword sqlFunction space right rtrim trim lcase ucase
+syn keyword sqlFunction locate charindex patindex replace
+syn keyword sqlFunction errormsg csconvert
+
+" property functions
+syn keyword sqlFunction db_id db_name property_name
+syn keyword sqlFunction property_description property_number
+syn keyword sqlFunction next_connection next_database property
+syn keyword sqlFunction connection_property db_property db_extended_property
+syn keyword sqlFunction event_parmeter event_condition event_condition_name
+
+" sa_ procedures
+syn keyword sqlFunction sa_add_index_consultant_analysis
+syn keyword sqlFunction sa_add_workload_query
+syn keyword sqlFunction sa_app_deregister
+syn keyword sqlFunction sa_app_get_infoStr
+syn keyword sqlFunction sa_app_get_status
+syn keyword sqlFunction sa_app_register
+syn keyword sqlFunction sa_app_registration_unlock
+syn keyword sqlFunction sa_app_set_infoStr
+syn keyword sqlFunction sa_audit_string
+syn keyword sqlFunction sa_check_commit
+syn keyword sqlFunction sa_checkpoint_execute
+syn keyword sqlFunction sa_conn_activity
+syn keyword sqlFunction sa_conn_compression_info
+syn keyword sqlFunction sa_conn_deregister
+syn keyword sqlFunction sa_conn_info
+syn keyword sqlFunction sa_conn_properties
+syn keyword sqlFunction sa_conn_properties_by_conn
+syn keyword sqlFunction sa_conn_properties_by_name
+syn keyword sqlFunction sa_conn_register
+syn keyword sqlFunction sa_conn_set_status
+syn keyword sqlFunction sa_create_analysis_from_query
+syn keyword sqlFunction sa_db_info
+syn keyword sqlFunction sa_db_properties
+syn keyword sqlFunction sa_disable_auditing_type
+syn keyword sqlFunction sa_disable_index
+syn keyword sqlFunction sa_disk_free_space
+syn keyword sqlFunction sa_enable_auditing_type
+syn keyword sqlFunction sa_enable_index
+syn keyword sqlFunction sa_end_forward_to
+syn keyword sqlFunction sa_eng_properties
+syn keyword sqlFunction sa_event_schedules
+syn keyword sqlFunction sa_exec_script
+syn keyword sqlFunction sa_flush_cache
+syn keyword sqlFunction sa_flush_statistics
+syn keyword sqlFunction sa_forward_to
+syn keyword sqlFunction sa_get_dtt
+syn keyword sqlFunction sa_get_histogram
+syn keyword sqlFunction sa_get_request_profile
+syn keyword sqlFunction sa_get_request_profile_sub
+syn keyword sqlFunction sa_get_request_times
+syn keyword sqlFunction sa_get_server_messages
+syn keyword sqlFunction sa_get_simulated_scale_factors
+syn keyword sqlFunction sa_get_workload_capture_status
+syn keyword sqlFunction sa_index_density
+syn keyword sqlFunction sa_index_levels
+syn keyword sqlFunction sa_index_statistics
+syn keyword sqlFunction sa_internal_alter_index_ability
+syn keyword sqlFunction sa_internal_create_analysis_from_query
+syn keyword sqlFunction sa_internal_disk_free_space
+syn keyword sqlFunction sa_internal_get_dtt
+syn keyword sqlFunction sa_internal_get_histogram
+syn keyword sqlFunction sa_internal_get_request_times
+syn keyword sqlFunction sa_internal_get_simulated_scale_factors
+syn keyword sqlFunction sa_internal_get_workload_capture_status
+syn keyword sqlFunction sa_internal_index_density
+syn keyword sqlFunction sa_internal_index_levels
+syn keyword sqlFunction sa_internal_index_statistics
+syn keyword sqlFunction sa_internal_java_loaded_classes
+syn keyword sqlFunction sa_internal_locks
+syn keyword sqlFunction sa_internal_pause_workload_capture
+syn keyword sqlFunction sa_internal_procedure_profile
+syn keyword sqlFunction sa_internal_procedure_profile_summary
+syn keyword sqlFunction sa_internal_read_backup_history
+syn keyword sqlFunction sa_internal_recommend_indexes
+syn keyword sqlFunction sa_internal_reset_identity
+syn keyword sqlFunction sa_internal_resume_workload_capture
+syn keyword sqlFunction sa_internal_start_workload_capture
+syn keyword sqlFunction sa_internal_stop_index_consultant
+syn keyword sqlFunction sa_internal_stop_workload_capture
+syn keyword sqlFunction sa_internal_table_fragmentation
+syn keyword sqlFunction sa_internal_table_page_usage
+syn keyword sqlFunction sa_internal_table_stats
+syn keyword sqlFunction sa_internal_virtual_sysindex
+syn keyword sqlFunction sa_internal_virtual_sysixcol
+syn keyword sqlFunction sa_java_loaded_classes
+syn keyword sqlFunction sa_jdk_version
+syn keyword sqlFunction sa_locks
+syn keyword sqlFunction sa_make_object
+syn keyword sqlFunction sa_pause_workload_capture
+syn keyword sqlFunction sa_proc_debug_attach_to_connection
+syn keyword sqlFunction sa_proc_debug_connect
+syn keyword sqlFunction sa_proc_debug_detach_from_connection
+syn keyword sqlFunction sa_proc_debug_disconnect
+syn keyword sqlFunction sa_proc_debug_get_connection_name
+syn keyword sqlFunction sa_proc_debug_release_connection
+syn keyword sqlFunction sa_proc_debug_request
+syn keyword sqlFunction sa_proc_debug_version
+syn keyword sqlFunction sa_proc_debug_wait_for_connection
+syn keyword sqlFunction sa_procedure_profile
+syn keyword sqlFunction sa_procedure_profile_summary
+syn keyword sqlFunction sa_read_backup_history
+syn keyword sqlFunction sa_recommend_indexes
+syn keyword sqlFunction sa_recompile_views
+syn keyword sqlFunction sa_remove_index_consultant_analysis
+syn keyword sqlFunction sa_remove_index_consultant_workload
+syn keyword sqlFunction sa_reset_identity
+syn keyword sqlFunction sa_resume_workload_capture
+syn keyword sqlFunction sa_server_option
+syn keyword sqlFunction sa_set_simulated_scale_factor
+syn keyword sqlFunction sa_setremoteuser
+syn keyword sqlFunction sa_setsubscription
+syn keyword sqlFunction sa_start_recording_commits
+syn keyword sqlFunction sa_start_workload_capture
+syn keyword sqlFunction sa_statement_text
+syn keyword sqlFunction sa_stop_index_consultant
+syn keyword sqlFunction sa_stop_recording_commits
+syn keyword sqlFunction sa_stop_workload_capture
+syn keyword sqlFunction sa_sync
+syn keyword sqlFunction sa_sync_sub
+syn keyword sqlFunction sa_table_fragmentation
+syn keyword sqlFunction sa_table_page_usage
+syn keyword sqlFunction sa_table_stats
+syn keyword sqlFunction sa_update_index_consultant_workload
+syn keyword sqlFunction sa_validate
+syn keyword sqlFunction sa_virtual_sysindex
+syn keyword sqlFunction sa_virtual_sysixcol
+
+" sp_ procedures
+syn keyword sqlFunction sp_addalias
+syn keyword sqlFunction sp_addauditrecord
+syn keyword sqlFunction sp_adddumpdevice
+syn keyword sqlFunction sp_addgroup
+syn keyword sqlFunction sp_addlanguage
+syn keyword sqlFunction sp_addlogin
+syn keyword sqlFunction sp_addmessage
+syn keyword sqlFunction sp_addremotelogin
+syn keyword sqlFunction sp_addsegment
+syn keyword sqlFunction sp_addserver
+syn keyword sqlFunction sp_addthreshold
+syn keyword sqlFunction sp_addtype
+syn keyword sqlFunction sp_adduser
+syn keyword sqlFunction sp_auditdatabase
+syn keyword sqlFunction sp_auditlogin
+syn keyword sqlFunction sp_auditobject
+syn keyword sqlFunction sp_auditoption
+syn keyword sqlFunction sp_auditsproc
+syn keyword sqlFunction sp_bindefault
+syn keyword sqlFunction sp_bindmsg
+syn keyword sqlFunction sp_bindrule
+syn keyword sqlFunction sp_changedbowner
+syn keyword sqlFunction sp_changegroup
+syn keyword sqlFunction sp_checknames
+syn keyword sqlFunction sp_checkperms
+syn keyword sqlFunction sp_checkreswords
+syn keyword sqlFunction sp_clearstats
+syn keyword sqlFunction sp_column_privileges
+syn keyword sqlFunction sp_columns
+syn keyword sqlFunction sp_commonkey
+syn keyword sqlFunction sp_configure
+syn keyword sqlFunction sp_cursorinfo
+syn keyword sqlFunction sp_databases
+syn keyword sqlFunction sp_datatype_info
+syn keyword sqlFunction sp_dboption
+syn keyword sqlFunction sp_dbremap
+syn keyword sqlFunction sp_depends
+syn keyword sqlFunction sp_diskdefault
+syn keyword sqlFunction sp_displaylogin
+syn keyword sqlFunction sp_dropalias
+syn keyword sqlFunction sp_dropdevice
+syn keyword sqlFunction sp_dropgroup
+syn keyword sqlFunction sp_dropkey
+syn keyword sqlFunction sp_droplanguage
+syn keyword sqlFunction sp_droplogin
+syn keyword sqlFunction sp_dropmessage
+syn keyword sqlFunction sp_dropremotelogin
+syn keyword sqlFunction sp_dropsegment
+syn keyword sqlFunction sp_dropserver
+syn keyword sqlFunction sp_dropthreshold
+syn keyword sqlFunction sp_droptype
+syn keyword sqlFunction sp_dropuser
+syn keyword sqlFunction sp_estspace
+syn keyword sqlFunction sp_extendsegment
+syn keyword sqlFunction sp_fkeys
+syn keyword sqlFunction sp_foreignkey
+syn keyword sqlFunction sp_getmessage
+syn keyword sqlFunction sp_help
+syn keyword sqlFunction sp_helpconstraint
+syn keyword sqlFunction sp_helpdb
+syn keyword sqlFunction sp_helpdevice
+syn keyword sqlFunction sp_helpgroup
+syn keyword sqlFunction sp_helpindex
+syn keyword sqlFunction sp_helpjoins
+syn keyword sqlFunction sp_helpkey
+syn keyword sqlFunction sp_helplanguage
+syn keyword sqlFunction sp_helplog
+syn keyword sqlFunction sp_helpprotect
+syn keyword sqlFunction sp_helpremotelogin
+syn keyword sqlFunction sp_helpsegment
+syn keyword sqlFunction sp_helpserver
+syn keyword sqlFunction sp_helpsort
+syn keyword sqlFunction sp_helptext
+syn keyword sqlFunction sp_helpthreshold
+syn keyword sqlFunction sp_helpuser
+syn keyword sqlFunction sp_indsuspect
+syn keyword sqlFunction sp_lock
+syn keyword sqlFunction sp_locklogin
+syn keyword sqlFunction sp_logdevice
+syn keyword sqlFunction sp_login_environment
+syn keyword sqlFunction sp_modifylogin
+syn keyword sqlFunction sp_modifythreshold
+syn keyword sqlFunction sp_monitor
+syn keyword sqlFunction sp_password
+syn keyword sqlFunction sp_pkeys
+syn keyword sqlFunction sp_placeobject
+syn keyword sqlFunction sp_primarykey
+syn keyword sqlFunction sp_procxmode
+syn keyword sqlFunction sp_recompile
+syn keyword sqlFunction sp_remap
+syn keyword sqlFunction sp_remote_columns
+syn keyword sqlFunction sp_remote_exported_keys
+syn keyword sqlFunction sp_remote_imported_keys
+syn keyword sqlFunction sp_remote_pcols
+syn keyword sqlFunction sp_remote_primary_keys
+syn keyword sqlFunction sp_remote_procedures
+syn keyword sqlFunction sp_remote_tables
+syn keyword sqlFunction sp_remoteoption
+syn keyword sqlFunction sp_rename
+syn keyword sqlFunction sp_renamedb
+syn keyword sqlFunction sp_reportstats
+syn keyword sqlFunction sp_reset_tsql_environment
+syn keyword sqlFunction sp_role
+syn keyword sqlFunction sp_server_info
+syn keyword sqlFunction sp_servercaps
+syn keyword sqlFunction sp_serverinfo
+syn keyword sqlFunction sp_serveroption
+syn keyword sqlFunction sp_setlangalias
+syn keyword sqlFunction sp_setreplicate
+syn keyword sqlFunction sp_setrepproc
+syn keyword sqlFunction sp_setreptable
+syn keyword sqlFunction sp_spaceused
+syn keyword sqlFunction sp_special_columns
+syn keyword sqlFunction sp_sproc_columns
+syn keyword sqlFunction sp_statistics
+syn keyword sqlFunction sp_stored_procedures
+syn keyword sqlFunction sp_syntax
+syn keyword sqlFunction sp_table_privileges
+syn keyword sqlFunction sp_tables
+syn keyword sqlFunction sp_tsql_environment
+syn keyword sqlFunction sp_tsql_feature_not_supported
+syn keyword sqlFunction sp_unbindefault
+syn keyword sqlFunction sp_unbindmsg
+syn keyword sqlFunction sp_unbindrule
+syn keyword sqlFunction sp_volchanged
+syn keyword sqlFunction sp_who
+syn keyword sqlFunction xp_scanf
+syn keyword sqlFunction xp_sprintf
+
+" server functions
+syn keyword sqlFunction col_length
+syn keyword sqlFunction col_name
+syn keyword sqlFunction index_col
+syn keyword sqlFunction object_id
+syn keyword sqlFunction object_name
+syn keyword sqlFunction proc_role
+syn keyword sqlFunction show_role
+syn keyword sqlFunction xp_cmdshell
+syn keyword sqlFunction xp_msver
+syn keyword sqlFunction xp_read_file
+syn keyword sqlFunction xp_real_cmdshell
+syn keyword sqlFunction xp_real_read_file
+syn keyword sqlFunction xp_real_sendmail
+syn keyword sqlFunction xp_real_startmail
+syn keyword sqlFunction xp_real_startsmtp
+syn keyword sqlFunction xp_real_stopmail
+syn keyword sqlFunction xp_real_stopsmtp
+syn keyword sqlFunction xp_real_write_file
+syn keyword sqlFunction xp_scanf
+syn keyword sqlFunction xp_sendmail
+syn keyword sqlFunction xp_sprintf
+syn keyword sqlFunction xp_startmail
+syn keyword sqlFunction xp_startsmtp
+syn keyword sqlFunction xp_stopmail
+syn keyword sqlFunction xp_stopsmtp
+syn keyword sqlFunction xp_write_file
+
+" http functions
+syn keyword sqlFunction http_header http_variable
+syn keyword sqlFunction next_http_header next_http_variable
+syn keyword sqlFunction sa_set_http_header sa_set_http_option
+syn keyword sqlFunction sa_http_variable_info sa_http_header_info
+
+" http functions 9.0.1
+syn keyword sqlFunction http_encode http_decode
+syn keyword sqlFunction html_encode html_decode
+
+" keywords
+syn keyword sqlKeyword absolute action activ add address after
+syn keyword sqlKeyword algorithm allow_dup_row
+syn keyword sqlKeyword alter and any as asc ascii ase at atomic
+syn keyword sqlKeyword attended audit authorization
+syn keyword sqlKeyword autoincrement autostop bcp before
+syn keyword sqlKeyword between blank
+syn keyword sqlKeyword blanks block bottom unbounded break bufferpool
+syn keyword sqlKeyword bulk by byte cache calibrate calibration
+syn keyword sqlKeyword capability cascade cast
+syn keyword sqlKeyword catalog changes char char_convert check
+syn keyword sqlKeyword class classes client
+syn keyword sqlKeyword cluster clustered collation column
+syn keyword sqlKeyword command comment comparisons
+syn keyword sqlKeyword compatible component compressed compute
+syn keyword sqlKeyword concat confirm connection
+syn keyword sqlKeyword console consolidate consolidated
+syn keyword sqlKeyword constraint constraints continue
+syn keyword sqlKeyword convert count crc cross cube
+syn keyword sqlKeyword current cursor data data database
+syn keyword sqlKeyword current_timestamp current_user
+syn keyword sqlKeyword datatype dba dbfile
+syn keyword sqlKeyword dbspace debug
+syn keyword sqlKeyword decrypted default defaults definition
+syn keyword sqlKeyword delay deleting delimited desc
+syn keyword sqlKeyword description deterministic directory
+syn keyword sqlKeyword disable distinct do domain
+syn keyword sqlKeyword dsetpass dttm dynamic each editproc ejb
+syn keyword sqlKeyword else elseif enable encrypted end endif
+syn keyword sqlKeyword engine erase error escape escapes event
+syn keyword sqlKeyword every exception exclusive exec
+syn keyword sqlKeyword existing exists expanded express
+syn keyword sqlKeyword external externlogin factor false
+syn keyword sqlKeyword fastfirstrow fieldproc file filler
+syn keyword sqlKeyword fillfactor finish first first_keyword
+syn keyword sqlKeyword following force foreign format
+syn keyword sqlKeyword freepage full function go global
+syn keyword sqlKeyword group handler hash having hexadecimal
+syn keyword sqlKeyword hidden high hng hold holdlock
+syn keyword sqlKeyword hours id identified identity ignore
+syn keyword sqlKeyword ignore_dup_key ignore_dup_row immediate
+syn keyword sqlKeyword in inactive incremental index info inner
+syn keyword sqlKeyword inout insensitive inserting
+syn keyword sqlKeyword instead integrated
+syn keyword sqlKeyword internal into iq is isolation jar java
+syn keyword sqlKeyword jconnect jdk join kb key language last
+syn keyword sqlKeyword last_keyword lateral left level like
+syn keyword sqlKeyword limit local location log
+syn keyword sqlKeyword logging login long low main
+syn keyword sqlKeyword match max maximum membership
+syn keyword sqlKeyword minutes mirror mode modify monitor
+syn keyword sqlKeyword name named native natural new next no
+syn keyword sqlKeyword noholdlock nolock nonclustered none not
+syn keyword sqlKeyword notify null nulls of off old on
+syn keyword sqlKeyword only optimization optimizer option
+syn keyword sqlKeyword or order others out outer over
+syn keyword sqlKeyword package packetsize padding page pages
+syn keyword sqlKeyword paglock parallel part partition path
+syn keyword sqlKeyword pctfree plan preceding precision prefetch prefix
+syn keyword sqlKeyword preserve preview primary
+syn keyword sqlKeyword prior priqty private privileges
+syn keyword sqlKeyword procedure public publication publish publisher
+syn keyword sqlKeyword quotes range readcommitted
+syn keyword sqlKeyword readpast readuncommitted
+syn keyword sqlKeyword received recompile recursive references
+syn keyword sqlKeyword referencing relative
+syn keyword sqlKeyword rename repeatableread
+syn keyword sqlKeyword replicate rereceive resend reset
+syn keyword sqlKeyword resolve resource respect
+syn keyword sqlKeyword restrict result retain
+syn keyword sqlKeyword returns right
+syn keyword sqlKeyword rollup row rowlock rows save
+syn keyword sqlKeyword schedule schema scroll seconds secqty
+syn keyword sqlKeyword send sensitive sent serializable
+syn keyword sqlKeyword server server session sets
+syn keyword sqlKeyword share since site size skip
+syn keyword sqlKeyword some sorted_data sqlcode sqlid
+syn keyword sqlKeyword sqlstate stacker statement
+syn keyword sqlKeyword statistics status stogroup store
+syn keyword sqlKeyword strip subpages subscribe subscription
+syn keyword sqlKeyword subtransaction synchronization
+syn keyword sqlKeyword syntax_error table tablock
+syn keyword sqlKeyword tablockx tb temp template temporary then
+syn keyword sqlKeyword timezone to top
+syn keyword sqlKeyword transaction transactional tries true
+syn keyword sqlKeyword tsequal type unconditionally unenforced
+syn keyword sqlKeyword unique union unknown unload
+syn keyword sqlKeyword updating updlock upgrade use user
+syn keyword sqlKeyword using utc utilities validproc
+syn keyword sqlKeyword value values varchar variable
+syn keyword sqlKeyword varying vcat verify view virtual wait
+syn keyword sqlKeyword warning wd when where window with within
+syn keyword sqlKeyword with_lparen work writefile
+syn keyword sqlKeyword xlock zeros
+" XML function support
+syn keyword sqlFunction openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
+syn keyword sqlFunction xmlattributes
+syn keyword sqlKeyword raw auto elements explicit
+" HTTP support
+syn keyword sqlKeyword authorization secure url service
+" HTTP 9.0.2 new procedure keywords
+syn keyword sqlKeyword namespace certificate clientport proxy
+" OLAP support 9.0.0
+syn keyword sqlKeyword covar_pop covar_samp corr regr_slope regr_intercept
+syn keyword sqlKeyword regr_count regr_r2 regr_avgx regr_avgy
+syn keyword sqlKeyword regr_sxx regr_syy regr_sxy
+
+" Alternate keywords
+syn keyword sqlKeyword character dec options proc reference
+syn keyword sqlKeyword subtrans tran syn keyword
+
+
+syn keyword sqlOperator in any some all between exists
+syn keyword sqlOperator like escape not is and or
+syn keyword sqlOperator intersect minus
+syn keyword sqlOperator prior distinct
+
+syn keyword sqlStatement allocate alter backup begin call case
+syn keyword sqlStatement checkpoint clear close commit configure connect
+syn keyword sqlStatement create deallocate declare delete describe
+syn keyword sqlStatement disconnect drop execute exit explain fetch
+syn keyword sqlStatement for forward from get goto grant help if include
+syn keyword sqlStatement input insert install leave load lock loop
+syn keyword sqlStatement message open output parameter parameters passthrough
+syn keyword sqlStatement prepare print put raiserror read readtext release
+syn keyword sqlStatement remote remove reorganize resignal restore resume
+syn keyword sqlStatement return revoke rollback savepoint select
+syn keyword sqlStatement set setuser signal start stop synchronize
+syn keyword sqlStatement system trigger truncate unload update
+syn keyword sqlStatement validate waitfor whenever while writetext
+
+
+syn keyword sqlType char long varchar text
+syn keyword sqlType bigint decimal double float int integer numeric
+syn keyword sqlType smallint tinyint real
+syn keyword sqlType money smallmoney
+syn keyword sqlType bit
+syn keyword sqlType date datetime smalldate time timestamp
+syn keyword sqlType binary image varbinary uniqueidentifier
+syn keyword sqlType xml unsigned
+
+syn keyword sqlOption Allow_nulls_by_default
+syn keyword sqlOption Ansi_blanks
+syn keyword sqlOption Ansi_close_cursors_on_rollback
+syn keyword sqlOption Ansi_integer_overflow
+syn keyword sqlOption Ansi_permissions
+syn keyword sqlOption Ansi_update_constraints
+syn keyword sqlOption Ansinull
+syn keyword sqlOption Assume_distinct_servers
+syn keyword sqlOption Auditing
+syn keyword sqlOption Auditing_options
+syn keyword sqlOption Auto_commit
+syn keyword sqlOption Auto_refetch
+syn keyword sqlOption Automatic_timestamp
+syn keyword sqlOption Background_priority
+syn keyword sqlOption Bell
+syn keyword sqlOption Blob_threshold
+syn keyword sqlOption Blocking
+syn keyword sqlOption Blocking_timeout
+syn keyword sqlOption Chained
+syn keyword sqlOption Char_OEM_Translation
+syn keyword sqlOption Checkpoint_time
+syn keyword sqlOption Cis_option
+syn keyword sqlOption Cis_rowset_size
+syn keyword sqlOption Close_on_endtrans
+syn keyword sqlOption Command_delimiter
+syn keyword sqlOption Commit_on_exit
+syn keyword sqlOption Compression
+syn keyword sqlOption Connection_authentication
+syn keyword sqlOption Continue_after_raiserror
+syn keyword sqlOption Conversion_error
+syn keyword sqlOption Cooperative_commit_timeout
+syn keyword sqlOption Cooperative_commits
+syn keyword sqlOption Database_authentication
+syn keyword sqlOption Date_format
+syn keyword sqlOption Date_order
+syn keyword sqlOption Debug_messages
+syn keyword sqlOption Dedicated_task
+syn keyword sqlOption Default_timestamp_increment
+syn keyword sqlOption Delayed_commit_timeout
+syn keyword sqlOption Delayed_commits
+syn keyword sqlOption Delete_old_logs
+syn keyword sqlOption Describe_Java_Format
+syn keyword sqlOption Divide_by_zero_error
+syn keyword sqlOption Echo
+syn keyword sqlOption Escape_character
+syn keyword sqlOption Exclude_operators
+syn keyword sqlOption Extended_join_syntax
+syn keyword sqlOption External_remote_options
+syn keyword sqlOption Fire_triggers
+syn keyword sqlOption First_day_of_week
+syn keyword sqlOption Float_as_double
+syn keyword sqlOption For_xml_null_treatment
+syn keyword sqlOption Force_view_creation
+syn keyword sqlOption Global_database_id
+syn keyword sqlOption Headings
+syn keyword sqlOption Input_format
+syn keyword sqlOption Integrated_server_name
+syn keyword sqlOption Isolation_level
+syn keyword sqlOption ISQL_command_timing
+syn keyword sqlOption ISQL_escape_character
+syn keyword sqlOption ISQL_field_separator
+syn keyword sqlOption ISQL_log
+syn keyword sqlOption ISQL_plan
+syn keyword sqlOption ISQL_plan_cursor_sensitivity
+syn keyword sqlOption ISQL_plan_cursor_writability
+syn keyword sqlOption ISQL_quote
+syn keyword sqlOption Java_heap_size
+syn keyword sqlOption Java_input_output
+syn keyword sqlOption Java_namespace_size
+syn keyword sqlOption Java_page_buffer_size
+syn keyword sqlOption Lock_rejected_rows
+syn keyword sqlOption Log_deadlocks
+syn keyword sqlOption Log_detailed_plans
+syn keyword sqlOption Log_max_requests
+syn keyword sqlOption Login_mode
+syn keyword sqlOption Login_procedure
+syn keyword sqlOption Max_cursor_count
+syn keyword sqlOption Max_hash_size
+syn keyword sqlOption Max_plans_cached
+syn keyword sqlOption Max_recursive_iterations
+syn keyword sqlOption Max_statement_count
+syn keyword sqlOption Max_work_table_hash_size
+syn keyword sqlOption Min_password_length
+syn keyword sqlOption Nearest_century
+syn keyword sqlOption Non_keywords
+syn keyword sqlOption NULLS
+syn keyword sqlOption ODBC_describe_binary_as_varbinary
+syn keyword sqlOption ODBC_distinguish_char_and_varchar
+syn keyword sqlOption On_Charset_conversion_failure
+syn keyword sqlOption On_error
+syn keyword sqlOption On_tsql_error
+syn keyword sqlOption Optimistic_wait_for_commit
+syn keyword sqlOption Optimization_goal
+syn keyword sqlOption Optimization_level
+syn keyword sqlOption Optimization_logging
+syn keyword sqlOption Optimization_workload
+syn keyword sqlOption Output_format
+syn keyword sqlOption Output_length
+syn keyword sqlOption Output_nulls
+syn keyword sqlOption Percent_as_comment
+syn keyword sqlOption Pinned_cursor_percent_of_cache
+syn keyword sqlOption Precision
+syn keyword sqlOption Prefetch
+syn keyword sqlOption Preserve_source_format
+syn keyword sqlOption Prevent_article_pkey_update
+syn keyword sqlOption Qualify_owners
+syn keyword sqlOption Query_plan_on_open
+syn keyword sqlOption Quiet
+syn keyword sqlOption Quote_all_identifiers
+syn keyword sqlOption Quoted_identifier
+syn keyword sqlOption Read_past_deleted
+syn keyword sqlOption Recovery_time
+syn keyword sqlOption Remote_idle_timeout
+syn keyword sqlOption Replicate_all
+syn keyword sqlOption Replication_error
+syn keyword sqlOption Replication_error_piece
+syn keyword sqlOption Return_date_time_as_string
+syn keyword sqlOption Return_java_as_string
+syn keyword sqlOption RI_Trigger_time
+syn keyword sqlOption Rollback_on_deadlock
+syn keyword sqlOption Row_counts
+syn keyword sqlOption Save_remote_passwords
+syn keyword sqlOption Scale
+syn keyword sqlOption Screen_format
+syn keyword sqlOption Sort_Collation
+syn keyword sqlOption SQL_flagger_error_level
+syn keyword sqlOption SQL_flagger_warning_level
+syn keyword sqlOption SQLConnect
+syn keyword sqlOption SQLStart
+syn keyword sqlOption SR_Date_Format
+syn keyword sqlOption SR_Time_Format
+syn keyword sqlOption SR_TimeStamp_Format
+syn keyword sqlOption Statistics
+syn keyword sqlOption String_rtruncation
+syn keyword sqlOption Subscribe_by_remote
+syn keyword sqlOption Subsume_row_locks
+syn keyword sqlOption Suppress_TDS_debugging
+syn keyword sqlOption TDS_Empty_string_is_null
+syn keyword sqlOption Temp_space_limit_check
+syn keyword sqlOption Thread_count
+syn keyword sqlOption Thread_stack
+syn keyword sqlOption Thread_swaps
+syn keyword sqlOption Time_format
+syn keyword sqlOption Time_zone_adjustment
+syn keyword sqlOption Timestamp_format
+syn keyword sqlOption Truncate_date_values
+syn keyword sqlOption Truncate_timestamp_values
+syn keyword sqlOption Truncate_with_auto_commit
+syn keyword sqlOption Truncation_length
+syn keyword sqlOption Tsql_hex_constant
+syn keyword sqlOption Tsql_variables
+syn keyword sqlOption Update_statistics
+syn keyword sqlOption User_estimates
+syn keyword sqlOption Verify_all_columns
+syn keyword sqlOption Verify_threshold
+syn keyword sqlOption Wait_for_commit
+
+" Strings and characters:
+syn region sqlString start=+"+ end=+"+ contains=@Spell
+syn region sqlString start=+'+ end=+'+ contains=@Spell
+
+" Numbers:
+syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
+
+" Comments:
+syn region sqlDashComment start=/--/ end=/$/ contains=@Spell
+syn region sqlSlashComment start=/\/\// end=/$/ contains=@Spell
+syn region sqlMultiComment start="/\*" end="\*/" contains=sqlMultiComment,@Spell
+syn cluster sqlComment contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell
+syn sync ccomment sqlComment
+syn sync ccomment sqlDashComment
+syn sync ccomment sqlSlashComment
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_sql_syn_inits")
+ if version < 508
+ let did_sql_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi link <args>
+ endif
+
+ HiLink sqlDashComment Comment
+ HiLink sqlSlashComment Comment
+ HiLink sqlMultiComment Comment
+ HiLink sqlNumber Number
+ HiLink sqlOperator Operator
+ HiLink sqlSpecial Special
+ HiLink sqlKeyword Keyword
+ HiLink sqlStatement Statement
+ HiLink sqlString String
+ HiLink sqlType Type
+ HiLink sqlFunction Function
+ HiLink sqlOption PreProc
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "sqlanywhere"
+
+" vim:sw=4:ff=unix: