summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-03-29 21:18:24 +0000
committerBram Moolenaar <Bram@vim.org>2006-03-29 21:18:24 +0000
commite2f98b95c8071f772695602cd4f714dc588eb8e7 (patch)
tree28442f952f7e5258e2addd8871a4a2930e768c0a
parent86ca6e3b8c9c5d909421eb5abc2d81e02d402b49 (diff)
updated for version 7.0c03v7.0c03
-rw-r--r--runtime/autoload/sqlcomplete.vim459
-rw-r--r--runtime/autoload/syntaxcomplete.vim8
-rw-r--r--runtime/doc/eval.txt9
-rw-r--r--runtime/doc/fold.txt3
-rw-r--r--runtime/doc/indent.txt4
-rw-r--r--runtime/doc/insert.txt62
-rw-r--r--runtime/doc/mbyte.txt3
-rw-r--r--runtime/doc/options.txt4
-rw-r--r--runtime/doc/os_mac.txt10
-rw-r--r--runtime/doc/pi_paren.txt6
-rw-r--r--runtime/doc/sponsor.txt16
-rw-r--r--runtime/doc/sql.txt341
-rw-r--r--runtime/doc/tags14
-rw-r--r--runtime/doc/todo.txt13
-rw-r--r--runtime/doc/version7.txt18
-rw-r--r--runtime/evim.vim6
-rw-r--r--runtime/ftplugin/sql.vim37
-rw-r--r--runtime/lang/menu_ja_jp.euc-jp.vim5
-rw-r--r--runtime/lang/menu_ja_jp.utf-8.vim5
-rw-r--r--runtime/lang/menu_japanese_japan.932.vim5
-rw-r--r--runtime/plugin/matchparen.vim9
-rw-r--r--runtime/syntax/help.vim4
-rw-r--r--runtime/syntax/python.vim3
-rw-r--r--runtime/syntax/vim.vim13
-rwxr-xr-xsrc/auto/configure2
-rw-r--r--src/configure.in2
-rw-r--r--src/doc-txt.icnsbin35095 -> 35539 bytes
-rw-r--r--src/edit.c2
-rw-r--r--src/eval.c21
-rw-r--r--src/gui_gtk_x11.c2
-rw-r--r--src/gui_mac.c2
-rw-r--r--src/gui_photon.c2
-rw-r--r--src/gui_riscos.c2
-rw-r--r--src/gui_w48.c11
-rw-r--r--src/gui_x11.c2
-rw-r--r--src/option.c5
-rw-r--r--src/screen.c5
-rw-r--r--src/syntax.c8
-rw-r--r--src/version.h6
39 files changed, 1030 insertions, 99 deletions
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
new file mode 100644
index 0000000000..123f0049fc
--- /dev/null
+++ b/runtime/autoload/sqlcomplete.vim
@@ -0,0 +1,459 @@
+" Vim completion script
+" Language: SQL
+" Maintainer: David Fishburn <fishburn@ianywhere.com>
+" Version: 1.0
+" Last Change: Tue Mar 28 2006 4:39:49 PM
+
+" Set completion with CTRL-X CTRL-O to autoloaded function.
+" This check is in place in case this script is
+" sourced directly instead of using the autoload feature.
+if exists('&omnifunc')
+ " Do not set the option if already set since this
+ " results in an E117 warning.
+ if &omnifunc == ""
+ setlocal omnifunc=sqlcomplete#Complete
+ endif
+endif
+
+if exists('g:loaded_sql_completion')
+ finish
+endif
+let g:loaded_sql_completion = 1
+
+" Maintains filename of dictionary
+let s:sql_file_table = ""
+let s:sql_file_procedure = ""
+let s:sql_file_view = ""
+
+" Define various arrays to be used for caching
+let s:tbl_name = []
+let s:tbl_alias = []
+let s:tbl_cols = []
+let s:syn_list = []
+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
+endif
+if exists('g:omni_syntax_group_exclude_sql')
+ let s:save_exc = g:omni_syntax_group_exclude_sql
+endif
+
+" Used with the column list
+let s:save_prev_table = ""
+
+" Default the option to verify table alias
+if !exists('g:omni_sql_use_tbl_alias')
+ let g:omni_sql_use_tbl_alias = 'a'
+endif
+
+" This function is used for the 'omnifunc' option.
+function! sqlcomplete#Complete(findstart, base)
+
+ " Default to table name completion
+ let compl_type = 'table'
+ " Allow maps to specify what type of object completion they want
+ if exists('b:sql_compl_type')
+ let compl_type = b:sql_compl_type
+ endif
+
+ if a:findstart
+ " Locate the start of the item, including "."
+ let line = getline('.')
+ let start = col('.') - 1
+ let lastword = -1
+ while start > 0
+ if line[start - 1] =~ '\w'
+ let start -= 1
+ elseif line[start - 1] =~ '\.' && compl_type =~ 'column\|table'
+ " If the completion type is table or column
+ " Then assume we are looking for column completion
+ " column_type can be either 'column' or 'column_csv'
+ if lastword == -1
+ let lastword = start
+ endif
+ let start -= 1
+ let b:sql_compl_type = 'column'
+ else
+ break
+ endif
+ endwhile
+
+ " Return the column of the last word, which is going to be changed.
+ " Remember the text that comes before it in s:prepended.
+ if lastword == -1
+ let s:prepended = ''
+ return start
+ endif
+ let s:prepended = strpart(line, start, lastword - start)
+ return lastword
+ endif
+
+ let base = s:prepended . a:base
+
+ let compl_list = []
+
+ " Default to table name completion
+ let compl_type = 'table'
+ " Allow maps to specify what type of object completion they want
+ if exists('b:sql_compl_type')
+ let compl_type = b:sql_compl_type
+ unlet b:sql_compl_type
+ endif
+
+ if compl_type == 'tableReset'
+ let compl_type = 'table'
+ let base = ''
+ endif
+
+ if compl_type == 'table' ||
+ \ compl_type == 'procedure' ||
+ \ compl_type == 'view'
+
+ " This type of completion relies upon the dbext.vim plugin
+ if s:SQLCCheck4dbext() == -1
+ return []
+ endif
+
+ if s:sql_file_{compl_type} == ""
+ let compl_type = substitute(compl_type, '\w\+', '\u&', '')
+ let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type)
+ endif
+ let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type)
+ if s:sql_file_{compl_type} != ""
+ if filereadable(s:sql_file_{compl_type})
+ let compl_list = readfile(s:sql_file_{compl_type})
+ endif
+ endif
+ elseif compl_type == 'column'
+
+ " This type of completion relies upon the dbext.vim plugin
+ if s:SQLCCheck4dbext() == -1
+ return []
+ endif
+
+ if base == ""
+ " The last time we displayed a column list we stored
+ " the table name. If the user selects a column list
+ " without a table name of alias present, assume they want
+ " the previous column list displayed.
+ let base = s:save_prev_table
+ endif
+
+ if base != ""
+ let compl_list = s:SQLCGetColumns(base, '')
+ let s:save_prev_table = base
+ let base = ''
+ endif
+ elseif compl_type == 'column_csv'
+
+ " This type of completion relies upon the dbext.vim plugin
+ if s:SQLCCheck4dbext() == -1
+ return []
+ endif
+
+ if base == ""
+ " The last time we displayed a column list we stored
+ " the table name. If the user selects a column list
+ " without a table name of alias present, assume they want
+ " the previous column list displayed.
+ let base = s:save_prev_table
+ endif
+
+ if base != ""
+ let compl_list = s:SQLCGetColumns(base, 'csv')
+ let s:save_prev_table = base
+ " Join the column array into 1 single element array
+ " but make the columns column separated
+ let compl_list = [join(compl_list, ', ')]
+ let base = ''
+ endif
+ elseif compl_type == 'resetCache'
+ " Reset all cached items
+ let s:tbl_name = []
+ let s:tbl_alias = []
+ let s:tbl_cols = []
+ let s:syn_list = []
+ let s:syn_value = []
+ return []
+ else
+ " Default to empty or not found
+ let compl_list = []
+ " Check if we have already cached the syntax list
+ let list_idx = index(s:syn_list, compl_type, 0, &ignorecase)
+ if list_idx > -1
+ " Return previously cached value
+ let compl_list = s:syn_value[list_idx]
+ else
+ " Request the syntax list items from the
+ " syntax completion plugin
+ if compl_type == '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 = ''
+ else
+ " The user has specified a specific syntax group
+ let g:omni_syntax_group_include_sql = compl_type
+ endif
+ let g:omni_syntax_group_exclude_sql = ''
+ let syn_value = 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
+ let s:syn_list = add( s:syn_list, compl_type )
+ let s:syn_value = add( s:syn_value, syn_value )
+ let compl_list = syn_value
+ endif
+ endif
+
+ if base != ''
+ " Filter the list based on the first few characters the user
+ " entered
+ let expr = 'v:val =~ "^'.base.'"'
+ let compl_list = filter(copy(compl_list), expr)
+ endif
+
+ return compl_list
+endfunc
+
+function! s:SQLCWarningMsg(msg)
+ echohl WarningMsg
+ echomsg a:msg
+ echohl None
+endfunction
+
+function! s:SQLCErrorMsg(msg)
+ echohl ErrorMsg
+ echomsg a:msg
+ echohl None
+endfunction
+
+function! s:SQLCCheck4dbext()
+ if !exists('g:loaded_dbext')
+ let msg = "The dbext plugin must be loaded for dynamic SQL completion"
+ call s:SQLCErrorMsg(msg)
+ " Leave time for the user to read the error message
+ :sleep 2
+ return -1
+ elseif g:loaded_dbext < 210
+ let msg = "The dbext plugin must be at least version 2.10 " .
+ \ " for dynamic SQL completion"
+ call s:SQLCErrorMsg(msg)
+ " Leave time for the user to read the error message
+ :sleep 2
+ return -1
+ endif
+ return 1
+endfunction
+
+function! s:SQLCAddAlias(table_name, table_alias, cols)
+ let table_name = a:table_name
+ let table_alias = a:table_alias
+ let cols = a:cols
+
+ if g:omni_sql_use_tbl_alias != 'n'
+ if table_alias == ''
+ if 'da' =~? g:omni_sql_use_tbl_alias
+ if table_name =~ '_'
+ " Treat _ as separators since people often use these
+ " for word separators
+ let save_keyword = &iskeyword
+ setlocal iskeyword-=_
+
+ " Get the first letter of each word
+ " [[:alpha:]] is used instead of \w
+ " to catch extended accented characters
+ "
+ let table_alias = substitute(
+ \ table_name,
+ \ '\<[[:alpha:]]\+\>_\?',
+ \ '\=strpart(submatch(0), 0, 1)',
+ \ 'g'
+ \ )
+ " Restore original value
+ let &iskeyword = save_keyword
+ elseif table_name =~ '\u\U'
+ let initials = substitute(
+ \ table_name, '\(\u\)\U*', '\1', 'g')
+ else
+ let table_alias = strpart(table_name, 0, 1)
+ endif
+ endif
+ endif
+ if table_alias != ''
+ " Following a word character, make sure there is a . and no spaces
+ let table_alias = substitute(table_alias, '\w\zs\.\?\s*$', '.', '')
+ if 'a' =~? g:omni_sql_use_tbl_alias && a:table_alias == ''
+ let table_alias = inputdialog("Enter table alias:", table_alias)
+ endif
+ endif
+ if table_alias != ''
+ let cols = substitute(cols, '\<\w', table_alias.'&', 'g')
+ endif
+ endif
+
+ return cols
+endfunction
+
+function! s:SQLCGetColumns(table_name, list_type)
+ let table_name = matchstr(a:table_name, '^\w\+')
+ let table_cols = []
+ let table_alias = ''
+ let move_to_top = 1
+
+ if g:loaded_dbext >= 210
+ let saveSettingAlias = DB_listOption('use_tbl_alias')
+ exec 'DBSetOption use_tbl_alias=n'
+ endif
+
+ " Check if we have already cached the column list for this table
+ " by its name
+ let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
+ if list_idx > -1
+ let table_cols = split(s:tbl_cols[list_idx])
+ else
+ " Check if we have already cached the column list for this table
+ " by its alias, assuming the table_name provided was actually
+ " the alias for the table instead
+ " select *
+ " from area a
+ " where a.
+ let list_idx = index(s:tbl_alias, table_name, 0, &ignorecase)
+ if list_idx > -1
+ let table_alias = table_name
+ let table_name = s:tbl_name[list_idx]
+ let table_cols = split(s:tbl_cols[list_idx])
+ endif
+ endif
+
+ " If we have not found a cached copy of the table
+ " And the table ends in a "." or we are looking for a column list
+ " if list_idx == -1 && (a:table_name =~ '\.' || b:sql_compl_type =~ 'column')
+ " if list_idx == -1 && (a:table_name =~ '\.' || a:list_type =~ 'csv')
+ if list_idx == -1
+ let saveY = @y
+ let saveSearch = @/
+ let saveWScan = &wrapscan
+ let curline = line(".")
+ let curcol = col(".")
+
+ " Do not let searchs wrap
+ setlocal nowrapscan
+ " If . was entered, look at the word just before the .
+ " We are looking for something like this:
+ " select *
+ " from customer c
+ " where c.
+ " So when . is pressed, we need to find 'c'
+ "
+
+ " Search backwards to the beginning of the statement
+ " and do NOT wrap
+ " exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy'
+ exec 'silent! normal! ?\<\(select\|update\|delete\|;\)\>'."\n"
+
+ " Start characterwise visual mode
+ " Advance right one character
+ " Search foward until one of the following:
+ " 1. Another select/update/delete statement
+ " 2. A ; at the end of a line (the delimiter)
+ " 3. The end of the file (incase no delimiter)
+ " Yank the visually selected text into the "y register.
+ exec 'silent! normal! vl/\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
+
+ let query = @y
+ let query = substitute(query, "\n", ' ', 'g')
+ let found = 0
+
+ " if query =~? '^\(select\|update\|delete\)'
+ if query =~? '^\(select\)'
+ let found = 1
+ " \(\(\<\w\+\>\)\.\)\? -
+ " 'from.\{-}' - Starting at the from clause
+ " '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
+ " '\<\w\+\>\ze' - Get the table name
+ " '\s\+\<'.table_name.'\>' - Followed by the alias
+ " '\s*\.\@!.*' - Cannot be followed by a .
+ " '\(\<where\>\|$\)' - Must be followed by a WHERE clause
+ " '.*' - Exclude the rest of the line in the match
+ let table_name_new = matchstr(@y,
+ \ 'from.\{-}'.
+ \ '\zs\(\(\<\w\+\>\)\.\)\?'.
+ \ '\<\w\+\>\ze'.
+ \ '\s\+\%(as\s\+\)\?\<'.table_name.'\>'.
+ \ '\s*\.\@!.*'.
+ \ '\(\<where\>\|$\)'.
+ \ '.*'
+ \ )
+ if table_name_new != ''
+ let table_alias = table_name
+ let table_name = table_name_new
+
+ let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
+ if list_idx > -1
+ let table_cols = split(s:tbl_cols[list_idx])
+ let s:tbl_name[list_idx] = table_name
+ let s:tbl_alias[list_idx] = table_alias
+ else
+ let list_idx = index(s:tbl_alias, table_name, 0, &ignorecase)
+ if list_idx > -1
+ let table_cols = split(s:tbl_cols[list_idx])
+ let s:tbl_name[list_idx] = table_name
+ let s:tbl_alias[list_idx] = table_alias
+ endif
+ endif
+
+ endif
+ else
+ " Simply assume it is a table name provided with a . on the end
+ let found = 1
+ endif
+
+ let @y = saveY
+ let @/ = saveSearch
+ let &wrapscan = saveWScan
+
+ " Return to previous location
+ call cursor(curline, curcol)
+
+ if found == 0
+ if g:loaded_dbext > 201
+ exec 'DBSetOption use_tbl_alias='.saveSettingAlias
+ endif
+
+ " Not a SQL statement, do not display a list
+ return []
+ endif
+ endif
+
+ if empty(table_cols)
+ " Specify silent mode, no messages to the user (tbl, 1)
+ " Specify do not comma separate (tbl, 1, 1)
+ let table_cols_str = DB_getListColumn(table_name, 1, 1)
+
+ if table_cols_str != ""
+ let s:tbl_name = add( s:tbl_name, table_name )
+ let s:tbl_alias = add( s:tbl_alias, table_alias )
+ let s:tbl_cols = add( s:tbl_cols, table_cols_str )
+ let table_cols = split(table_cols_str)
+ endif
+
+ endif
+
+ if g:loaded_dbext > 201
+ exec 'DBSetOption use_tbl_alias='.saveSettingAlias
+ endif
+
+ if a:list_type == 'csv' && !empty(table_cols)
+ let cols = join(table_cols, ', ')
+ let cols = s:SQLCAddAlias(table_name, table_alias, cols)
+ let table_cols = [cols]
+ endif
+
+ return table_cols
+endfunction
+
diff --git a/runtime/autoload/syntaxcomplete.vim b/runtime/autoload/syntaxcomplete.vim
index 4a13d4f0ae..6158a271cd 100644
--- a/runtime/autoload/syntaxcomplete.vim
+++ b/runtime/autoload/syntaxcomplete.vim
@@ -1,8 +1,8 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <fishburn@ianywhere.com>
-" Version: 1.2
-" Last Change: Sat Mar 18 2006 8:25:30 PM
+" Version: 1.3
+" Last Change: Mon Mar 27 2006 9:29:35 PM
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
@@ -181,7 +181,7 @@ function! OmniSyntaxList()
if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we
" are interested in.
- let extra_syn_list = s:SyntaxGroupItems(group_name, syntax_full)
+ let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
let syn_list = syn_list . extra_syn_list . "\n"
endif
@@ -212,7 +212,7 @@ function! OmniSyntaxList()
endif
endfunction
-function! s:SyntaxGroupItems( group_name, syntax_full )
+function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
let syn_list = ""
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index fc89485ae8..81463b4e62 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0c. Last change: 2006 Mar 26
+*eval.txt* For Vim version 7.0c. Last change: 2006 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1501,6 +1501,7 @@ append( {lnum}, {list}) Number append lines {list} below line {lnum}
argc() Number number of files in the argument list
argidx() Number current index in the argument list
argv( {nr}) String {nr} entry of the argument list
+argv( ) List the argument list
browse( {save}, {title}, {initdir}, {default})
String put up a file requester
browsedir( {title}, {initdir}) String put up a directory requester
@@ -1767,7 +1768,7 @@ argidx() The result is the current index in the argument list. 0 is
the first file. argc() - 1 is the last one. See |arglist|.
*argv()*
-argv({nr}) The result is the {nr}th file in the argument list of the
+argv([{nr}]) The result is the {nr}th file in the argument list of the
current window. See |arglist|. "argv(0)" is the first one.
Example: >
:let i = 0
@@ -1776,7 +1777,9 @@ argv({nr}) The result is the {nr}th file in the argument list of the
: exe 'amenu Arg.' . f . ' :e ' . f . '<CR>'
: let i = i + 1
:endwhile
-<
+< Without the {nr} argument a |List| with the whole |arglist| is
+ returned.
+
*browse()*
browse({save}, {title}, {initdir}, {default})
Put up a file requester. This only works when "has("browse")"
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 9f491d382c..c52d00dd71 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt* For Vim version 7.0c. Last change: 2005 Sep 10
+*fold.txt* For Vim version 7.0c. Last change: 2006 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -109,6 +109,7 @@ level of the previous line.
There must be no side effects from the expression. The text in the buffer,
cursor position, the search patterns, options etc. must not be changed.
+You can change and restore them if you are careful.
If there is some error in the expression, or the resulting value isn't
recognized, there is no error message and the fold level will be zero.
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index e666590f4c..d6f4a62e72 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt* For Vim version 7.0c. Last change: 2005 Aug 30
+*indent.txt* For Vim version 7.0c. Last change: 2006 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -68,7 +68,7 @@ as follows:
"e" if you type the second 'e' for an "else" at the start of a
line
-Characters that can precede each key:
+Characters that can precede each key: *i_CTRL-F*
! When a '!' precedes the key, Vim will not insert the key but will
instead reindent the current line. This allows you to define a
command key for reindenting the current line. CTRL-F is the default
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 6138af6d68..4eb4bcf37b 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.0c. Last change: 2006 Mar 28
+*insert.txt* For Vim version 7.0c. Last change: 2006 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1214,11 +1214,11 @@ are included.
CSS *ft-css-omni*
Complete properties and their appropriate values according to CSS 2.1
-specification.
+specification.
-HTML and XHTML *ft-html-omni*
- *ft-xhtml-omni*
+HTML *ft-html-omni*
+XHTML *ft-xhtml-omni*
CTRL-X CTRL-O provides completion of various elements of (X)HTML files. It is
designed to support writing of XHTML 1.0 Strict files but will also works for
@@ -1239,12 +1239,12 @@ other versions of HTML. Features:
- when used after "</" CTRL-X CTRL-O will close the last opened tag
Note: When used first time completion menu will be shown with little delay
-- this is time needed for loading of data file.
+- this is time needed for loading of data file.
Note: Completion may fail in badly formatted documents. In such case try to
run |:make| command to detect formatting problems.
-JAVASCRIPT *ft-javascript-omni*
+JAVASCRIPT *ft-javascript-omni*
Completion of most elements of JavaScript language and DOM elements.
@@ -1260,7 +1260,7 @@ Complete:
Completion works in separate JavaScript files (&ft==javascript), inside of
<script> tag of (X)HTML and in values of event attributes (including scanning
of external files.
-
+
DOM compatibility
At the moment (beginning of 2006) there are two main browsers - MS Internet
@@ -1268,11 +1268,11 @@ Explorer and Mozilla Firefox. These two applications are covering over 90% of
market. Theoretically standards are created by W3C organisation
(http://www.w3c.org) but they are not always followed/implemented.
- IE FF W3C Omni completion ~
- +/- +/- + + ~
- + + - + ~
- + - - - ~
- - + - - ~
+ IE FF W3C Omni completion ~
+ +/- +/- + + ~
+ + + - + ~
+ + - - - ~
+ - + - - ~
Regardless from state of implementation in browsers but if element is defined
in standards, completion plugin will place element in suggestion list. When
@@ -1280,7 +1280,7 @@ both major engines implemented element, even if this is not in standards it
will be suggested. All other elements are not placed in suggestion list.
-PHP *ft-php-omni*
+PHP *ft-php-omni*
Completion of PHP code requires tags file for completion of data from external
files. You should use Exuberant ctags version 5.5.4 or newer. You can find it
@@ -1317,15 +1317,15 @@ This uses the current syntax highlighting for completion. It can be used for
any filetype and provides a minimal language-sensitive completion.
To enable syntax code completion you can run: >
- setlocal omnifunc=syntaxcomplete#Complete
+ setlocal omnifunc=syntaxcomplete#Complete
You can automate this by placing the following in your vimrc (after any
":filetype" command): >
if has("autocmd") && exists("+omnifunc")
- autocmd Filetype *
- \ if &omnifunc == "" |
- \ setlocal omnifunc=syntaxcomplete#Complete |
- \ endif
+ autocmd Filetype *
+ \ if &omnifunc == "" |
+ \ setlocal omnifunc=syntaxcomplete#Complete |
+ \ endif
endif
The above will set completion to this script only if a specific plugin does
@@ -1368,6 +1368,14 @@ You can create as many of these variables as you need, varying only the
filetype at the end of the variable name.
+SQL *ft-sql-omni*
+
+Completion for the SQL language includes statements, functions, keywords.
+It will also dynamically complete tables, procedures, views and column lists
+with data pulled directly from within a database. For detailed instructions
+and a tutorial see |omni-sql-completion|.
+
+
XML *ft-xml-omni*
Vim 7 provides mechanism to context aware completion of XML files. It depends
@@ -1394,9 +1402,9 @@ which will not create conflicts in future. For example name xhtml10s.vim means
it is data file for XHTML 1.0 Strict.
File contains one variable with fixed name: g:xmldata_xhtml10s . It is
-compound from two parts:
+compound from two parts:
-1. "g:xmldata_" general prefix
+1. "g:xmldata_" general prefix
2. "xhtml10s" name of file and name of described XML dialect
Part two must be exactly the same as name of file.
@@ -1407,14 +1415,14 @@ of possible children, second element is |Dictionary| with names of attributes
as keys and possible values of attributes as values. Example: >
let g:xmldata_crippledhtml = {
- \ "html":
- \ [ ["body", "head"], {"id": [], "xmlns": ["http://www.w3.org/1999/xhtml"],
- \ "lang": [], "xml:lang": [], "dir": ["ltr", "rtl"]}],
- \ "script":
- \ [ [], {"id": [], "charset": [], "type": ["text/javascript"], "src": [],
+ \ "html":
+ \ [ ["body", "head"], {"id": [], "xmlns": ["http://www.w3.org/1999/xhtml"],
+ \ "lang": [], "xml:lang": [], "dir": ["ltr", "rtl"]}],
+ \ "script":
+ \ [ [], {"id": [], "charset": [], "type": ["text/javascript"], "src": [],
\ "defer": ["BOOL"], "xml:space": ["preserve"]}],
- \ "meta":
- \ [ [], {"id": [], "http-equiv": [], "name": [], "content": [], "scheme":
+ \ "meta":
+ \ [ [], {"id": [], "http-equiv": [], "name": [], "content": [], "scheme":
\ [], "lang": [], "xml:lang": [], "dir": ["ltr", "rtl"]}]
\ "vimxmlentities": ["amp", "lt", "gt", "apos", "quot"]},