summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/autoload/sqlcomplete.vim50
-rw-r--r--runtime/autoload/syntaxcomplete.vim339
-rw-r--r--runtime/compiler/msbuild.vim21
-rw-r--r--runtime/compiler/xbuild.vim22
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--runtime/doc/ft_sql.txt6
-rw-r--r--runtime/doc/if_pyth.txt2
-rw-r--r--runtime/doc/index.txt4
-rw-r--r--runtime/doc/pi_paren.txt7
-rw-r--r--runtime/doc/syntax.txt22
-rw-r--r--runtime/doc/tags6
-rw-r--r--runtime/doc/term.txt10
-rw-r--r--runtime/doc/todo.txt284
-rw-r--r--runtime/filetype.vim2
-rw-r--r--runtime/ftplugin/sql.vim29
-rw-r--r--runtime/indent/erlang.vim1500
-rw-r--r--runtime/indent/tex.vim11
-rw-r--r--runtime/menu.vim8
-rw-r--r--runtime/plugin/matchparen.vim20
-rw-r--r--runtime/syntax/debchangelog.vim4
-rw-r--r--runtime/syntax/debsources.vim4
-rw-r--r--runtime/syntax/erlang.vim283
-rw-r--r--runtime/syntax/sgmllnx.vim5
-rw-r--r--runtime/syntax/sisu.vim27
-rw-r--r--runtime/syntax/sqlanywhere.vim251
-rw-r--r--runtime/tools/ccfilter_README.txt2
-rw-r--r--runtime/tutor/tutor.zh.utf-8852
27 files changed, 3058 insertions, 717 deletions
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
index f830965c41..9326c15bb3 100644
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -1,8 +1,8 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
-" Version: 14.0
-" Last Change: 2012 Dec 04
+" Version: 15.0
+" Last Change: 2013 May 13
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
@@ -11,6 +11,18 @@
" History
"
+" TODO
+" - Jonas Enberg - if no table is found when using column completion
+" look backwards to a FROM clause and find the first table
+" and complete it.
+"
+" Version 15.0 (May 2013)
+" - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
+" to use regular expressions to pick up extended syntax group names.
+" This requires an updated SyntaxComplete plugin version 13.0.
+" If the required versions have not been installed, previous
+" behaviour will not be impacted.
+"
" Version 14.0 (Dec 2012)
" - BF: Added check for cpo
"
@@ -91,7 +103,7 @@ endif
if exists('g:loaded_sql_completion')
finish
endif
-let g:loaded_sql_completion = 130
+let g:loaded_sql_completion = 150
let s:keepcpo= &cpo
set cpo&vim
@@ -110,12 +122,14 @@ let s:syn_value = []
" Used in conjunction with the syntaxcomplete plugin
let s:save_inc = ""
let s:save_exc = ""
-if exists('g:omni_syntax_group_include_sql')
- let s:save_inc = g:omni_syntax_group_include_sql
+if !exists('g:omni_syntax_group_include_sql')
+ let g:omni_syntax_group_include_sql = ''
endif
-if exists('g:omni_syntax_group_exclude_sql')
- let s:save_exc = g:omni_syntax_group_exclude_sql
+if !exists('g:omni_syntax_group_exclude_sql')
+ let g:omni_syntax_group_exclude_sql = ''
endif
+let s:save_inc = g:omni_syntax_group_include_sql
+let s:save_exc = g:omni_syntax_group_exclude_sql
" Used with the column list
let s:save_prev_table = ""
@@ -127,12 +141,12 @@ endif
" Default syntax items to precache
if !exists('g:omni_sql_precache_syntax_groups')
let g:omni_sql_precache_syntax_groups = [
- \ 'syntax',
- \ 'sqlKeyword',
- \ 'sqlFunction',
- \ 'sqlOption',
- \ 'sqlType',
- \ 'sqlStatement'
+ \ 'syntax\w*',
+ \ 'sqlKeyword\w*',
+ \ 'sqlFunction\w*',
+ \ 'sqlOption\w*',
+ \ 'sqlType\w*',
+ \ 'sqlStatement\w*'
\ ]
endif
" Set ignorecase to the ftplugin standard
@@ -621,19 +635,23 @@ function! s:SQLCGetSyntaxList(syn_group)
" Return previously cached value
let compl_list = s:syn_value[list_idx]
else
+ let s:save_inc = g:omni_syntax_group_include_sql
+ let s:save_exc = g:omni_syntax_group_exclude_sql
+ let g:omni_syntax_group_include_sql = ''
+ let g:omni_syntax_group_exclude_sql = ''
+
" Request the syntax list items from the
" syntax completion plugin
if syn_group == 'syntax'
" Handle this special case. This allows the user
" to indicate they want all the syntax items available,
" so do not specify a specific include list.
- let g:omni_syntax_group_include_sql = ''
+ let syn_value = syntaxcomplete#OmniSyntaxList()
else
" The user has specified a specific syntax group
let g:omni_syntax_group_include_sql = syn_group
+ let syn_value = syntaxcomplete#OmniSyntaxList(syn_group)
endif
- let g:omni_syntax_group_exclude_sql = ''
- let syn_value = syntaxcomplete#OmniSyntaxList()
let g:omni_syntax_group_include_sql = s:save_inc
let g:omni_syntax_group_exclude_sql = s:save_exc
" Cache these values for later use
diff --git a/runtime/autoload/syntaxcomplete.vim b/runtime/autoload/syntaxcomplete.vim
index e3ea0e2d81..a18c3c360c 100644
--- a/runtime/autoload/syntaxcomplete.vim
+++ b/runtime/autoload/syntaxcomplete.vim
@@ -1,18 +1,34 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
-" Version: 11.0
-" Last Change: 2012 Dec 04
+" Version: 13.0
+" Last Change: 2013 May 14
" Usage: For detailed help, ":help ft-syntax-omni"
" History
"
+" Version 13.0
+" - Extended the option omni_syntax_group_include_{filetype}
+" to accept a comma separated list of regex's rather than
+" string. For example, for the javascript filetype you could
+" use:
+" let g:omni_syntax_group_include_javascript = 'javascript\w\+,jquery\w\+'
+" - Some syntax files (perl.vim) use the match // syntax as a mechanism
+" to identify keywords. This update attempts to parse the
+" match syntax and pull out syntax items which are at least
+" 3 words or more.
+"
+" Version 12.0
+" - It is possible to have '-' as part of iskeyword, when
+" checking for character ranges, tighten up the regex.
+" E688: More targets than List items.
+"
" Version 11.0
-" Corrected which characters required escaping during
+" - Corrected which characters required escaping during
" substitution calls.
"
" Version 10.0
-" Cycle through all the character ranges specified in the
+" - Cycle through all the character ranges specified in the
" iskeyword option and build a list of valid word separators.
" Prior to this change, only actual characters were used,
" where for example ASCII "45" == "-". If "45" were used
@@ -20,30 +36,30 @@
" This introduces a new option, since the character ranges
" specified could be multibyte:
" let g:omni_syntax_use_single_byte = 1
-" This by default will only allow single byte ASCII
+" - This by default will only allow single byte ASCII
" characters to be added and an additional check to ensure
" the charater is printable (see documentation for isprint).
"
" Version 9.0
-" Add the check for cpo.
+" - Add the check for cpo.
"
" Version 8.0
-" Updated SyntaxCSyntaxGroupItems()
+" - Updated SyntaxCSyntaxGroupItems()
" - Some additional syntax items were also allowed
" on nextgroup= lines which were ignored by default.
" Now these lines are processed independently.
"
" Version 7.0
-" Updated syntaxcomplete#OmniSyntaxList()
+" - Updated syntaxcomplete#OmniSyntaxList()
" - Looking up the syntax groups defined from a syntax file
" looked for only 1 format of {filetype}GroupName, but some
" syntax writers use this format as well:
" {b:current_syntax}GroupName
-" OmniSyntaxList() will now check for both if the first
+" - OmniSyntaxList() will now check for both if the first
" method does not find a match.
"
" Version 6.0
-" Added syntaxcomplete#OmniSyntaxList()
+" - Added syntaxcomplete#OmniSyntaxList()
" - Allows other plugins to use this for their own
" purposes.
" - It will return a List of all syntax items for the
@@ -52,7 +68,7 @@
" sqlcomplete plugin to populate a Choose box.
"
" Version 5.0
-" Updated SyntaxCSyntaxGroupItems()
+" - Updated SyntaxCSyntaxGroupItems()
" - When processing a list of syntax groups, the final group
" was missed in function SyntaxCSyntaxGroupItems.
"
@@ -70,7 +86,7 @@ endif
if exists('g:loaded_syntax_completion')
finish
endif
-let g:loaded_syntax_completion = 110
+let g:loaded_syntax_completion = 130
" Turn on support for line continuations when creating the script
let s:cpo_save = &cpo
@@ -113,7 +129,8 @@ endif
" This script will build a completion list based on the syntax
" elements defined by the files in $VIMRUNTIME/syntax.
-let s:syn_remove_words = 'match,matchgroup=,contains,'.
+" let s:syn_remove_words = 'match,matchgroup=,contains,'.
+let s:syn_remove_words = 'matchgroup=,contains,'.
\ 'links to,start=,end='
" \ 'links to,start=,end=,nextgroup='
@@ -275,9 +292,19 @@ function! OmniSyntaxList(...)
" sqlType
" sqlOperators
" sqlKeyword ...
- redir @l
- silent! exec 'syntax list '.join(list_parms)
- redir END
+ if !empty(list_parms) && empty(substitute(join(list_parms), '[a-zA-Z ]', '', 'g'))
+ " If list_parms only includes word characters, use it to limit
+ " the syntax elements.
+ " If using regex syntax list will fail to find those items, so
+ " simply grab the who syntax list.
+ redir @l
+ silent! exec 'syntax list '.join(list_parms)
+ redir END
+ else
+ redir @l
+ silent! exec 'syntax list'
+ redir END
+ endif
let syntax_full = "\n".@l
let @l = saveL
@@ -311,82 +338,167 @@ function! OmniSyntaxList(...)
endif
endif
- " Sometimes filetypes can be composite names, like c.doxygen
- " Loop through each individual part looking for the syntax
- " items specific to each individual filetype.
+ if empty(list_parms)
+ let list_parms = [&filetype.'\w\+']
+ endif
+
let syn_list = ''
- let ftindex = 0
- let ftindex = match(&filetype, '\w\+', ftindex)
-
- while ftindex > -1
- let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
-
- " Syntax rules can contain items for more than just the current
- " filetype. They can contain additional items added by the user
- " via autocmds or their vimrc.
- " Some syntax files can be combined (html, php, jsp).
- " We want only items that begin with the filetype we are interested in.
- let next_group_regex = '\n' .
- \ '\zs'.ft_part_name.'\w\+\ze'.
- \ '\s\+xxx\s\+'
- let index = 0
- let index = match(syntax_full, next_group_regex, index)
-
- if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
- " There appears to be two standards when writing syntax files.
- " Either items begin as:
- " syn keyword {filetype}Keyword values ...
- " let b:current_syntax = "sql"
- " let b:current_syntax = "sqlanywhere"
- " Or
- " syn keyword {syntax_filename}Keyword values ...
- " let b:current_syntax = "mysql"
- " So, we will make the format of finding the syntax group names
- " a bit more flexible and look for both if the first fails to
- " find a match.
+ let index = 0
+ for group_regex in list_parms
+ " Sometimes filetypes can be composite names, like c.doxygen
+ " Loop through each individual part looking for the syntax
+ " items specific to each individual filetype.
+ " let ftindex = 0
+ " let ftindex = match(syntax_full, group_regex, ftindex)
+
+ " while ftindex > -1
+ " let ft_part_name = matchstr( syntax_full, '\w\+', ftindex )
+
+ " Syntax rules can contain items for more than just the current
+ " filetype. They can contain additional items added by the user
+ " via autocmds or their vimrc.
+ " Some syntax files can be combined (html, php, jsp).
+ " We want only items that begin with the filetype we are interested in.
let next_group_regex = '\n' .
- \ '\zs'.b:current_syntax.'\w\+\ze'.
+ \ '\zs'.group_regex.'\ze'.
\ '\s\+xxx\s\+'
- let index = 0
let index = match(syntax_full, next_group_regex, index)
- endif
-
- while index > -1
- let group_name = matchstr( syntax_full, '\w\+', index )
- let get_syn_list = 1
- for exclude_group_name in list_exclude_groups
- if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
- let get_syn_list = 0
- endif
- endfor
-
- " This code is no longer needed in version 6.0 since we have
- " augmented the syntax list command to only retrieve the syntax
- " groups we are interested in.
- "
- " if get_syn_list == 1
- " if syntax_group_include_{filetype} != ''
- " if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
- " let get_syn_list = 0
- " endif
- " endif
- " endif
-
- if get_syn_list == 1
- " Pass in the full syntax listing, plus the group name we
- " are interested in.
- let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
- let syn_list = syn_list . extra_syn_list . "\n"
+ " For the matched group name, strip off any of the regex special
+ " characters and see if we get a match with the current syntax
+ if index == -1 && exists('b:current_syntax') && substitute(group_regex, '[^a-zA-Z ]\+.*', '', 'g') !~ '^'.b:current_syntax
+ " There appears to be two standards when writing syntax files.
+ " Either items begin as:
+ " syn keyword {filetype}Keyword values ...
+ " let b:current_syntax = "sql"
+ " let b:current_syntax = "sqlanywhere"
+ " Or
+ " syn keyword {syntax_filename}Keyword values ...
+ " let b:current_syntax = "mysql"
+ " So, we will make the format of finding the syntax group names
+ " a bit more flexible and look for both if the first fails to
+ " find a match.
+ let next_group_regex = '\n' .
+ \ '\zs'.b:current_syntax.'\w\+\ze'.
+ \ '\s\+xxx\s\+'
+ let index = 0
+ let index = match(syntax_full, next_group_regex, index)
endif
- let index = index + strlen(group_name)
- let index = match(syntax_full, next_group_regex, index)
- endwhile
+ while index > -1
+ let group_name = matchstr( syntax_full, '\w\+', index )
- let ftindex = ftindex + len(ft_part_name)
- let ftindex = match( &filetype, '\w\+', ftindex )
- endwhile
+ let get_syn_list = 1
+ for exclude_group_name in list_exclude_groups
+ if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
+ let get_syn_list = 0
+ endif
+ endfor
+
+ " This code is no longer needed in version 6.0 since we have
+ " augmented the syntax list command to only retrieve the syntax
+ " groups we are interested in.
+ "
+ " if get_syn_list == 1
+ " if syntax_group_include_{filetype} != ''
+ " if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
+ " let get_syn_list = 0
+ " endif
+ " endif
+ " endif
+
+ if get_syn_list == 1
+ " Pass in the full syntax listing, plus the group name we
+ " are interested in.
+ let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
+ let syn_list = syn_list . extra_syn_list . "\n"
+ endif
+
+ let index = index + strlen(group_name)
+ let index = match(syntax_full, next_group_regex, index)
+ endwhile
+
+ " let ftindex = ftindex + len(ft_part_name)
+ " let ftindex = match( syntax_full, group_regex, ftindex )
+ " endwhile
+ endfor
+
+" " Sometimes filetypes can be composite names, like c.doxygen
+" " Loop through each individual part looking for the syntax
+" " items specific to each individual filetype.
+" let syn_list = ''
+" let ftindex = 0
+" let ftindex = match(&filetype, '\w\+', ftindex)
+
+" while ftindex > -1
+" let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
+
+" " Syntax rules can contain items for more than just the current
+" " filetype. They can contain additional items added by the user
+" " via autocmds or their vimrc.
+" " Some syntax files can be combined (html, php, jsp).
+" " We want only items that begin with the filetype we are interested in.
+" let next_group_regex = '\n' .
+" \ '\zs'.ft_part_name.'\w\+\ze'.
+" \ '\s\+xxx\s\+'
+" let index = 0
+" let index = match(syntax_full, next_group_regex, index)
+
+" if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
+" " There appears to be two standards when writing syntax files.
+" " Either items begin as:
+" " syn keyword {filetype}Keyword values ...
+" " let b:current_syntax = "sql"
+" " let b:current_syntax = "sqlanywhere"
+" " Or
+" " syn keyword {syntax_filename}Keyword values ...
+" " let b:current_syntax = "mysql"
+" " So, we will make the format of finding the syntax group names
+" " a bit more flexible and look for both if the first fails to
+" " find a match.
+" let next_group_regex = '\n' .
+" \ '\zs'.b:current_syntax.'\w\+\ze'.
+" \ '\s\+xxx\s\+'
+" let index = 0
+" let index = match(syntax_full, next_group_regex, index)
+" endif
+
+" while index > -1
+" let group_name = matchstr( syntax_full, '\w\+', index )
+
+" let get_syn_list = 1
+" for exclude_group_name in list_exclude_groups
+" if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
+" let get_syn_list = 0
+" endif
+" endfor
+
+" " This code is no longer needed in version 6.0 since we have
+" " augmented the syntax list command to only retrieve the syntax
+" " groups we are interested in.
+" "
+" " if get_syn_list == 1
+" " if syntax_group_include_{filetype} != ''
+" " if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
+" " let get_syn_list = 0
+" " endif
+" " endif
+" " endif
+
+" if get_syn_list == 1
+" " Pass in the full syntax listing, plus the group name we
+" " are interested in.
+" let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
+" let syn_list = syn_list . extra_syn_list . "\n"
+" endif
+
+" let index = index + strlen(group_name)
+" let index = match(syntax_full, next_group_regex, index)
+" endwhile
+
+" let ftindex = ftindex + len(ft_part_name)
+" let ftindex = match( &filetype, '\w\+', ftindex )
+" endwhile
" Convert the string to a List and sort it.
let compl_list = sort(split(syn_list))
@@ -454,10 +566,65 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
\ , "\n", 'g'
\ )
+ " Attempt to deal with lines using the match syntax
+ " javaScriptDocTags xxx match /@\(param\|argument\|requires\|file\)\>/
+ " Though it can use any types of regex, so this plugin will attempt
+ " to restrict it
+ " 1. Only use \( or \%( constructs remove all else
+ " 2 Remove and []s
+ " 3. Account for match //constructs
+ " \%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?
+ " 4. Hope for the best
+ "
+ "
+ let syn_list_old = syn_list
+ while syn_list =~ '\<match\>\s\+\/'
+ if syn_list =~ 'perlElseIfError'
+ let syn_list = syn_list
+ endif
+ " Check if the match has words at least 3 characters long
+ if syn_list =~ '\<match \/\zs.\{-}\<\w\{3,}\>.\{-}\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
+ " Remove everything after / and before the first \(
+ let syn_list = substitute( syn_list, '\<match \/\zs.\{-}\ze\\%\?(.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
+ " Remove everything after \) and up to the ending /
+ let syn_list = substitute( syn_list, '\<match \/.\{-}\\)\zs.\{-}\ze\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
+
+ " Remove any character classes
+ " let syn_list = substitute( syn_list, '\<match /\zs.\{-}\[[^]]*\].\{-}\ze\/ ', '', 'g' )
+ let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\[[^]]*\]\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?', '', 'g' )
+ " Remove any words < 3 characters
+ let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\<\w\{1,2}\>\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
+ " Remove all non-word characters
+ " let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' )
+ " let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' )
+ " Do this by using the outer substitue() call to gather all
+ " text between the match /.../ tags.
+ " The inner substitute() call operates on the text selected
+ " and replaces all non-word characters.
+ let syn_list = substitute( syn_list, '\<match \/\zs\(.\{-}\)\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
+ \ , '\=substitute(submatch(1), "\\W\\+", " ", "g")'
+ \ , 'g' )
+ " Remove the match / / syntax
+ let syn_list = substitute( syn_list, '\<match \/\(.\{-}\)\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '\1', 'g' )
+ else
+ " No words long enough, remove the match
+ " Remove the match syntax
+ " let syn_list = substitute( syn_list, '\<match \/[^\/]*\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
+ let syn_list = substitute( syn_list, '\<match \/\%(.\{-}\)\?\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
+ endif
+ if syn_list =~ '\<match\>\s\+\/'
+ " Problem removing the match / / tags
+ let syn_list = ''
+ endif
+ endwhile
+
+
" Now strip off the newline + blank space + contained.
" Also include lines with nextgroup=@someName skip_key_words syntax_element
+ " \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
+ " \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
let syn_list = substitute(
- \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
+ \ syn_list, '\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
\ , "", 'g'
\ )
@@ -497,7 +664,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" If so, add it to the list.
let accepted_chars = ''
for item in split(&iskeyword, ',')
- if item =~ '-'
+ if item =~ '\d-\d'
" This is a character range (ie 47-58),
" cycle through each character within the range
let [b:start, b:end] = split(item, '-')
diff --git a/runtime/compiler/msbuild.vim b/runtime/compiler/msbuild.vim
new file mode 100644
index 0000000000..3652ca0e04
--- /dev/null
+++ b/runtime/compiler/msbuild.vim
@@ -0,0 +1,21 @@
+" Vim compiler file
+" Compiler: Microsoft Visual Studio C#
+" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
+" Last Change: 2013 May 13
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "msbuild"
+let s:keepcpo= &cpo
+set cpo&vim
+
+if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
+CompilerSet makeprg=msbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/xbuild.vim b/runtime/compiler/xbuild.vim
new file mode 100644
index 0000000000..b508a4616a
--- /dev/null
+++ b/runtime/compiler/xbuild.vim
@@ -0,0 +1,22 @@
+" Vim compiler file
+" Compiler: Mono C#
+" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
+" Last Change: 2013 May 13
+
+if exists("current_compiler")
+ finish
+endif
+
+let current_compiler = "xbuild"
+let s:keepcpo= &cpo
+set cpo&vim
+
+if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
+CompilerSet makeprg=xbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 0b747084d5..2114ff444f 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.3. Last change: 2013 May 06
+*eval.txt* For Vim version 7.3. Last change: 2013 May 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1171,7 +1171,7 @@ b:changedtick The total number of changes to the current buffer. It is
A variable name that is preceded with "w:" is local to the current window. It
is deleted when the window is closed.
- *tabpage-variable* *t:var*
+ *tabpage-variable* *t:var* *t:*
A variable name that is preceded with "t:" is local to the current tab page,
It is deleted when the tab page is closed. {not available when compiled
without the |+windows| feature}
diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt
index b4ea5fd7b4..9aa711b1e0 100644
--- a/runtime/doc/ft_sql.txt
+++ b/runtime/doc/ft_sql.txt
@@ -1,4 +1,4 @@
-*ft_sql.txt* For Vim version 7.3. Last change: 2013 Apr 05
+*ft_sql.txt* For Vim version 7.3. Last change: 2013 May 15
by David Fishburn
@@ -349,6 +349,7 @@ may not work properly on all platforms: >
The static maps (which are based on the syntax highlight groups) follow this
format: >
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
+ imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword\w*')<CR><C-X><C-O>
This command breaks down as: >
imap - Create an insert map
@@ -369,6 +370,9 @@ This command breaks down as: >
command while editing a SQL file.
'sqlKeyword' - Display the items for the sqlKeyword highlight
group
+ 'sqlKeyword\w*' - A second option available with Vim 7.4 which
+ uses a regular expression to determine which
+ syntax groups to use
)<CR> - Execute the :let command
<C-X><C-O> - Trigger the standard omni completion key stroke.
Passing in 'sqlKeyword' instructs the SQL
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index a2c949e34b..a94183f5b3 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt* For Vim version 7.3. Last change: 2013 May 06
+*if_pyth.txt* For Vim version 7.3. Last change: 2013 May 17
VIM REFERENCE MANUAL by Paul Moore
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 5456611d78..6b8d445e47 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 7.3. Last change: 2013 May 06
+*index.txt* For Vim version 7.3. Last change: 2013 May 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1403,8 +1403,10 @@ tag command action ~
|:pwd| :pw[d] print current directory
|:py3| :py3 execute Python 3 command
|:python3| :python3 same as :py3
+|:py3do| :py3d[o] execute Python 3 command for each line
|:py3file| :py3f[ile] execute Python 3 script file
|:python| :py[thon] execute Python command
+|:pydo| :pyd[o] execute Python command for each line
|:pyfile| :pyf[ile] execute Python script file
|:quit| :q[uit] quit current window (when one window quit Vim)
|:quitall| :quita[ll] quit Vim
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index dfa2e71505..71727aa052 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -1,4 +1,4 @@
-*pi_paren.txt* For Vim version 7.3. Last change: 2008 Jun 16
+*pi_paren.txt* For Vim version 7.3. Last change: 2013 May 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -46,7 +46,10 @@ are:
closed folds.
- 'synmaxcol' times 2 bytes before or after the cursor to avoid a delay
in a long line with syntax highlighting.
-
+- A timeout of 300 msec (60 msec in Insert mode). This can be changed with the
+ g:matchparen_timeout and g:matchparen_insert_timeout variables and their
+ buffer-local equivalents b:matchparen_timeout and
+ b:matchparen_insert_timeout.
If you would like the |%| command to work better, the matchit plugin can be
used, see |matchit-install|. This plugin also helps to skip matches in
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 842141f3c3..39c7839f42 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1239,17 +1239,17 @@ to your startup file.
ERLANG *erlang.vim* *ft-erlang-syntax*
-The erlang highlighting supports Erlang (ERicsson LANGuage).
-Erlang is case sensitive and default extension is ".erl".
-
-If you want to disable keywords highlighting, put in your .vimrc: >
- :let erlang_keywords = 1
-If you want to disable built-in-functions highlighting, put in your
-.vimrc file: >
- :let erlang_functions = 1
-If you want to disable special characters highlighting, put in
-your .vimrc: >
- :let erlang_characters = 1
+Erlang is a functional programming language developed by Ericsson. Files with
+the following extentions are recognized as Erlang files: erl, hrl, yaws.
+
+The BIFs (built-in functions) are highlighted by default. To disable this,
+put the following line in your vimrc: >
+
+ :let g:erlang_highlight_bifs = 0
+
+To enable highlighting some special atoms, put this in your vimrc: >
+
+ :let g:erlang_highlight_special_atoms = 1
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 2775e880f8..9af196ae46 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2590,7 +2590,9 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:pwd editing.txt /*:pwd*
:py if_pyth.txt /*:py*
:py3 if_pyth.txt /*:py3*
+:py3do if_pyth.txt /*:py3do*
:py3file if_pyth.txt /*:py3file*
+:pydo if_pyth.txt /*:pydo*
:pyf if_pyth.txt /*:pyf*
:pyfile if_pyth.txt /*:pyfile*
:python if_pyth.txt /*:python*
@@ -4258,6 +4260,7 @@ E86 windows.txt /*E86*