annotate runtime/autoload/sqlcomplete.vim @ 34359:0447bf3a88a5 v9.1.0110

patch 9.1.0110: filetype: add 'Config.in' filetype detection Commit: https://github.com/vim/vim/commit/5f20f050efed3431beaf85739f0113e9ef0abd8e Author: Brandon Maier <brandon.maier@collins.com> Date: Wed Feb 14 22:30:06 2024 +0100 patch 9.1.0110: filetype: add 'Config.in' filetype detection The 'Config.in' file type is for Buildroot configuration files. Buildroot Config.in files use the same Kconfig backend as the Linux kernel's Kconfig files. Buildroot also has other filename variants that follow "Config.in.*", they are used to distinguish multiple Config.in files in the same directory. See https://buildroot.org/downloads/manual/manual.html#_literal_config_in_literal_file closes: #14038 Signed-off-by: Brandon Maier <brandon.maier@collins.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 14 Feb 2024 22:45:02 +0100
parents 11b656e74444
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
1 " Vim OMNI completion script for SQL
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
2 " Language: SQL
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
3 " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
7876
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
4 " Version: 16.0
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 7876
diff changeset
5 " Last Change: 2017 Oct 15
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
6 " Homepage: http://www.vim.org/scripts/script.php?script_id=1572
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
7 " Usage: For detailed help
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
8 " ":help sql.txt"
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
9 " or ":help ft-sql-omni"
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
10 " or read $VIMRUNTIME/doc/sql.txt
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
11
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
12 " History
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
13 "
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
14 " TODO
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
15 " - Jonas Enberg - if no table is found when using column completion
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
16 " look backwards to a FROM clause and find the first table
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
17 " and complete it.
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
18 "
7876
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
19 " Version 16.0 (Dec 2015)
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 12756
diff changeset
20 " - NF: If resetting the cache and table, procedure or view completion
7876
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
21 " had been used via dbext, have dbext delete or recreate the
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
22 " dictionary so that new objects are picked up for the
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
23 " next completion.
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
24 "
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
25 " Version 15.0 (May 2013)
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
26 " - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
27 " to use regular expressions to pick up extended syntax group names.
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
28 " This requires an updated SyntaxComplete plugin version 13.0.
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
29 " If the required versions have not been installed, previous
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
30 " behaviour will not be impacted.
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
31 "
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
32 " Version 14.0 (Dec 2012)
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
33 " - BF: Added check for cpo
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
34 "
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
35 " Version 13.0 (Dec 2012)
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
36 " - NF: When completing column lists or drilling into a table
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
37 " and g:omni_sql_include_owner is enabled, the
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
38 " only the table name would be replaced with the column
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
39 " list instead of the table name and owner (if specified).
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
40 " - NF: When completing column lists using table aliases
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
41 " and g:omni_sql_include_owner is enabled, account
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
42 " for the owner name when looking up the table
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
43 " list instead of the table name and owner (if specified).
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
44 " - BF: When completing column lists or drilling into a table
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
45 " and g:omni_sql_include_owner is enabled, the
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
46 " column list could often not be found for the table.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
47 " - BF: When OMNI popped up, possibly the wrong word
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
48 " would be replaced for column and column list options.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
49 "
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
50 " Version 12.0 (Feb 2012)
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
51 " - Partial column name completion did not work when a table
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
52 " name or table alias was provided (Jonas Enberg).
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
53 " - Improved the handling of column completion. First we match any
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
54 " columns from a previous completion. If not matches are found, we
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
55 " consider the partial name to be a table or table alias for the
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
56 " query and attempt to match on it.
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
57 "
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
58 " Version 11.0 (Jan 2012)
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
59 " Added g:omni_sql_default_compl_type variable
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
60 " - You can specify which type of completion to default to
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
61 " when pressing <C-X><C-O>. The entire list of available
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
62 " choices can be found in the calls to sqlcomplete#Map in:
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
63 " ftplugin/sql.vim
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
64 "
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
65 " Version 10.0
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
66 " Updated PreCacheSyntax()
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
67 " - Now returns a List of the syntax items it finds.
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
68 " This allows other plugins / scripts to use this list for their own
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
69 " purposes. In this case XPTemplate can use them for a Choose list.
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
70 " - Verifies the parameters are the correct type and displays a
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
71 " warning if not.
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
72 " - Verifies the parameters are the correct type and displays a
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
73 " warning if not.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
74 " Updated SQLCWarningMsg()
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
75 " - Prepends warning message with SQLComplete so you know who issued
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
76 " the warning.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
77 " Updated SQLCErrorMsg()
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
78 " - Prepends error message with SQLComplete so you know who issued
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
79 " the error.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
80 "
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
81 " Version 9.0 (May 2010)
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
82 " This change removes some of the support for tables with spaces in their
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
83 " names in order to simplify the regexes used to pull out query table
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
84 " aliases for more robust table name and column name code completion.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
85 " Full support for "table names with spaces" can be added in again
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
86 " after 7.3.
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
87 "
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
88 " Version 8.0
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
89 " Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
90 " when drilling in and out of a column list for a table.
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
91 "
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
92 " Version 7.0 (Jan 2010)
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
93 " Better handling of object names
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
94 "
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
95 " Version 6.0 (Apr 2008)
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
96 " Supports object names with spaces "my table name"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
97 "
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
98 " Set completion with CTRL-X CTRL-O to autoloaded function.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
99 " This check is in place in case this script is
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
100 " sourced directly instead of using the autoload feature.
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
101 if exists('&omnifunc')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
102 " Do not set the option if already set since this
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
103 " results in an E117 warning.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
104 if &omnifunc == ""
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
105 setlocal omnifunc=sqlcomplete#Complete
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
106 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
107 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
108
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
109 if exists('g:loaded_sql_completion')
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
110 finish
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
111 endif
7876
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
112 let g:loaded_sql_completion = 160
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
113 let s:keepcpo= &cpo
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
114 set cpo&vim
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
115
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
116 " Maintains filename of dictionary
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
117 let s:sql_file_table = ""
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
118 let s:sql_file_procedure = ""
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
119 let s:sql_file_view = ""
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
120
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
121 " Define various arrays to be used for caching
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
122 let s:tbl_name = []
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
123 let s:tbl_alias = []
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
124 let s:tbl_cols = []
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
125 let s:syn_list = []
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
126 let s:syn_value = []
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
127
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
128 " Used in conjunction with the syntaxcomplete plugin
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
129 let s:save_inc = ""
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
130 let s:save_exc = ""
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
131 if !exists('g:omni_syntax_group_include_sql')
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
132 let g:omni_syntax_group_include_sql = ''
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
133 endif
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
134 if !exists('g:omni_syntax_group_exclude_sql')
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
135 let g:omni_syntax_group_exclude_sql = ''
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
136 endif
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
137 let s:save_inc = g:omni_syntax_group_include_sql
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
138 let s:save_exc = g:omni_syntax_group_exclude_sql
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
139
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
140 " Used with the column list
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
141 let s:save_prev_table = ""
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
142
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
143 " Default the option to verify table alias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
144 if !exists('g:omni_sql_use_tbl_alias')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
145 let g:omni_sql_use_tbl_alias = 'a'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
146 endif
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
147 " Default syntax items to precache
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
148 if !exists('g:omni_sql_precache_syntax_groups')
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
149 let g:omni_sql_precache_syntax_groups = [
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
150 \ 'syntax\w*',
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
151 \ 'sqlKeyword\w*',
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
152 \ 'sqlFunction\w*',
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
153 \ 'sqlOption\w*',
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
154 \ 'sqlType\w*',
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
155 \ 'sqlStatement\w*'
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
156 \ ]
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
157 endif
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
158 " Set ignorecase to the ftplugin standard
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
159 if !exists('g:omni_sql_ignorecase')
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
160 let g:omni_sql_ignorecase = &ignorecase
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
161 endif
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
162 " During table completion, should the table list also
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
163 " include the owner name
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
164 if !exists('g:omni_sql_include_owner')
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
165 let g:omni_sql_include_owner = 0
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
166 if exists('g:loaded_dbext')
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
167 if g:loaded_dbext >= 300
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
168 " New to dbext 3.00, by default the table lists include the owner
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
169 " name of the table. This is used when determining how much of
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
170 " whatever has been typed should be replaced as part of the
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
171 " code replacement.
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
172 let g:omni_sql_include_owner = 1
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
173 endif
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
174 endif
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
175 endif
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
176 " Default type of completion used when <C-X><C-O> is pressed
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
177 if !exists('g:omni_sql_default_compl_type')
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
178 let g:omni_sql_default_compl_type = 'table'
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
179 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
180
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
181 " This function is used for the 'omnifunc' option.
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
182 " It is called twice by omni and it is responsible
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
183 " for returning the completion list of items.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
184 " But it must also determine context of what to complete
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
185 " and what to "replace" with the completion.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
186 " The a:base, is replaced directly with what the user
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
187 " chooses from the choices.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
188 " The s:prepend provides context for the completion.
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
189 function! sqlcomplete#Complete(findstart, base)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
190
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
191 " Default to table name completion
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
192 let compl_type = 'table'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
193 " Allow maps to specify what type of object completion they want
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
194 if exists('b:sql_compl_type')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
195 let compl_type = b:sql_compl_type
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
196 endif
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
197 let begindot = 0
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
198
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
199 " First pass through this function determines how much of the line should
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
200 " be replaced by whatever is chosen from the completion list
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
201 if a:findstart
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
202 " Locate the start of the item, including "."
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
203 let line = getline('.')
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
204 let start = col('.') - 1
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
205 let lastword = -1
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
206 " Check if the first character is a ".", for column completion
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
207 if line[start - 1] == '.'
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
208 let begindot = 1
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
209 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
210 while start > 0
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
211 " Additional code was required to handle objects which
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
212 " can contain spaces like "my table name".
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
213 if line[start - 1] !~ '\(\w\|\.\)'
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
214 " If the previous character is not a period or word character
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
215 break
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
216 " elseif line[start - 1] =~ '\(\w\|\s\+\)'
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
217 " let start -= 1
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
218 elseif line[start - 1] =~ '\w'
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
219 " If the previous character is word character continue back
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
220 let start -= 1
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
221 elseif line[start - 1] =~ '\.' &&
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
222 \ compl_type =~ 'column\|table\|view\|procedure'
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
223 " If the previous character is a period and we are completing
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
224 " an object which can be specified with a period like this:
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
225 " table_name.column_name
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
226 " owner_name.table_name
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
227
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
228 " If lastword has already been set for column completion
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
229 " break from the loop, since we do not also want to pickup
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
230 " a table name if it was also supplied.
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
231 " Unless g:omni_sql_include_owner == 1, then we can
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
232 " include the ownername.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
233 if lastword != -1 && compl_type == 'column'
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
234 \ && g:omni_sql_include_owner == 0
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
235 break
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
236 endif
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
237 " If column completion was specified stop at the "." if
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
238 " a . was specified, otherwise, replace all the way up
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
239 " to the owner name (if included).
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
240 if lastword == -1 && compl_type == 'column' && begindot == 1
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
241 let lastword = start
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
242 endif
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
243 " If omni_sql_include_owner = 0, do not include the table
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
244 " name as part of the substitution, so break here
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
245 if lastword == -1 &&
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
246 \ compl_type =~ '\<\(table\|view\|procedure\|column\|column_csv\)\>' &&
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
247 \ g:omni_sql_include_owner == 0
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
248 let lastword = start
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
249 break
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
250 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
251 let start -= 1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
252 else
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
253 break
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
254 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
255 endwhile
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
256
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
257 " Return the column of the last word, which is going to be changed.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
258 " Remember the text that comes before it in s:prepended.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
259 if lastword == -1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
260 let s:prepended = ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
261 return start
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
262 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
263 let s:prepended = strpart(line, start, lastword - start)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
264 return lastword
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
265 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
266
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
267 " Second pass through this function will determine what data to put inside
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
268 " of the completion list
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
269 " s:prepended is set by the first pass
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
270 let base = s:prepended . a:base
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
271
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
272 " Default the completion list to an empty list
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
273 let compl_list = []
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
274
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
275 " Default to table name completion
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
276 let compl_type = g:omni_sql_default_compl_type
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
277 " Allow maps to specify what type of object completion they want
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
278 if exists('b:sql_compl_type')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
279 let compl_type = b:sql_compl_type
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
280 unlet b:sql_compl_type
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
281 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
282
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
283 if compl_type == 'tableReset'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
284 let compl_type = 'table'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
285 let base = ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
286 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
287
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
288 if compl_type == 'table' ||
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
289 \ compl_type == 'procedure' ||
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
290 \ compl_type == 'view'
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
291
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
292 " This type of completion relies upon the dbext.vim plugin
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
293 if s:SQLCCheck4dbext() == -1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
294 return []
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
295 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
296
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
297 " Allow the user to override the dbext plugin to specify whether
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
298 " the owner/creator should be included in the list
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
299 if g:loaded_dbext >= 300
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
300 let saveSetting = DB_listOption('dict_show_owner')
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
301 exec 'DBSetOption dict_show_owner='.(g:omni_sql_include_owner==1?'1':'0')
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
302 endif
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
303
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
304 let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
305 " Same call below, no need to do it twice
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
306 " if s:sql_file_{compl_type} == ""
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
307 " let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
308 " endif
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
309 let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
310 if s:sql_file_{compl_type} != ""
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
311 if filereadable(s:sql_file_{compl_type})
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
312 let compl_list = readfile(s:sql_file_{compl_type})
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
313 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
314 endif
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
315
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
316 if g:loaded_dbext > 300
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
317 exec 'DBSetOption dict_show_owner='.saveSetting
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
318 endif
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
319 elseif compl_type =~? 'column'
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
320
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
321 " This type of completion relies upon the dbext.vim plugin
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
322 if s:SQLCCheck4dbext() == -1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
323 return []
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
324 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
325
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
326 if base == ""
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
327 " The last time we displayed a column list we stored
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
328 " the table name. If the user selects a column list
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
329 " without a table name of alias present, assume they want
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
330 " the previous column list displayed.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
331 let base = s:save_prev_table
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
332 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
333
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
334 let owner = ''
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
335 let column = ''
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
336
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
337 if base =~ '\.'
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
338 " Check if the owner/creator has been specified
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
339 let owner = matchstr( base, '^\zs.*\ze\..*\..*' )
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
340 let table = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
341 let column = matchstr( base, '.*\.\zs.*' )
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
342
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
343 if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
344 let owner = table
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
345 let table = column
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
346 let column = ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
347 endif
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
348
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
349 " It is pretty well impossible to determine if the user
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
350 " has entered:
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
351 " owner.table
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
352 " table.column_prefix
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
353 " So there are a couple of things we can do to mitigate
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
354 " this issue.
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
355 " 1. Check if the dbext plugin has the option turned
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
356 " on to even allow owners
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
357 " 2. Based on 1, if the user is showing a table list
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
358 " and the DrillIntoTable (using <Right>) then
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
359 " this will be owner.table. In this case, we can
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
360 " check to see the table.column exists in the
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
361 " cached table list. If it does, then we have
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
362 " determined the user has actually chosen
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
363 " owner.table, not table.column_prefix.
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
364 let found = -1
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
365 if g:omni_sql_include_owner == 1 && owner == ''
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
366 if filereadable(s:sql_file_table)
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
367 let tbl_list = readfile(s:sql_file_table)
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
368 let found = index( tbl_list, ((table != '')?(table.'.'):'').column)
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
369 endif
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
370 endif
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
371 " If the table.column was found in the table list, we can safely assume
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
372 " the owner was not provided and shift the items appropriately.
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
373 " OR
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
374 " If the user has indicated not to use table owners at all and
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
375 " the base ends in a '.' we know they are not providing a column
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
376 " name, so we can shift the items appropriately.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
377 " if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
378 " let owner = table
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
379 " let table = column
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
380 " let column = ''
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
381 " endif
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
382 else
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
383 " If no "." was provided and the user asked for
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
384 " column level completion, first attempt the match
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
385 " on any previous column lists. If the user asked
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
386 " for a list of columns comma separated, continue as usual.
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
387 if compl_type == 'column' && s:save_prev_table != ''
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
388 " The last time we displayed a column list we stored
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
389 " the table name. If the user selects a column list
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
390 " without a table name of alias present, assume they want
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
391 " the previous column list displayed.
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
392 let table = s:save_prev_table
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
393 let list_type = ''
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
394
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
395 let compl_list = s:SQLCGetColumns(table, list_type)
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
396 if ! empty(compl_list)
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
397 " If no column prefix has been provided and the table
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
398 " name was provided, append it to each of the items
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
399 " returned.
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
400 let compl_list = filter(deepcopy(compl_list), 'v:val=~"^'.base.'"' )
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
401
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
402 " If not empty, we have a match on columns
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
403 " return the list
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
404 if ! empty(compl_list)
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
405 return compl_list
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
406 endif
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
407 endif
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
408 endif
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
409 " Since no columns were found to match the base supplied
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
410 " assume the user is trying to complete the column list
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
411 " for a table (and or an alias to a table).
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
412 let table = base
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
413 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
414
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
415 " Get anything after the . and consider this the table name
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
416 " If an owner has been specified, then we must consider the
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
417 " base to be a partial column name
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
418 " let base = matchstr( base, '^\(.*\.\)\?\zs.*' )
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
419
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
420 if table != ""
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
421 let s:save_prev_table = base
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
422 let list_type = ''
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
423
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
424 if compl_type == 'column_csv'
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
425 " Return one array element, with a comma separated
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
426 " list of values instead of multiple array entries
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
427 " for each column in the table.
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
428 let list_type = 'csv'
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
429 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
430
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
431 " If we are including the OWNER for the objects, then for
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
432 " table completion, if we have it, it should be included
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
433 " as there can be the same table names in a database yet
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
434 " with different owner names.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
435 if g:omni_sql_include_owner == 1 && owner != '' && table != ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
436 let compl_list = s:SQLCGetColumns(owner.'.'.table, list_type)
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
437 else
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
438 let compl_list = s:SQLCGetColumns(table, list_type)
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
439 endif
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
440
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
441 if column != ''
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
442 " If no column prefix has been provided and the table
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
443 " name was provided, append it to each of the items
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
444 " returned.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
445 let compl_list = map(compl_list, 'table.".".v:val')
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
446 if owner != ''
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
447 " If an owner has been provided append it to each of the
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
448 " items returned.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
449 let compl_list = map(compl_list, 'owner.".".v:val')
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
450 endif
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
451 else
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
452 let base = ''
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
453 endif
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
454
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
455 if compl_type == 'column_csv'
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
456 " Join the column array into 1 single element array
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
457 " but make the columns column separated
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
458 let compl_list = [join(compl_list, ', ')]
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
459 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
460 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
461 elseif compl_type == 'resetCache'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
462 " Reset all cached items
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
463 let s:tbl_name = []
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
464 let s:tbl_alias = []
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
465 let s:tbl_cols = []
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
466 let s:syn_list = []
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
467 let s:syn_value = []
7876
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
468
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
469 if s:sql_file_table != ""
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
470 if g:loaded_dbext >= 2300
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
471 call DB_DictionaryDelete("table")
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
472 else
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
473 DBCompleteTables!
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
474 endif
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
475 endif
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
476 if s:sql_file_procedure != ""
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
477 if g:loaded_dbext >= 2300
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
478 call DB_DictionaryDelete("procedure")
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
479 else
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
480 DBCompleteProcedures!
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
481 endif
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
482 endif
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
483 if s:sql_file_view != ""
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
484 if g:loaded_dbext >= 2300
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
485 call DB_DictionaryDelete("view")
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
486 else
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
487 DBCompleteViews!
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
488 endif
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
489 endif
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 4437
diff changeset
490
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
491 let s:sql_file_table = ""
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
492 let s:sql_file_procedure = ""
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
493 let s:sql_file_view = ""
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
494
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
495 let msg = "All SQL cached items have been removed."
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
496 call s:SQLCWarningMsg(msg)
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
497 " Leave time for the user to read the error message
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
498 :sleep 2
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
499 else
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
500 let compl_list = s:SQLCGetSyntaxList(compl_type)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
501 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
502
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
503 if base != ''
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
504 " Filter the list based on the first few characters the user entered.
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
505 " Check if the text matches at the beginning
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
506 " \\(^.base.'\\)
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
507 " or
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
508 " Match to a owner.table or alias.column type match
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
509 " ^\\(\\w\\+\\.\\)\\?'.base.'\\)
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
510 " or
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
511 " Handle names with spaces "my table name"
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
512 " "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
513 "
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
514 let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
515 " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\)"'
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
516 " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
517 " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
518 let compl_list = filter(deepcopy(compl_list), expr)
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
519
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
520 if empty(compl_list) && compl_type == 'table' && base =~ '\.$'
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
521 " It is possible we could be looking for column name completion
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
522 " and the user simply hit C-X C-O to lets try it as well
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
523 " since we had no hits with the tables.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
524 " If the base ends with a . it is hard to know if we are
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
525 " completing table names or column names.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
526 let list_type = ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
527
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
528 let compl_list = s:SQLCGetColumns(base, list_type)
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
529 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
530 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
531
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
532 if exists('b:sql_compl_savefunc') && b:sql_compl_savefunc != ""
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
533 let &omnifunc = b:sql_compl_savefunc
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
534 endif
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
535
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
536 if empty(compl_list)
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
537 call s:SQLCWarningMsg( 'Could not find type['.compl_type.'] using prepend[.'.s:prepended.'] base['.a:base.']' )
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
538 endif
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
539
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
540 return compl_list
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
541 endfunc
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
542
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
543 function! sqlcomplete#PreCacheSyntax(...)
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
544 let syn_group_arr = []
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
545 let syn_items = []
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
546
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
547 if a:0 > 0
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
548 if type(a:1) != 3
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
549 call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
550 return ''
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
551 endif
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
552 let syn_group_arr = a:1
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
553 else
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
554 let syn_group_arr = g:omni_sql_precache_syntax_groups
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
555 endif
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
556 " For each group specified in the list, precache all
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 12756
diff changeset
557 " the syntax items.
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
558 if !empty(syn_group_arr)
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
559 for group_name in syn_group_arr
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
560 let syn_items = extend( syn_items, s:SQLCGetSyntaxList(group_name) )
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
561 endfor
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
562 endif
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
563
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
564 return syn_items
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
565 endfunction
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
566
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
567 function! sqlcomplete#ResetCacheSyntax(...)
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
568 let syn_group_arr = []
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
569
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
570 if a:0 > 0
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
571 if type(a:1) != 3
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
572 call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
573 return ''
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
574 endif
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
575 let syn_group_arr = a:1
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
576 else
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
577 let syn_group_arr = g:omni_sql_precache_syntax_groups
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
578 endif
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
579 " For each group specified in the list, precache all
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 12756
diff changeset
580 " the syntax items.
2458
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
581 if !empty(syn_group_arr)
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
582 for group_name in syn_group_arr
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
583 let list_idx = index(s:syn_list, group_name, 0, &ignorecase)
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
584 if list_idx > -1
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
585 " Remove from list of groups
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
586 call remove( s:syn_list, list_idx )
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
587 " Remove from list of keywords
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
588 call remove( s:syn_value, list_idx )
22a6f99e6477 Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2152
diff changeset
589 endif
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
590 endfor
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
591 endif
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
592 endfunction
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
593
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
594 function! sqlcomplete#Map(type)
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
595 " Tell the SQL plugin what you want to complete
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
596 let b:sql_compl_type=a:type
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
597 " Record previous omnifunc, if the SQL completion
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
598 " is being used in conjunction with other filetype
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
599 " completion plugins
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
600 if &omnifunc != "" && &omnifunc != 'sqlcomplete#Complete'
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
601 " Record the previous omnifunc, the plugin
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
602 " will automatically set this back so that it
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
603 " does not interfere with other ftplugins settings
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
604 let b:sql_compl_savefunc=&omnifunc
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
605 endif
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
606 " Set the OMNI func for the SQL completion plugin
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
607 let &omnifunc='sqlcomplete#Complete'
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
608 endfunction
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
609
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
610 function! sqlcomplete#DrillIntoTable()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
611 " If the omni popup window is visible
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
612 if pumvisible()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
613 call sqlcomplete#Map('column')
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
614 " C-Y, makes the currently highlighted entry active
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
615 " and trigger the omni popup to be redisplayed
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
616 call feedkeys("\<C-Y>\<C-X>\<C-O>", 'n')
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
617 else
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
618 " If the popup is not visible, simple perform the normal
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
619 " key behaviour.
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 12756
diff changeset
620 " Must use exec since the key must be preceded by "\"
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
621 " or feedkeys will simply push each character of the string
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
622 " rather than the "key press".
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
623 exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
624 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
625 return ""
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
626 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
627
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
628 function! sqlcomplete#DrillOutOfColumns()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
629 " If the omni popup window is visible
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
630 if pumvisible()
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
631 call sqlcomplete#Map('tableReset')
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
632 " Trigger the omni popup to be redisplayed
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
633 call feedkeys("\<C-X>\<C-O>")
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
634 else
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
635 " If the popup is not visible, simple perform the normal
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
636 " key behaviour.
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 12756
diff changeset
637 " Must use exec since the key must be preceded by "\"
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
638 " or feedkeys will simply push each character of the string
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
639 " rather than the "key press".
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
640 exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
641 endif
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
642 return ""
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
643 endfunction
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
644
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
645 function! s:SQLCWarningMsg(msg)
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
646 echohl WarningMsg
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
647 echomsg 'SQLComplete:'.a:msg
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
648 echohl None
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
649 endfunction
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
650
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
651 function! s:SQLCErrorMsg(msg)
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
652 echohl ErrorMsg
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
653 echomsg 'SQLComplete:'.a:msg
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
654 echohl None
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
655 endfunction
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
656
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
657 function! s:SQLCGetSyntaxList(syn_group)
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
658 let syn_group = a:syn_group
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
659 let compl_list = []
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
660
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
661 " Check if we have already cached the syntax list
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
662 let list_idx = index(s:syn_list, syn_group, 0, &ignorecase)
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
663 if list_idx > -1
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
664 " Return previously cached value
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
665 let compl_list = s:syn_value[list_idx]
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
666 else
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
667 let s:save_inc = g:omni_syntax_group_include_sql
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
668 let s:save_exc = g:omni_syntax_group_exclude_sql
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
669 let g:omni_syntax_group_include_sql = ''
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
670 let g:omni_syntax_group_exclude_sql = ''
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
671
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
672 " Request the syntax list items from the
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
673 " syntax completion plugin
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
674 if syn_group == 'syntax'
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
675 " Handle this special case. This allows the user
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
676 " to indicate they want all the syntax items available,
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
677 " so do not specify a specific include list.
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
678 let syn_value = syntaxcomplete#OmniSyntaxList()
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
679 else
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
680 " The user has specified a specific syntax group
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
681 let g:omni_syntax_group_include_sql = syn_group
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
682 let syn_value = syntaxcomplete#OmniSyntaxList(syn_group)
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
683 endif
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
684 let g:omni_syntax_group_include_sql = s:save_inc
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
685 let g:omni_syntax_group_exclude_sql = s:save_exc
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
686 " Cache these values for later use
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
687 let s:syn_list = add( s:syn_list, syn_group )
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
688 let s:syn_value = add( s:syn_value, syn_value )
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
689 let compl_list = syn_value
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
690 endif
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
691
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
692 return compl_list
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
693 endfunction
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
694
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
695 function! s:SQLCCheck4dbext()
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
696 if !exists('g:loaded_dbext')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
697 let msg = "The dbext plugin must be loaded for dynamic SQL completion"
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
698 call s:SQLCErrorMsg(msg)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
699 " Leave time for the user to read the error message
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
700 :sleep 2
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
701 return -1
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
702 elseif g:loaded_dbext < 600
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
703 let msg = "The dbext plugin must be at least version 5.30 " .
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
704 \ " for dynamic SQL completion"
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
705 call s:SQLCErrorMsg(msg)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
706 " Leave time for the user to read the error message
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
707 :sleep 2
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
708 return -1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
709 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
710 return 1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
711 endfunction
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
712
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
713 function! s:SQLCAddAlias(table_name, table_alias, cols)
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
714 " Strip off the owner if included
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
715 let table_name = matchstr(a:table_name, '\%(.\{-}\.\)\?\zs\(.*\)' )
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
716 let table_alias = a:table_alias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
717 let cols = a:cols
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
718
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
719 if g:omni_sql_use_tbl_alias != 'n'
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
720 if table_alias == ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
721 if 'da' =~? g:omni_sql_use_tbl_alias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
722 if table_name =~ '_'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
723 " Treat _ as separators since people often use these
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
724 " for word separators
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
725 let save_keyword = &iskeyword
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
726 setlocal iskeyword-=_
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
727
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
728 " Get the first letter of each word
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
729 " [[:alpha:]] is used instead of \w
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
730 " to catch extended accented characters
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
731 "
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
732 let table_alias = substitute(
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
733 \ table_name,
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
734 \ '\<[[:alpha:]]\+\>_\?',
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
735 \ '\=strpart(submatch(0), 0, 1)',
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
736 \ 'g'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
737 \ )
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
738 " Restore original value
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
739 let &iskeyword = save_keyword
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
740 elseif table_name =~ '\u\U'
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
741 let table_alias = substitute(
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
742 \ table_name, '\(\u\)\U*', '\1', 'g')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
743 else
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
744 let table_alias = strpart(table_name, 0, 1)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
745 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
746 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
747 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
748 if table_alias != ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
749 " Following a word character, make sure there is a . and no spaces
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
750 let table_alias = substitute(table_alias, '\w\zs\.\?\s*$', '.', '')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
751 if 'a' =~? g:omni_sql_use_tbl_alias && a:table_alias == ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
752 let table_alias = inputdialog("Enter table alias:", table_alias)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
753 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
754 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
755 if table_alias != ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
756 let cols = substitute(cols, '\<\w', table_alias.'&', 'g')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
757 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
758 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
759
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
760 return cols
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
761 endfunction
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
762
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
763 function! s:SQLCGetObjectOwner(object)
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
764 " The owner regex matches a word at the start of the string which is
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
765 " followed by a dot, but doesn't include the dot in the result.
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
766 " ^ - from beginning of line
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
767 " \("\|\[\)\? - ignore any quotes
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
768 " \zs - start the match now
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
769 " .\{-} - get owner name
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
770 " \ze - end the match
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
771 " \("\|\[\)\? - ignore any quotes
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
772 " \. - must by followed by a .
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
773 " let owner = matchstr( a:object, '^\s*\zs.*\ze\.' )
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
774 let owner = matchstr( a:object, '^\("\|\[\)\?\zs\.\{-}\ze\("\|\]\)\?\.' )
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
775 return owner
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
776 endfunction
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
777
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
778 function! s:SQLCGetColumns(table_name, list_type)
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
779 if a:table_name =~ '\.'
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
780 " Check if the owner/creator has been specified
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
781 let owner = matchstr( a:table_name, '^\zs.*\ze\..*\..*' )
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
782 let table = matchstr( a:table_name, '^\(.*\.\)\?\zs.*\ze\..*' )
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
783 let column = matchstr( a:table_name, '.*\.\zs.*' )
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
784
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
785 if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
786 let owner = table
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
787 let table = column
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
788 let column = ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
789 endif
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
790 else
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
791 let owner = ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
792 let table = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
793 let column = ''
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
794 endif
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
795
1126
c5c164b4c95c updated for version 7.1a
vimboss
parents: 844
diff changeset
796 " Check if the table name was provided as part of the column name
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
797 " let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
798 let table_name = table
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
799 let table_cols = []
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
800 let table_alias = ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
801 let move_to_top = 1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
802
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
803 let table_name = substitute(table_name, '\s*\(.\{-}\)\s*$', '\1', 'g')
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
804
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
805 " If the table name was given as:
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
806 " where c.
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
807 let table_name = substitute(table_name, '^\c\(WHERE\|AND\|OR\)\s\+', '', '')
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
808 if g:loaded_dbext >= 300
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
809 let saveSettingAlias = DB_listOption('use_tbl_alias')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
810 exec 'DBSetOption use_tbl_alias=n'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
811 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
812
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
813 let table_name_stripped = substitute(table_name, '["\[\]]*', '', 'g')
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
814
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
815 " Check if we have already cached the column list for this table
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
816 " by its name
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
817 let list_idx = index(s:tbl_name, table_name_stripped, 0, &ignorecase)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
818 if list_idx > -1
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
819 let table_cols = split(s:tbl_cols[list_idx], '\n')
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
820 else
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
821 " Check if we have already cached the column list for this table
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
822 " by its alias, assuming the table_name provided was actually
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
823 " the alias for the table instead
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
824 " select *
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
825 " from area a
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
826 " where a.
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
827 let list_idx = index(s:tbl_alias, table_name_stripped, 0, &ignorecase)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
828 if list_idx > -1
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
829 let table_alias = table_name_stripped
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
830 let table_name = s:tbl_name[list_idx]
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
831 let table_cols = split(s:tbl_cols[list_idx], '\n')
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
832 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
833 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
834
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
835 " If we have not found a cached copy of the table
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
836 " And the table ends in a "." or we are looking for a column list
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
837 " if list_idx == -1 && (a:table_name =~ '\.' || b:sql_compl_type =~ 'column')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
838 " if list_idx == -1 && (a:table_name =~ '\.' || a:list_type =~ 'csv')
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
839 if list_idx == -1
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
840 let saveY = @y
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
841 let saveSearch = @/
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
842 let saveWScan = &wrapscan
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
843 let curline = line(".")
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
844 let curcol = col(".")
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
845
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 12756
diff changeset
846 " Do not let searches wrap
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
847 setlocal nowrapscan
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
848 " If . was entered, look at the word just before the .
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
849 " We are looking for something like this:
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
850 " select *
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
851 " from customer c
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
852 " where c.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
853 " So when . is pressed, we need to find 'c'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
854 "
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
855
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
856 " Search backwards to the beginning of the statement
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
857 " and do NOT wrap
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
858 " exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy'
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
859 exec 'silent! normal! ?\<\c\(select\|update\|delete\|;\)\>'."\n"
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
860
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
861 " Start characterwise visual mode
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
862 " Advance right one character
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 7876
diff changeset
863 " Search forward until one of the following:
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
864 " 1. Another select/update/delete statement
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
865 " 2. A ; at the end of a line (the delimiter)
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 12756
diff changeset
866 " 3. The end of the file (in case no delimiter)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
867 " Yank the visually selected text into the "y register.
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
868 exec 'silent! normal! vl/\c\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
869
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
870 let query = @y
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
871 let query = substitute(query, "\n", ' ', 'g')
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
872 let found = 0
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
873
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
874 " if query =~? '^\c\(select\)'
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
875 if query =~? '^\(select\|update\|delete\)'
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
876 let found = 1
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
877 " \(\(\<\w\+\>\)\.\)\? -
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
878 " '\c\(from\|join\|,\).\{-}' - Starting at the from clause (case insensitive)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
879 " '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
880 " '\<\w\+\>\ze' - Get the table name
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
881 " '\s\+\<'.table_name.'\>' - Followed by the alias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
882 " '\s*\.\@!.*' - Cannot be followed by a .
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
883 " '\(\<where\>\|$\)' - Must be followed by a WHERE clause
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
884 " '.*' - Exclude the rest of the line in the match
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
885 " let table_name_new = matchstr(@y,
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
886 " \ '\c\(from\|join\|,\).\{-}'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
887 " \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
888 " \ '\("\|\[\)\?.\{-}\("\|\]\)\?\ze'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
889 " \ '\s\+\%(as\s\+\)\?\<'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
890 " \ matchstr(table_name, '.\{-}\ze\.\?$').
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
891 " \ '\>'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
892 " \ '\s*\.\@!.*'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
893 " \ '\(\<where\>\|$\)'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
894 " \ '.*'
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
895 " \ )
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
896 "
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
897 "
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
898 " ''\c\(\<from\>\|\<join\>\|,\)\s*' - Starting at the from clause (case insensitive)
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
899 " '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?' - Get the owner name (optional)
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
900 " '\("\|\[\)\?\w\+\("\|\]\)\?\ze' - Get the table name
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
901 " '\s\+\%(as\s\+\)\?\<'.matchstr(table_name, '.\{-}\ze\.\?$').'\>' - Followed by the alias
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
902 " '\s*\.\@!.*' - Cannot be followed by a .
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
903 " '\(\<where\>\|$\)' - Must be followed by a WHERE clause
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
904 " '.*' - Exclude the rest of the line in the match
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
905 let table_name_new = matchstr(@y,
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
906 \ '\c\(\<from\>\|\<join\>\|,\)\s*'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
907 \ '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?'.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2034
diff changeset
908 \ '\("\|\[\)\?\w\+\("\|\]\)\?\ze'.
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
909 \ '\s\+\%(as\s\+\)\?\<'.
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
910 \ matchstr(table_name, '.\{-}\ze\.\?$').
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
911 \ '\>'.
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
912 \ '\s*\.\@!.*'.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
913 \ '\(\<where\>\|$\)'.
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
914 \ '.*'
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
915 \ )
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
916
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
917 if table_name_new != ''
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
918 let table_alias = table_name
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
919 if g:omni_sql_include_owner == 1
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
920 let table_name = matchstr( table_name_new, '^\zs\(.\{-}\.\)\?\(.\{-}\.\)\?.*\ze' )
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
921 else
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
922 " let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
923 let table_name = matchstr( table_name_new, '^\(.\{-}\.\)\?\zs\(.\{-}\.\)\?.*\ze' )
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
924 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
925
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
926 let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
927 if list_idx > -1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
928 let table_cols = split(s:tbl_cols[list_idx])
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
929 let s:tbl_name[list_idx] = table_name
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
930 let s:tbl_alias[list_idx] = table_alias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
931 else
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
932 let list_idx = index(s:tbl_alias, table_name, 0, &ignorecase)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
933 if list_idx > -1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
934 let table_cols = split(s:tbl_cols[list_idx])
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
935 let s:tbl_name[list_idx] = table_name
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
936 let s:tbl_alias[list_idx] = table_alias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
937 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
938 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
939
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
940 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
941 else
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
942 " Simply assume it is a table name provided with a . on the end
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
943 let found = 1
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
944 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
945
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
946 let @y = saveY
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
947 let @/ = saveSearch
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
948 let &wrapscan = saveWScan
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
949
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
950 " Return to previous location
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
951 call cursor(curline, curcol)
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
952
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
953 if found == 0
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
954 if g:loaded_dbext > 300
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
955 exec 'DBSetOption use_tbl_alias='.saveSettingAlias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
956 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
957
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
958 " Not a SQL statement, do not display a list
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
959 return []
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
960 endif
3371
8dcf3ea92b63 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2458
diff changeset
961 endif
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
962
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
963 if empty(table_cols)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
964 " Specify silent mode, no messages to the user (tbl, 1)
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
965 " Specify do not comma separate (tbl, 1, 1)
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
966 " let table_cols_str = DB_getListColumn(table_name, 1, 1)
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
967 let table_cols_str = DB_getListColumn((owner!=''?owner.'.':'').table_name, 1, 1)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
968
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
969 if table_cols_str != ""
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
970 let s:tbl_name = add( s:tbl_name, table_name )
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
971 let s:tbl_alias = add( s:tbl_alias, table_alias )
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
972 let s:tbl_cols = add( s:tbl_cols, table_cols_str )
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1126
diff changeset
973 let table_cols = split(table_cols_str, '\n')
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
974 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
975
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
976 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
977
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
978 if g:loaded_dbext > 300
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
979 exec 'DBSetOption use_tbl_alias='.saveSettingAlias
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
980 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
981
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
982 " If the user has asked for a comma separate list of column
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
983 " values, ask the user if they want to prepend each column
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
984 " with a tablename alias.
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
985 if a:list_type == 'csv' && !empty(table_cols)
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
986 let cols = join(table_cols, ', ')
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 840
diff changeset
987 let cols = s:SQLCAddAlias(table_name, table_alias, cols)
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
988 let table_cols = [cols]
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
989 endif
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
990
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
991 return table_cols
1f929f3ca806 updated for version 7.0c03
vimboss
parents:
diff changeset
992 endfunction
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
993 " Restore:
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
994 let &cpo= s:keepcpo
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
995 unlet s:keepcpo
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3371
diff changeset
996 " vim: ts=4 fdm=marker