Compare commits

...

42 Commits

Author SHA1 Message Date
Kazuki Sakamoto 5e1d8fba9e MacVim Snapshot 104
Binary targets OS X 10.8(Mountain Lion), 10.9(Mavericks), 10.10(Yosemite), and 10.11(El Capitan)

- Vim patch 7.4.1831

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5
- Ruby 2.0
2016-05-16 21:51:31 -07:00
Kazuki Sakamoto 392fcf3037 Merge pull request #283 from macvim-dev/fix/channel
Fix channel
2016-05-16 20:57:48 -07:00
Kazuki Sakamoto 417dd190a5 Fix channel 2016-05-16 20:56:44 -07:00
Kazuki Sakamoto fa9800e39b Merge pull request #281 from macvim-dev/fix/job
Fix job
2016-05-15 23:30:40 -07:00
Kazuki Sakamoto 88f4fe0968 Fix job 2016-05-15 23:24:45 -07:00
Kazuki Sakamoto 2375f35235 Merge remote-tracking branch 'vim/master' 2016-05-15 20:39:15 -07:00
Bram Moolenaar e40d75f6ef patch 7.4.1831
Problem:    When timer_stop() is called with a string there is no proper error
            message.
Solution:   Require getting a number. (Bjorn Linse)
2016-05-15 18:00:19 +02:00
Kazuki Sakamoto 32080ba100 Merge remote-tracking branch 'vim/master' 2016-05-11 21:26:19 -07:00
Bram Moolenaar 73a733e08b patch 7.4.1830
Problem:    non-antialiased misnamed.
Solution:   Use NONANTIALIASED and NONANTIALIASED_QUALITY. (Kim Brouer,
            closes #793)
2016-05-11 21:05:05 +02:00
Kazuki Sakamoto fd5b06fddd Merge pull request #280 from macvim-dev/fix/channel
Set CFSocket option for native size socket handling
2016-05-10 22:09:32 -07:00
Kazuki Sakamoto e026051f1d Set CFSocket option for native size socket handling 2016-05-10 22:08:09 -07:00
Kazuki Sakamoto 0fee3f143c Workaround fix for test_channel 2016-05-09 20:47:03 -07:00
Kazuki Sakamoto ae529b5e4a Merge remote-tracking branch 'vim/master' 2016-05-09 19:45:00 -07:00
Bram Moolenaar de7eb0a47b patch 7.4.1829
Problem:    No message on channel log when buffer was freed.
Solution:   Log a message.
2016-05-09 20:54:33 +02:00
Bram Moolenaar e0f76d0097 patch 7.4.1828
Problem:    May try to access buffer that's already freed.
Solution:   When freeing a buffer remove it from any channel.
2016-05-09 20:38:53 +02:00
Bram Moolenaar fb6ffc732e patch 7.4.1827
Problem:    No error when invoking a callback when it's not safe.
Solution:   Add an error message.  Avoid the error when freeing a channel.
2016-05-09 17:58:04 +02:00
Bram Moolenaar cf7ff70ca7 patch 7.4.1826
Problem:    Callbacks are invoked when it's not safe. (Andrew Stewart)
Solution:   When a channel is to be closed don't invoke callbacks right away,
            wait for a safe moment.
2016-05-09 17:20:14 +02:00
Kazuki Sakamoto 949fc40089 Merge remote-tracking branch 'vim/master' 2016-05-08 22:23:13 -07:00
Bram Moolenaar 5d96e3ae53 patch 7.4.1825
Problem:    When job writes to buffer nothing is written. (Nicola)
Solution:   Do not discard a channel before writing is done.
2016-05-08 21:47:01 +02:00
Bram Moolenaar 36e0f7da9b patch 7.4.1824
Problem:    When a job is no longer referenced and does not have an exit
            callback the process may hang around in defunc state. (Nicola)
Solution:   Call job_status() if the job is running and won't get freed
            because it might still be useful.
2016-05-08 13:21:12 +02:00
Bram Moolenaar d9db8b448c patch 7.4.1823
Problem:    Warning from 64 bit compiler.
Solution:   Add type cast. (Mike Williams)
2016-05-08 12:52:05 +02:00
Bram Moolenaar 91c4937be1 Updated runtime files. 2016-05-08 09:50:29 +02:00
Bram Moolenaar ea83bf06b9 patch 7.4.1822
Problem:    Redirecting stdout of a channel to "null" doesn't work. (Nicola)
Solution:   Correct the file descriptor number.
2016-05-08 09:40:51 +02:00
Bram Moolenaar 4ed6b2e2d7 patch 7.4.1821
Problem:    Test fails on MS-Windows.
Solution:   Sort the completion results.
2016-05-07 22:28:53 +02:00
Bram Moolenaar 9ccaae04c6 patch 7.4.1820
Problem:    Removing language from help tags too often.
Solution:   Only remove @en when not needed. (Hirohito Higashi)
2016-05-07 18:36:48 +02:00
Kazuki Sakamoto 2989db56e7 Merge pull request #278 from macvim-dev/fix/channel
Fix channel
2016-05-07 00:29:46 -07:00
Kazuki Sakamoto f0ba2aaec3 Fix channel 2016-05-07 00:28:57 -07:00
Kazuki Sakamoto b31f06a1ea Merge remote-tracking branch 'vim/master' 2016-05-06 23:00:20 -07:00
Bram Moolenaar 827b165b2a patch 7.4.1819
Problem:    Compiler warnings when sprintf() is a macro.
Solution:   Don't interrupt sprintf() with an #ifdef. (Michael Jarvis,
            closes #788)
2016-05-05 18:14:03 +02:00
Bram Moolenaar 89c79b9932 patch 7.4.1818
Problem:    Help completion adds @en to all matches except the first one.
Solution:   Remove "break", go over all items.
2016-05-05 17:18:41 +02:00
Kazuki Sakamoto 7330a2e5cf Remove --enable-termtruecolor 2016-05-05 04:36:40 -07:00
Kazuki Sakamoto e764e5a393 Merge remote-tracking branch 'vim/master' 2016-05-04 21:28:12 -07:00
Bram Moolenaar cefe4f9948 patch 7.4.1817
Problem:    The screen is not updated if a callback is invoked when closing a
            channel.
Solution:   Invoke redraw_after_callback().
2016-05-04 21:49:19 +02:00
Kazuki Sakamoto 0674485034 MacVim Snapshot 103
Binary targets OS X 10.8(Mountain Lion), 10.9(Mavericks), 10.10(Yosemite), and 10.11(El Capitan)

- Vim patch 7.4.1816

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5
- Ruby 2.0
2016-05-04 09:49:49 -07:00
Kazuki Sakamoto 297440f777 Merge pull request #276 from macvim-dev/fix/termguicolors
Fix termgui_mch_get_color in MacVim
2016-05-04 08:25:18 -07:00
Kazuki Sakamoto a111780dc7 Fix termgui_mch_get_color in MacVim 2016-05-03 21:44:21 -07:00
Kazuki Sakamoto df7edfe33b Merge remote-tracking branch 'vim/master' 2016-05-01 20:47:48 -07:00
Bram Moolenaar d8585eded6 patch 7.4.1816
Problem:    Looping over a null list throws an error.
Solution:   Skip over the for loop.
2016-05-01 23:05:53 +02:00
Bram Moolenaar 9a3b3311d2 patch 7.4.1815
Problem:    Compiler warnings for unused variables. (Ajit Thakkar)
Solution:   Add a dummy initialization. (Yasuhiro Matsumoto)
2016-05-01 20:20:49 +02:00
Bram Moolenaar b8d4905592 patch 7.4.1814
Problem:    A channel may be garbage collected while it's still being used by
            a job. (James McCoy)
Solution:   Mark the channel as used if the job is still used.  Do the same
            for channels that are still used.
2016-05-01 14:22:16 +02:00
Bram Moolenaar 9b4ebc692d patch 7.4.1813
Problem:    Memory access error when running test_quickfix.
Solution:   Allocate one more byte. (Yegappan Lakshmanan)
2016-05-01 13:28:38 +02:00
Bram Moolenaar 187147aedd patch 7.4.1812
Problem:    Failure on startup with Athena and Motif.
Solution:   Check for INVALCOLOR. (Kazunobu Kuriyama)
2016-05-01 13:09:57 +02:00
34 changed files with 659 additions and 364 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ env:
vi_cv_dll_name_python=/System/Library/Frameworks/Python.framework/Versions/2.7/Python
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.5/Python
VIMCMD=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
"CONFOPT='--with-features=huge --enable-multibyte --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-termtruecolor --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
"CONFOPT='--with-features=huge --enable-multibyte --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
sudo: false
+1 -5
View File
@@ -1,4 +1,4 @@
*channel.txt* For Vim version 7.4. Last change: 2016 Apr 26
*channel.txt* For Vim version 7.4. Last change: 2016 Apr 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -254,10 +254,6 @@ message, it must use the number zero:
Then channel handler will then get {response} converted to Vim types. If the
channel does not have a handler the message is dropped.
On read error or ch_close(), when using a socket with RAW or NL mode, the
string "DETACH\n" is sent, if still possible. The channel will then be
inactive.
It is also possible to use ch_sendraw() and ch_evalraw() on a JSON or JS
channel. The caller is then completely responsible for correct encoding and
decoding.
+3 -2
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2016 Apr 26
*eval.txt* For Vim version 7.4. Last change: 2016 May 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7712,6 +7712,7 @@ netbeans_intg Compiled with support for |netbeans|.
odbeditor Compiled with |odbeditor| support.
ole Compiled with OLE automation support for Win32.
os2 OS/2 version of Vim.
packages Compiled with |packages| support.
path_extra Compiled with up/downwards search in 'path' and 'tags'
perl Compiled with Perl interface.
persistent_undo Compiled with support for persistent undo history.
@@ -7745,9 +7746,9 @@ tag_old_static Compiled with support for old static tags
tag_any_white Compiled with support for any white characters in tags
files |tag-any-white|.
tcl Compiled with Tcl interface.
termguicolors Compiled with true color in terminal support.
terminfo Compiled with terminfo instead of termcap.
termresponse Compiled with support for |t_RV| and |v:termresponse|.
termtruecolor Compiled with true color in terminal support.
textobjects Compiled with support for |text-objects|.
tgetent Compiled with tgetent support, able to use a termcap
or terminfo file.
+19 -19
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Apr 30
*todo.txt* For Vim version 7.4. Last change: 2016 May 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,36 +34,30 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Athena version doesn't start up. Related to termguicolors change. (Kelvin
Lee)
Test_out_close_cb sometimes fails.
Why is DETACH not send to OutHandler()?
Vim reliably crashes when freeing the job and operator-pending mode is active.
(James McCoy, 2016 Apr 26)
Using close callback to read output doesn't work reliably.
(Andrew Stewart, 2016 Apr 27)
Crash when running a job a second time. (stewart, May 4)
problem with "Ignore" after adding 'guicolors'. (Charles Campbell, 2016 Apr
27)
In test_partial when start_job() has a non-existing command memory leaks.
Rename garbagecollect_for_testing() to test_garbagecollect_now().
Add test_get_null_list(), use in test_expr.
Memory leak in test49
Memory leak in test_alot, with matchstrpos()
Packages:
Also keep a list of loaded plugins, skip when encountered again?
- Add the "after" directory to 'runtimepath' only if it exists.
(Greg Hurrell, May 1)
- Also keep a list of loaded plugins, skip when encountered again?
Vim.org: when a user already has a homepage, do show the field so that it can
be deleted.
Running gvim from Agide causes a crash.
+channel:
- Only add DETACH message for netbeans.
- When running "echo hello" the job remains defunc. (Nicola, May 7)
- Feedback from Ramel Eshed, May 7. Occasional crashes.
- GUI:cursor blinking is irregular when invoking callbacks. (Ramel Eshed, 2016
Apr 16) somehow remember the previous state?
- When a message in the queue but there is no callback, drop it after a while?
@@ -81,9 +75,6 @@ Later
Make it so that the window ID can be used where currently a window nr is used
Patch to fix invalid behavior with NULL list. (Nikolai Pavlov, #768)
Also check :for.
Regexp problems:
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
(Manuel Ortega, 2016 Apr 24)
@@ -139,6 +130,9 @@ What if there is an invalid character?
Once .exe with updated installer is available: Add remark to download page
about /S and /D options (Ken Takata, 2016 Apr 13)
Patch to avoid reallocating buffer for quickfix lines three times.
(Yegappan Lakshmanan, 2016 May 7)
Patch to make cursor blinking work better with GTK3. (Kazunobu Kuriyama, 2016
Apr 19) Need to check this works on Linux.
Alternative:
@@ -152,6 +146,11 @@ Add tests for using number larger than number of lines in buffer.
Patch to fix escaping special characters for delete(). (tc-0, 2016 Mar 20,
#700) Test fails on MS-Windows.
Invalid behavior with NULL list. (Nikolai Pavlov, #768)
After patch 7.4.1818 the language is removed too often. (Ken Takata, 2016 May
5)
When 'autochdir' is set, writing new file does not change the current dir.
(Dan Church, issue #777)
@@ -834,6 +833,7 @@ optional. (2013 Jul 12)
Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
Improve the installer for MS-Windows. There are a few alternatives:
- Add silent install option. (Shane Lee, #751)
- Installer from Cream (Steve Hall).
- Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
https://github.com/gpwen/vim-installer-mui2
+2 -1
View File
@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.4. Last change: 2016 Apr 29
*various.txt* For Vim version 7.4. Last change: 2016 May 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -393,6 +393,7 @@ m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn|
m *+netbeans_intg* |netbeans|
m *+odbeditor* MacVim only: ODB Editor Protocol support |odbeditor|
m *+ole* Win32 GUI only: |ole-interface|
N *+packages* Loading |packages|
N *+path_extra* Up/downwards search in 'path' and 'tags'
m *+perl* Perl interface |perl|
m *+perl/dyn* Perl interface |perl-dynamic| |/dyn|
+3 -3
View File
@@ -1,6 +1,6 @@
" Vim plugin for using Vim as manpager.
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
" Last Change: 2016 Apr 30
" Last Change: 2016 May 07
" $MAN_PN is supposed to be set by MANPAGER, see ":help manpager.vim".
if empty($MAN_PN)
@@ -20,10 +20,10 @@ function! s:MANPAGER()
let manpage = expand('$MAN_PN')
endif
let page_sec = matchlist( manpage, '^' . pagesec_pattern . '$')
let page_sec = matchlist(tolower(manpage), '^' . pagesec_pattern . '$')
bwipe!
setlocal filetype=man
exe 'Man' page_sec[3] page_sec[1]
exe 'Man' page_sec[1] page_sec[0]
endfunction
+3 -3
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: DCL (Digital Command Language - vms)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Jan 20, 2016
" Version: 8
" Last Change: May 02, 2016
" Version: 9
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
" For version 5.x: Clear all syntax items
@@ -13,7 +13,7 @@ elseif exists("b:current_syntax")
finish
endif
if !has("patch-7.4.1141")
if !has("patch-7.4.1142")
setlocal iskeyword=$,@,48-57,_
else
syn iskeyword $,@,48-57,_
+3 -3
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lisp
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Jan 20, 2016
" Version: 24
" Last Change: May 02, 2016
" Version: 25
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
@@ -16,7 +16,7 @@ endif
if exists("g:lisp_isk")
exe "setl isk=".g:lisp_isk
elseif !has("patch-7.4.1141")
elseif !has("patch-7.4.1142")
setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
else
syn iskeyword 38,42,43,45,47-58,60-62,64-90,97-122,_
+3 -3
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Maple V (based on release 4)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Jan 20, 2016
" Version: 12
" Last Change: May 02, 2016
" Version: 13
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
"
" Package Function Selection: {{{1
@@ -30,7 +30,7 @@ elseif exists("b:current_syntax")
endif
" Iskeyword Effects: {{{1
if !has("patch-7.4.1141")
if !has("patch-7.4.1142")
setl isk=$,48-57,_,a-z,@-Z
else
syn iskeyword $,48-57,_,a-z,@-Z
+38 -28
View File
@@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Apr 11, 2016
" Version: 147
" Last Change: May 02, 2016
" Version: 151
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
@@ -18,19 +18,25 @@ endif
" trying to answer the question: which shell is /bin/sh, really?
" If the user has not specified any of g:is_kornshell, g:is_bash, g:is_posix, g:is_sh, then guess.
if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
if getline(1) =~ '\<ksh$'
let b:is_kornshell = 1
elseif getline(1) =~ '\<bash$'
let b:is_bash = 1
elseif getline(1) =~ '\<dash$'
let b:is_posix = 1
elseif !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
let s:shell = ""
if executable("/bin/sh")
let s:shell = resolve("/bin/sh")
elseif executable("/usr/bin/sh")
let s:shell = resolve("/usr/bin/sh")
endif
if s:shell =~ 'bash$'
let g:is_bash= 1
elseif s:shell =~ 'ksh$'
let g:is_kornshell = 1
if s:shell =~ 'ksh$'
let b:is_kornshell= 1
elseif s:shell =~ 'bash$'
let b:is_bash = 1
elseif s:shell =~ 'dash$'
let g:is_posix = 1
let b:is_posix = 1
endif
unlet s:shell
endif
@@ -86,8 +92,12 @@ if g:sh_fold_enabled && &fdm == "manual"
endif
" set up the syntax-highlighting iskeyword
if has("patch-7.4.1141")
exe "syn iskeyword ".&iskeyword.",-"
if has("patch-7.4.1142")
if exists("b:is_bash")
exe "syn iskeyword ".&iskeyword.",-,:"
else
exe "syn iskeyword ".&iskeyword.",-"
endif
endif
" Set up folding commands for shell {{{1
@@ -140,6 +150,7 @@ syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
syn cluster shPPSRightList contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm
syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList contains=shCharClass,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
@@ -213,14 +224,15 @@ syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"
syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' contained
syn match shAstQuote contained '\*\ze"' nextgroup=shString
syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestOpr contained "<=\|>=\|!=\|==\|=\~\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
syn match shTestPattern contained '\w\+'
syn region shTestDoubleQuote contained start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\\|\\"+ end='"'
syn region shTestDoubleQuote contained start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\\|\\"+ end='"' contains=shDeref,shDerefSimple,shDerefSpecial
syn match shTestSingleQuote contained '\\.'
syn match shTestSingleQuote contained "'[^']*'"
if exists("b:is_kornshell") || exists("b:is_bash")
syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\%(\\\\\)*\\$+ end="\]\]" contains=@shTestList,shNoQuote,shComment
syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\%(\\\\\)*\\$+ end="\]\]" contains=@shTestList,shAstQuote,shNoQuote,shComment
syn region shDblParen matchgroup=Delimiter start="((" skip=+\%(\\\\\)*\\$+ end="))" contains=@shTestList,shComment
endif
@@ -313,7 +325,9 @@ syn match shSource "^\.\s"
syn match shSource "\s\.\s"
"syn region shColon start="^\s*:" end="$" end="\s#"me=e-2 contains=@shColonList
"syn region shColon start="^\s*\zs:" end="$" end="\s#"me=e-2
syn match shColon '^\s*\zs:'
if exists("b:is_kornshell")
syn match shColon '^\s*\zs:'
endif
" String And Character Constants: {{{1
"================================
@@ -404,21 +418,21 @@ if !exists("g:is_posix")
endif
if exists("b:is_bash")
ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*)" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*)" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else
ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
endif
" Parameter Dereferencing: {{{1
" ========================
if !exists("g:sh_no_error")
syn match shDerefWordError "[^}$[]" contained
syn match shDerefWordError "[^}$[~]" contained
endif
syn match shDerefSimple "\$\%(\k\+\|\d\)"
syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
@@ -498,7 +512,7 @@ if exists("b:is_bash")
" bash : ${parameter//pattern}
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shCommandSubList
syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shCommandSubList
syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shPPSRightList
" bash : ${parameter/#substring/replacement}
syn match shDerefPSR contained '/#' nextgroup=shDerefPSRleft
@@ -567,6 +581,7 @@ syn sync match shWhileSync grouphere shRepeat "\<while\>"
" Default Highlighting: {{{1
" =====================
hi def link shArithRegion shShellVariables
hi def link shAstQuote shDoubleQuote
hi def link shAtExpr shSetList
hi def link shBeginHere shRedir
hi def link shCaseBar shConditional
@@ -597,7 +612,6 @@ hi def link shEmbeddedEcho shString
hi def link shEscape shCommandSub
hi def link shExDoubleQuote shDoubleQuote
hi def link shExSingleQuote shSingleQuote
hi def link shFunction Function
hi def link shHereDoc shString
hi def link shHerePayload shHereDoc
hi def link shLoop shStatement
@@ -628,21 +642,17 @@ if exists("b:is_bash")
hi def link bashAdminStatement shStatement
hi def link bashSpecialVariables shShellVariables
hi def link bashStatement shStatement
hi def link shFunctionParen Delimiter
hi def link shFunctionDelim Delimiter
hi def link shCharClass shSpecial
endif
if exists("b:is_kornshell")
hi def link kshSpecialVariables shShellVariables
hi def link kshStatement shStatement
hi def link shFunctionParen Delimiter
endif
if !exists("g:sh_no_error")
hi def link shCaseError Error
hi def link shCondError Error
hi def link shCurlyError Error
hi def link shDerefError Error
hi def link shDerefOpError Error
hi def link shDerefWordError Error
hi def link shDoError Error
+3 -3
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Apr 11, 2016
" Version: 94
" Last Change: May 02, 2016
" Version: 95
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
@@ -133,7 +133,7 @@ endif
" g:tex_isk
if exists("g:tex_isk")
exe "setlocal isk=".g:tex_isk
elseif !has("patch-7.4.1141")
elseif !has("patch-7.4.1142")
setl isk=48-57,a-z,A-Z,192-255
else
syn iskeyword 48-57,a-z,A-Z,192-255
+34 -33
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 7.4 script
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: April 12, 2016
" Version: 7.4-47
" Last Change: May 02, 2016
" Version: 7.4-50
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -18,38 +18,38 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2
syn keyword vimCommand contained a arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] ccl[ose] cfdo chd[ir] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro k keepp[atterns] lad[dexpr] later lcs lex[pr] lgetb[uffer] ll lne[xt] loadkeymap lp[revious] lua lw[indow] mat[ch] mks[ession] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tf[irst] tn[ext] ts[elect] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
syn keyword vimCommand contained ab argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] cd cfir[st] che[ckpath] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] fin[d] foldc[lose] g h[elp] hi if is[earch] kee[pmarks] lN[ext] laddb[uffer] lb[uffer] lcscope lf[ile] lgete[xpr] lla[st] lnew[er] loc[kmarks] lpf[ile] luado m[ove] menut[ranslate] mksp[ell] mzf[ile] new nor ol[dfiles] p[rint] pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] to[pleft] tu[nmenu] unh[ide] v vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
syn keyword vimCommand contained abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cdo cg[etfile] checkt[ime] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] isp[lit] keepa lNf[ile] laddf[ile] lc[d] ld[o] lfdo lgr[ep] lli[st] lnf[ile] lockv[ar] lr[ewind] luafile ma[rk] mes mkv[imrc] n[ext] nmapc[lear] nore omapc[lear] pa[ckadd] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tp[revious] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
syn keyword vimCommand contained abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] ce[nter] cgetb[uffer] cl[ist] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea el[se] endt[ry] f[ile] fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] iuna[bbrev] keepalt l[ist] lan[guage] lch[dir] le[ft] lfir[st] lgrepa[dd] lmak[e] lo[adview] lol[der] ls lv[imgrep] mak[e] messages mkvie[w] nb[key] noa nos[wapfile] on[ly] packl perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tr[ewind] una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] cex[pr] cgete[xpr] cla[st] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier elsei[f] endw[hile] files fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] j[oin] keepj[umps] la[st] lat lcl[ose] lefta[bove] lg[etfile] lh[elpgrep] lmapc[lear] loadk lop[en] lt[ag] lvimgrepa[dd] marks mk[exrc] mod[e] nbc[lose] noautocmd nu[mber] opt[ions] packloadall po[p] pro ps[earch] ptl[ast] pu[t] pydo quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs te[aroff] tm[enu] try undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
syn keyword vimCommand contained ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cc cf[ile] changes clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fix[del] for gui helpg[rep] ia in ju[mps]
syn keyword vimCommand contained a arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] ccl[ose] cfdo chd[ir] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro ju[mps] keepj[umps] la[st] lat lcl[ose] lefta[bove] lg[etfile] lh[elpgrep] lmapc[lear] loadk lop[en] lt[ag] lvimgrepa[dd] marks mk[exrc] mod[e] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tf[irst] tn[ext] ts[elect] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
syn keyword vimCommand contained ab argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] cd cfir[st] che[ckpath] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] fin[d] foldc[lose] g h[elp] hi if is[earch] k keepp[atterns] lad[dexpr] later lcs lex[pr] lgetb[uffer] ll lne[xt] loadkeymap lp[revious] lua lw[indow] mat[ch] mks[ession] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] to[pleft] tu[nmenu] unh[ide] v vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
syn keyword vimCommand contained abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cdo cg[etfile] checkt[ime] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] isp[lit] kee[pmarks] lN[ext] laddb[uffer] lb[uffer] lcscope lf[ile] lgete[xpr] lla[st] lnew[er] loc[kmarks] lpf[ile] luado m[ove] menut[ranslate] mksp[ell] mzf[ile] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tp[revious] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
syn keyword vimCommand contained abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] ce[nter] cgetb[uffer] cl[ist] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea el[se] endt[ry] f[ile] fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] iuna[bbrev] keepa lNf[ile] laddf[ile] lc[d] ld[o] lfdo lgr[ep] lli[st] lnf[ile] lockv[ar] lr[ewind] luafile ma[rk] mes mkv[imrc] n[ext] nmapc[lear] nore omapc[lear] pa[ckadd] perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tr[ewind] una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] cex[pr] cgete[xpr] cla[st] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier elsei[f] endw[hile] files fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] j[oin] keepalt l[ist] lan[guage] lch[dir] le[ft] lfir[st] lgrepa[dd] lmak[e] lo[adview] lol[der] ls lv[imgrep] mak[e] messages mkvie[w] nb[key] noa nos[wapfile] on[ly] packl[oadall] po[p] pro ps[earch] ptl[ast] pu[t] pydo quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs te[aroff] tm[enu] try undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
syn keyword vimCommand contained ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cc cf[ile] changes clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fix[del] for gui helpg[rep] ia in
syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained DiffOrig Man N[ext] P[rint] S TOhtml XMLent XMLns
" vimOptions are caught only when contained in a vimSet {{{2
syn keyword vimOption contained acd ambw arshape background ballooneval bg bomb bs cb ch cinoptions cms commentstring copyindent cryptmethod cscopeverbose csverb debug dict dir eb emo equalalways eventignore fde fdt fic fillchars fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imactivatekey imi include inex isi js kp lcs listchars lsp makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc paste perldll pm previewwindow printmbfont pythondll redrawtime revins ro ruler scb scs sessionoptions shellquote shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi tgst titleold top ttimeoutlen ttyscroll ul ur verbosefile visualbell wcm wi wildmenu winfixwidth wm wrapscan
syn keyword vimOption contained ai anti autochdir backspace balloonexpr bh breakat bsdir cc charconvert cinw co compatible cot cscopepathcomp cspc cuc deco dictionary directory ed emoji equalprg ex fdi fen fileencoding fixendofline fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imaf iminsert includeexpr inf isident key langmap linebreak lm luadll makeprg maxmem mh mmp more mouses mzq nuw opfunc pastetoggle pex pmbcs printdevice printoptions pythonthreedll regexpengine ri rop rulerformat scr sect sft shellredir shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding thesaurus titlestring tpm ttm ttytype undodir ut vfile vop wd wic wildmode winheight wmh write
syn keyword vimOption contained akm antialias autoindent backup bdir bin breakindent bsk ccv ci cinwords cocu complete cp cscopeprg csprg cul def diff display edcompatible enc errorbells expandtab fdl fenc fileencodings fixeol foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imak ims incsearch infercase isk keymap langmenu lines lmap lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchexpr pexpr pmbfn printencoding prompt qe relativenumber rightleft rs runtimepath scroll sections sh shellslash shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs terse tildeop tl tr tty tw undofile vb vi wa weirdinvert wig wildoptions winminheight wmnu writeany
syn keyword vimOption contained al ar autoread backupcopy bdlay binary breakindentopt bt cd cin clipboard cole completefunc cpo cscopequickfix csqf cursorbind define diffexpr dy ef encoding errorfile exrc fdls fencs fileformat fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imc imsearch inde insertmode iskeyword keymodel langnoremap linespace lnr lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa patchmode pfn popt printexpr pt quoteescape remap rightleftcmd rtp sb scrollbind secure shcf shelltemp shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc textauto timeout tm ts ttybuiltin tx undolevels vbs viewdir wak wfh wildchar wim winminwidth wmw writebackup
syn keyword vimOption contained aleph arab autowrite backupdir belloff bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm endofline errorformat fcl fdm fex fileformats fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imcmdline imsf indentexpr is isp keywordprg laststatus lisp loadplugins ma matchtime mco ml modeline mousefocus mousetime nrformats ofu packpath path ph pp printfont pumheight rdt renderoptions rl ru sbo scrolljump sel shell shelltype shortname shq sm so spellfile spr st sts swapsync syn tag tal tcldll textmode timeoutlen to tsl ttyfast uc undoreload vdir viewoptions warn wfw wildcharm winaltkeys winwidth wop writedelay
syn keyword vimOption contained allowrevins arabic autowriteall backupext beval bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetag cst cursorline dex digraph ead ei eol esckeys fcs fdn ff fileignorecase flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imd imstatusfunc indentkeys isf isprint km lazyredraw lispwords lpl macatsui maxcombine mef mls modelines mousehide mp nu omnifunc para pdev pheader preserveindent printheader pvh re report rlc rubydll sbr scrolloff selection shellcmdflag shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc textwidth title toolbar tsr ttym udf updatecount ve viminfo wb wh wildignore window wiv wrap ws
syn keyword vimOption contained altkeymap arabicshape aw backupskip bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopetagorder csto cwh dg dip eadirection ek ep et fdc fdo ffs filetype fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatefunc imdisable inc indk isfname joinspaces kmp lbr list ls magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paragraphs penc pi previewheight printmbcharset pvw readonly restorescreen rnu ruf sc scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term tf titlelen toolbariconsize ttimeout ttymouse udir updatetime verbose virtualedit wc whichwrap wildignorecase winfixheight wiw wrapmargin ww
syn keyword vimOption contained ambiwidth ari awa balloondelay bexpr bo browsedir casemap cfu cino cmp comments confirm
syn keyword vimOption contained acd ambw arshape background ballooneval bg bomb bs cb ch cinoptions cms commentstring copyindent cscopepathcomp csprg cul def diff display edcompatible enc errorbells expandtab fdl fenc fileencodings fixeol foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imak ims incsearch infercase isk keymap langmenu lines lmap lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchexpr pexpr pmbfn printencoding prompt qe relativenumber rightleft rs runtimepath scroll sections sh shellslash shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs termguicolors tgst titleold top ttimeoutlen ttyscroll ul ur verbosefile visualbell wcm wi wildmenu winfixwidth wm wrapscan
syn keyword vimOption contained ai anti autochdir backspace balloonexpr bh breakat bsdir cc charconvert cinw co compatible cot cscopeprg csqf cursorbind define diffexpr dy ef encoding errorfile exrc fdls fencs fileformat fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imc imsearch inde insertmode iskeyword keymodel langnoremap linespace lnr lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa patchmode pfn popt printexpr pt quoteescape remap rightleftcmd rtp sb scrollbind secure shcf shelltemp shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc terse thesaurus titlestring tpm ttm ttytype undodir ut vfile vop wd wic wildmode winheight wmh write
syn keyword vimOption contained akm antialias autoindent backup bdir bin breakindent bsk ccv ci cinwords cocu complete cp cscopequickfix csre cursorcolumn delcombine diffopt ea efm endofline errorformat fcl fdm fex fileformats fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imcmdline imsf indentexpr is isp keywordprg laststatus lisp loadplugins ma matchtime mco ml modeline mousefocus mousetime nrformats ofu packpath path ph pp printfont pumheight rdt renderoptions rl ru sbo scrolljump sel shell shelltype shortname shq sm so spellfile spr st sts swapsync syn tag tal tcldll textauto tildeop tl tr tty tw undofile vb vi wa weirdinvert wig wildoptions winminheight wmnu writeany
syn keyword vimOption contained al ar autoread backupcopy bdlay binary breakindentopt bt cd cin clipboard cole completefunc cpo cscoperelative cst cursorline dex digraph ead ei eol esckeys fcs fdn ff fileignorecase flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imd imstatusfunc indentkeys isf isprint km lazyredraw lispwords lpl macatsui maxcombine mef mls modelines mousehide mp nu omnifunc para pdev pheader preserveindent printheader pvh re report rlc rubydll sbr scrolloff selection shellcmdflag shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc textmode timeout tm ts ttybuiltin tx undolevels vbs viewdir wak wfh wildchar wim winminwidth wmw writebackup
syn keyword vimOption contained aleph arab autowrite backupdir belloff bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscopetag csto cwh dg dip eadirection ek ep et fdc fdo ffs filetype fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatefunc imdisable inc indk isfname joinspaces kmp lbr list ls magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paragraphs penc pi previewheight printmbcharset pvw readonly restorescreen rnu ruf sc scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term textwidth timeoutlen to tsl ttyfast uc undoreload vdir viewoptions warn wfw wildcharm winaltkeys winwidth wop writedelay
syn keyword vimOption contained allowrevins arabic autowriteall backupext beval bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetagorder csverb debug dict dir eb emo equalalways eventignore fde fdt fic fillchars fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imactivatekey imi include inex isi js kp lcs listchars lsp makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc paste perldll pm previewwindow printmbfont pythondll redrawtime revins ro ruler scb scs sessionoptions shellquote shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi tf title toolbar tsr ttym udf updatecount ve viminfo wb wh wildignore window wiv wrap ws
syn keyword vimOption contained altkeymap arabicshape aw backupskip bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc deco dictionary directory ed emoji equalprg ex fdi fen fileencoding fixendofline fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imaf iminsert includeexpr inf isident key langmap linebreak lm luadll makeprg maxmem mh mmp more mouses mzq nuw opfunc pastetoggle pex pmbcs printdevice printoptions pythonthreedll regexpengine ri rop rulerformat scr sect sft shellredir shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding tgc titlelen toolbariconsize ttimeout ttymouse udir updatetime verbose virtualedit wc whichwrap wildignorecase winfixheight wiw wrapmargin ww
syn keyword vimOption contained ambiwidth ari awa balloondelay bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc
" vimOptions: These are the turn-off setting variants {{{2
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noimdisable noinf noinsertmode nojoinspaces nolangnoremap nolbr nolisp nolnr nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noincsearch noinfercase nois nojs nolazyredraw nolinebreak nolist noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf noinsertmode nojoinspaces nolangnoremap nolbr nolisp nolnr nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noemo noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nois nojs nolazyredraw nolinebreak nolist noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch
" vimOptions: These are the invertible variants {{{2
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invimdisable invinf invinsertmode invjoinspaces invlangnoremap invlbr invlisp invlnr invlpl invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invincsearch invinfercase invis invjs invlazyredraw invlinebreak invlist invloadplugins invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invinsertmode invjoinspaces invlangnoremap invlbr invlisp invlnr invlpl invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invis invjs invlazyredraw invlinebreak invlist invloadplugins invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch
" termcap codes (which can also be set) {{{2
syn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RB t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR
syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da t_dl
syn keyword vimOption contained t_8b t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RB t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR
syn keyword vimOption contained t_8f t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EI
syn match vimOption contained "t_%1"
syn match vimOption contained "t_#2"
syn match vimOption contained "t_#4"
@@ -76,10 +76,10 @@ syn match vimHLGroup contained "Conceal"
syn case match
" Function Names {{{2
syn keyword vimFuncName contained abs and arglistid assert_exception assert_notequal atan2 buflisted bufwinnr call ch_close ch_getjob ch_open ch_sendraw clearmatches complete_check cosh deepcopy diff_hlID eval exists extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdpos getcurpos getfperm getftype getmatches getqflist gettabvar getwinposy glob2regpat has_key histadd histnr hostname index inputlist inputsecret isdirectory items job_setoptions job_stop js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setline setpos settabvar sha256 simplify sort spellsuggest str2float strdisplaywidth string strridx submatch synID synstack tabpagebuflist tagfiles tanh timer_stop tr undofile values wildmenumode win_findbuf winheight winline winrestview wordcount
syn keyword vimFuncName contained acos append argv assert_fails assert_notmatch browse bufloaded byte2line ceil ch_evalexpr ch_info ch_read ch_setoptions col confirm count delete disable_char_avail_for_testing eventhandler exp feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcharsearch getcmdtype getcwd getfsize getline getpid getreg gettabwinvar getwinvar globpath haslocaldir histdel hlexists iconv input inputrestore insert islocked job_getchannel job_start join json_decode len line localtime luaeval mapcheck matchaddpos matchend matchstrpos mkdir nextnonblank pathshorten prevnonblank py3eval readfile remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strftime strlen strtrans substitute synIDattr system tabpagenr taglist tempname tolower trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview writefile
syn keyword vimFuncName contained add argc asin assert_false assert_true browsedir bufname byteidx changenr ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype empty executable expand filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdline getcmdwintype getfontname getftime getloclist getpos getregtype getwinposx glob has hasmapto histget hlID indent inputdialog inputsave invert isnan job_info job_status js_decode json_encode libcall line2byte log map match matcharg matchlist max mode nr2char perleval printf pyeval reltime remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strchars stridx strpart strwidth synconcealed synIDtrans systemlist tabpagewinnr tan timer_start toupper type uniq visualmode wincol win_gotoid win_id2win winrestcmd winwidth xor
syn keyword vimFuncName contained alloc_fail argidx assert_equal assert_match atan bufexists bufnr byteidxcomp char2nr ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor diff_filler escape exepath
syn keyword vimFuncName contained abs and arglistid assert_exception assert_notequal atan2 buflisted bufwinnr call ch_close ch_getjob ch_open ch_sendraw clearmatches complete_check cosh deepcopy diff_hlID eval exists feedkeys finddir fmod foldclosedend foldtextresult garbagecollect getbufline getcharmod getcmdpos getcurpos getfperm getftype getmatches getqflist gettabvar getwinposy glob2regpat has_key histadd histnr hostname index inputlist inputsecret isdirectory items job_setoptions job_stop js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimefloat remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strcharpart strftime string strridx submatch synID synstack tabpagebuflist tagfiles tanh timer_stop tr undofile values wildmenumode win_findbuf winheight winline winrestview wordcount
syn keyword vimFuncName contained acos append argv assert_fails assert_notmatch browse bufloaded byte2line ceil ch_evalexpr ch_info ch_read ch_setoptions col confirm count delete disable_char_avail_for_testing eventhandler exp filereadable findfile fnameescape foldlevel foreground garbagecollect_for_testing getbufvar getcharsearch getcmdtype getcwd getfsize getline getpid getreg gettabwinvar getwinvar globpath haslocaldir histdel hlexists iconv input inputrestore insert islocked job_getchannel job_start join json_decode len line localtime luaeval mapcheck matchaddpos matchend matchstrpos mkdir nextnonblank pathshorten prevnonblank py3eval readfile reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setline setpos settabvar sha256 simplify sort spellsuggest str2float strchars strgetchar strlen strtrans substitute synIDattr system tabpagenr taglist tempname tolower trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview writefile
syn keyword vimFuncName contained add argc asin assert_false assert_true browsedir bufname byteidx changenr ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype empty executable expand filewritable float2nr fnamemodify foldtext function get getchar getcmdline getcmdwintype getfontname getftime getloclist getpos getregtype getwinposx glob has hasmapto histget hlID indent inputdialog inputsave invert isnan job_info job_status js_decode json_encode libcall line2byte log map match matcharg matchlist max mode nr2char perleval printf pyeval reltime remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strdisplaywidth stridx strpart strwidth synconcealed synIDtrans systemlist tabpagewinnr tan timer_start toupper type uniq visualmode wincol win_gotoid win_id2win winrestcmd winwidth xor
syn keyword vimFuncName contained alloc_fail argidx assert_equal assert_match atan bufexists bufnr byteidxcomp char2nr ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor diff_filler escape exepath extend filter floor foldclosed
"--- syntax here and above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1
@@ -202,7 +202,7 @@ syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCm
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
syn region vimAugroup fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList
else
syn region vimAugroup matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList
syn region vimAugroup matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList
endif
syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror")
@@ -310,10 +310,11 @@ syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
syn cluster vimSubstList add=vimCollection
syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[:[:alpha:]]\@!" nextgroup=vimSubstPat
syn match vimSubst "\%(^\|[^\\]\)s\%[ubstitute][:#[:alpha:]]\@!" nextgroup=vimSubstPat contained
syn match vimSubst "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat
syn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat
syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<\%(\<s\%[ubstitute]\>\|\<sm\%[agic]\>\|\<sno\%[magic]\>\)[:#[:alpha:]]\@!" nextgroup=vimSubstPat
syn match vimSubst "\%(^\|[^\\]\)\<s\%[ubstitute]\>[:#[:alpha:]]\@!" nextgroup=vimSubstPat contained
syn match vimSubst "/\zs\<s\%[ubstitute]\>\ze/" nextgroup=vimSubstPat
syn match vimSubst "\(:\+\s*\|^\s*\)s\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat
syn match vimSubst1 contained "\<s\%[ubstitute]\>" nextgroup=vimSubstPat
syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline
syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline
syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass
+1 -1
View File
@@ -1255,7 +1255,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>102</string>
<string>104</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
+4 -2
View File
@@ -3416,6 +3416,7 @@ static id evalExprCocoa(NSString * expr, NSString ** errstr)
- (void)dealloc
{
CFSocketInvalidate(socket);
CFRunLoopSourceInvalidate(runLoopSource);
CFRelease(runLoopSource);
CFRelease(socket);
@@ -3447,6 +3448,9 @@ static void socketReadCallback(CFSocketRef s,
kCFSocketReadCallBack,
&socketReadCallback,
&ctx);
CFOptionFlags opt = CFSocketGetSocketFlags(socket);
opt &= ~kCFSocketCloseOnInvalidate;
CFSocketSetSocketFlags(socket, opt);
runLoopSource = CFSocketCreateRunLoopSource(NULL,
socket,
0);
@@ -3459,9 +3463,7 @@ static void socketReadCallback(CFSocketRef s,
- (void)read
{
#ifdef FEAT_CHANNEL
channel_read(channel, part, "MMChannel_read");
#endif
}
@end
+5 -3
View File
@@ -406,9 +406,8 @@ gui_mch_wait_for_chars(int wtime)
// called, so force a flush of the command queue here.
[[MMBackend sharedInstance] flushQueue:YES];
#if defined(FEAT_NETBEANS_INTG)
/* Process any queued netbeans messages. */
netbeans_parse_messages();
#ifdef MESSAGE_QUEUE
parse_queued_messages();
#endif
return [[MMBackend sharedInstance] waitForInput:wtime];
@@ -1563,6 +1562,9 @@ gui_mch_flash(int msec)
guicolor_T
gui_mch_get_color(char_u *name)
{
if (![MMBackend sharedInstance])
return INVALCOLOR;
#ifdef FEAT_MBYTE
name = CONVERT_TO_UTF8(name);
#endif
+3
View File
@@ -680,6 +680,9 @@ free_buffer(buf_T *buf)
#ifdef FEAT_RUBY
ruby_buffer_free(buf);
#endif
#ifdef FEAT_JOB_CHANNEL
channel_buffer_free(buf);
#endif
#ifdef FEAT_AUTOCMD
aubuflocal_remove(buf);
if (autocmd_busy)
+159 -41
View File
@@ -54,11 +54,18 @@
# define fd_close(sd) close(sd)
#endif
#ifndef FEAT_GUI_MACVIM
static void channel_read(channel_T *channel, int part, char *func);
#endif
/* Whether a redraw is needed for appending a line to a buffer. */
static int channel_need_redraw = FALSE;
/* Whether we are inside channel_parse_messages() or another situation where it
* is safe to invoke callbacks. */
static int safe_to_invoke_callback = 0;
static char *part_names[] = {"sock", "out", "err", "in"};
#ifdef WIN32
static int
@@ -355,6 +362,10 @@ channel_still_useful(channel_T *channel)
if (channel->ch_close_cb != NULL)
return TRUE;
/* If reading from or a buffer it's still useful. */
if (channel->ch_part[PART_IN].ch_buffer != NULL)
return TRUE;
/* If there is no callback then nobody can get readahead. If the fd is
* closed and there is no readahead then the callback won't be called. */
has_sock_msg = channel->ch_part[PART_SOCK].ch_fd != INVALID_FD
@@ -368,8 +379,10 @@ channel_still_useful(channel_T *channel)
|| channel->ch_part[PART_ERR].ch_json_head.jq_next != NULL;
return (channel->ch_callback != NULL && (has_sock_msg
|| has_out_msg || has_err_msg))
|| (channel->ch_part[PART_OUT].ch_callback != NULL && has_out_msg)
|| (channel->ch_part[PART_ERR].ch_callback != NULL && has_err_msg);
|| ((channel->ch_part[PART_OUT].ch_callback != NULL
|| channel->ch_part[PART_OUT].ch_buffer) && has_out_msg)
|| ((channel->ch_part[PART_ERR].ch_callback != NULL
|| channel->ch_part[PART_ERR].ch_buffer) && has_err_msg);
}
/*
@@ -400,8 +413,15 @@ channel_free(channel_T *channel)
{
if (!in_free_unref_items)
{
channel_free_contents(channel);
channel_free_channel(channel);
if (safe_to_invoke_callback == 0)
{
channel->ch_to_be_freed = TRUE;
}
else
{
channel_free_contents(channel);
channel_free_channel(channel);
}
}
}
@@ -441,6 +461,10 @@ free_unused_channels_contents(int copyID, int mask)
int did_free = FALSE;
channel_T *ch;
/* This is invoked from the garbage collector, which only runs at a safe
* point. */
++safe_to_invoke_callback;
for (ch = first_channel; ch != NULL; ch = ch->ch_next)
if (!channel_still_useful(ch)
&& (ch->ch_copyID & mask) != (copyID & mask))
@@ -450,6 +474,8 @@ free_unused_channels_contents(int copyID, int mask)
channel_free_contents(ch);
did_free = TRUE;
}
--safe_to_invoke_callback;
return did_free;
}
@@ -1065,6 +1091,7 @@ channel_set_job(channel_T *channel, job_T *job, jobopt_T *options)
/*
* Find a buffer matching "name" or create a new one.
* Returns NULL if there is something very wrong (error already reported).
*/
static buf_T *
find_buffer(char_u *name, int err)
@@ -1078,6 +1105,8 @@ find_buffer(char_u *name, int err)
{
buf = buflist_new(name == NULL || *name == NUL ? NULL : name,
NULL, (linenr_T)0, BLN_LISTED);
if (buf == NULL)
return NULL;
buf_copy_options(buf, BCO_ENTER);
curbuf = buf;
#ifdef FEAT_QUICKFIX
@@ -1184,37 +1213,54 @@ channel_set_options(channel_T *channel, jobopt_T *opt)
if ((opt->jo_set & JO_OUT_IO) && opt->jo_io[PART_OUT] == JIO_BUFFER)
{
buf_T *buf;
/* writing output to a buffer. Default mode is NL. */
if (!(opt->jo_set & JO_OUT_MODE))
channel->ch_part[PART_OUT].ch_mode = MODE_NL;
if (opt->jo_set & JO_OUT_BUF)
channel->ch_part[PART_OUT].ch_buffer =
buflist_findnr(opt->jo_io_buf[PART_OUT]);
{
buf = buflist_findnr(opt->jo_io_buf[PART_OUT]);
if (buf == NULL)
EMSGN(_(e_nobufnr), (long)opt->jo_io_buf[PART_OUT]);
}
else
channel->ch_part[PART_OUT].ch_buffer =
find_buffer(opt->jo_io_name[PART_OUT], FALSE);
ch_logs(channel, "writing out to buffer '%s'",
(char *)channel->ch_part[PART_OUT].ch_buffer->b_ffname);
{
buf = find_buffer(opt->jo_io_name[PART_OUT], FALSE);
}
if (buf != NULL)
{
ch_logs(channel, "writing out to buffer '%s'",
(char *)buf->b_ffname);
channel->ch_part[PART_OUT].ch_buffer = buf;
}
}
if ((opt->jo_set & JO_ERR_IO) && (opt->jo_io[PART_ERR] == JIO_BUFFER
|| (opt->jo_io[PART_ERR] == JIO_OUT && (opt->jo_set & JO_OUT_IO)
&& opt->jo_io[PART_OUT] == JIO_BUFFER)))
{
buf_T *buf;
/* writing err to a buffer. Default mode is NL. */
if (!(opt->jo_set & JO_ERR_MODE))
channel->ch_part[PART_ERR].ch_mode = MODE_NL;
if (opt->jo_io[PART_ERR] == JIO_OUT)
channel->ch_part[PART_ERR].ch_buffer =
channel->ch_part[PART_OUT].ch_buffer;
buf = channel->ch_part[PART_OUT].ch_buffer;
else if (opt->jo_set & JO_ERR_BUF)
channel->ch_part[PART_ERR].ch_buffer =
buflist_findnr(opt->jo_io_buf[PART_ERR]);
{
buf = buflist_findnr(opt->jo_io_buf[PART_ERR]);
if (buf == NULL)
EMSGN(_(e_nobufnr), (long)opt->jo_io_buf[PART_ERR]);
}
else
channel->ch_part[PART_ERR].ch_buffer =
find_buffer(opt->jo_io_name[PART_ERR], TRUE);
ch_logs(channel, "writing err to buffer '%s'",
(char *)channel->ch_part[PART_ERR].ch_buffer->b_ffname);
buf = find_buffer(opt->jo_io_name[PART_ERR], TRUE);
if (buf != NULL)
{
ch_logs(channel, "writing err to buffer '%s'",
(char *)buf->b_ffname);
channel->ch_part[PART_ERR].ch_buffer = buf;
}
}
channel->ch_part[PART_OUT].ch_io = opt->jo_io[PART_OUT];
@@ -1384,6 +1430,29 @@ channel_write_in(channel_T *channel)
buf->b_ml.ml_line_count - lnum + 1);
}
/*
* Handle buffer "buf" beeing freed, remove it from any channels.
*/
void
channel_buffer_free(buf_T *buf)
{
channel_T *channel;
int part;
for (channel = first_channel; channel != NULL; channel = channel->ch_next)
for (part = PART_SOCK; part <= PART_IN; ++part)
{
chanpart_T *ch_part = &channel->ch_part[part];
if (ch_part->ch_buffer == buf)
{
ch_logs(channel, "%s buffer has been wiped out",
part_names[part]);
ch_part->ch_buffer = NULL;
}
}
}
/*
* Write any lines waiting to be written to a channel.
*/
@@ -1463,6 +1532,9 @@ invoke_callback(channel_T *channel, char_u *callback, partial_T *partial,
typval_T rettv;
int dummy;
if (safe_to_invoke_callback == 0)
EMSG("INTERNAL: Invoking callback when it is not safe");
argv[0].v_type = VAR_CHANNEL;
argv[0].vval.v_channel = channel;
@@ -2513,6 +2585,7 @@ channel_close(channel_T *channel, int invoke_close_cb)
&rettv, 1, argv, 0L, 0L, &dummy, TRUE,
channel->ch_close_partial, NULL);
clear_tv(&rettv);
channel_need_redraw = TRUE;
}
--channel->ch_refcount;
@@ -2522,6 +2595,12 @@ channel_close(channel_T *channel, int invoke_close_cb)
partial_unref(channel->ch_close_partial);
channel->ch_close_partial = NULL;
if (channel_need_redraw)
{
channel_need_redraw = FALSE;
redraw_after_callback();
}
/* any remaining messages are useless now */
for (part = PART_SOCK; part <= PART_ERR; ++part)
drop_messages(channel, part);
@@ -2788,7 +2867,8 @@ channel_wait(channel_T *channel, sock_T fd, int timeout)
channel_close_on_error(channel_T *channel, char *func)
{
/* Do not call emsg(), most likely the other end just exited. */
ch_errors(channel, "%s(): Cannot read from channel", func);
ch_errors(channel, "%s(): Cannot read from channel, will close it soon",
func);
/* Queue a "DETACH" netbeans message in the command queue in order to
* terminate the netbeans session later. Do not end the session here
@@ -2806,7 +2886,15 @@ channel_close_on_error(channel_T *channel, char *func)
(int)STRLEN(DETACH_MSG_RAW), FALSE, "PUT ");
/* When reading from stdout is not possible, assume the other side has
* died. */
* died. Don't close the channel right away, it may be the wrong moment
* to invoke callbacks. */
channel->ch_to_be_closed = TRUE;
}
static void
channel_close_now(channel_T *channel)
{
ch_log(channel, "Closing channel because of previous read error");
channel_close(channel, TRUE);
if (channel->ch_nb_close_cb != NULL)
(*channel->ch_nb_close_cb)();
@@ -2817,7 +2905,11 @@ channel_close_on_error(channel_T *channel, char *func)
* "part" is PART_SOCK, PART_OUT or PART_ERR.
* The data is put in the read queue.
*/
#ifndef FEAT_GUI_MACVIM
static void
#else
void
#endif
channel_read(channel_T *channel, int part, char *func)
{
static char_u *buf = NULL;
@@ -3512,6 +3604,8 @@ channel_parse_messages(void)
int r;
int part = PART_SOCK;
++safe_to_invoke_callback;
/* Only do this message when another message was given, otherwise we get
* lots of them. */
if (did_log_msg)
@@ -3521,6 +3615,21 @@ channel_parse_messages(void)
}
while (channel != NULL)
{
if (channel->ch_to_be_closed)
{
channel->ch_to_be_closed = FALSE;
channel_close_now(channel);
/* channel may have been freed, start over */
channel = first_channel;
continue;
}
if (channel->ch_to_be_freed)
{
channel_free(channel);
/* channel has been freed, start over */
channel = first_channel;
continue;
}
if (channel->ch_refcount == 0 && !channel_still_useful(channel))
{
/* channel is no longer useful, free it */
@@ -3561,6 +3670,8 @@ channel_parse_messages(void)
redraw_after_callback();
}
--safe_to_invoke_callback;
return ret;
}
@@ -3572,28 +3683,15 @@ set_ref_in_channel(int copyID)
{
int abort = FALSE;
channel_T *channel;
int part;
typval_T tv;
for (channel = first_channel; channel != NULL; channel = channel->ch_next)
{
for (part = PART_SOCK; part < PART_IN; ++part)
if (channel_still_useful(channel))
{
jsonq_T *head = &channel->ch_part[part].ch_json_head;
jsonq_T *item = head->jq_next;
while (item != NULL)
{
list_T *l = item->jq_value->vval.v_list;
if (l->lv_copyID != copyID)
{
l->lv_copyID = copyID;
abort = abort || set_ref_in_list(l, copyID, NULL);
}
item = item->jq_next;
}
tv.v_type = VAR_CHANNEL;
tv.vval.v_channel = channel;
abort = abort || set_ref_in_item(&tv, copyID, NULL, NULL);
}
}
return abort;
}
@@ -4111,6 +4209,26 @@ job_still_useful(job_T *job)
&& channel_still_useful(job->jv_channel)));
}
/*
* Mark references in jobs that are still useful.
*/
int
set_ref_in_job(int copyID)
{
int abort = FALSE;
job_T *job;
typval_T tv;
for (job = first_job; job != NULL; job = job->jv_next)
if (job_still_useful(job))
{
tv.v_type = VAR_JOB;
tv.vval.v_job = job;
abort = abort || set_ref_in_item(&tv, copyID, NULL, NULL);
}
return abort;
}
void
job_unref(job_T *job)
{
@@ -4149,7 +4267,7 @@ free_unused_jobs_contents(int copyID, int mask)
* recurse into Lists, Dictionaries etc. */
job_free_contents(job);
did_free = TRUE;
}
}
return did_free;
}
@@ -4239,7 +4357,7 @@ job_stop_on_exit()
}
/*
* Called once in a while: check if any jobs with an "exit_cb" have ended.
* Called once in a while: check if any jobs that seem useful have ended.
*/
void
job_check_ended(void)
@@ -4257,7 +4375,7 @@ job_check_ended(void)
for (job = first_job; job != NULL; job = next)
{
next = job->jv_next;
if (job->jv_status == JOB_STARTED && job->jv_exit_cb != NULL)
if (job->jv_status == JOB_STARTED && job_still_useful(job))
job_status(job); /* may free "job" */
}
}
+14 -2
View File
@@ -3292,11 +3292,16 @@ eval_for_line(
if (!skip)
{
l = tv.vval.v_list;
if (tv.v_type != VAR_LIST || l == NULL)
if (tv.v_type != VAR_LIST)
{
EMSG(_(e_listreq));
clear_tv(&tv);
}
else if (l == NULL)
{
/* a null list is like an empty list: do nothing */
clear_tv(&tv);
}
else
{
/* No need to increment the refcount, it's already set for the
@@ -7024,6 +7029,7 @@ garbage_collect(int testing)
#ifdef FEAT_JOB_CHANNEL
abort = abort || set_ref_in_channel(copyID);
abort = abort || set_ref_in_job(copyID);
#endif
#ifdef FEAT_NETBEANS_INTG
abort = abort || set_ref_in_nb_channel(copyID);
@@ -20754,8 +20760,14 @@ f_timer_start(typval_T *argvars, typval_T *rettv)
static void
f_timer_stop(typval_T *argvars, typval_T *rettv UNUSED)
{
timer_T *timer = find_timer(get_tv_number(&argvars[0]));
timer_T *timer;
if (argvars[0].v_type != VAR_NUMBER)
{
EMSG(_(e_number_exp));
return;
}
timer = find_timer(get_tv_number(&argvars[0]));
if (timer != NULL)
stop_timer(timer);
}
+21 -15
View File
@@ -3200,8 +3200,9 @@ cmdline_del(int from)
#endif
/*
* this function is called when the screen size changes and with incremental
* search
* This function is called when the screen size changes and with incremental
* search and in other situations where the command line may have been
* overwritten.
*/
void
redrawcmdline(void)
@@ -4516,7 +4517,7 @@ cleanup_help_tags(int num_file, char_u **file)
char_u buf[4];
char_u *p = buf;
if (p_hlg[0] != NUL)
if (p_hlg[0] != NUL && (p_hlg[0] != 'e' || p_hlg[1] != 'n'))
{
*p++ = '@';
*p++ = p_hlg[0];
@@ -4529,27 +4530,32 @@ cleanup_help_tags(int num_file, char_u **file)
len = (int)STRLEN(file[i]) - 3;
if (len <= 0)
continue;
if (i == 0 && STRCMP(file[i] + len, buf) == 0)
{
file[i][len] = NUL;
break;
}
else if (STRCMP(file[i] + len, "@en") == 0)
if (STRCMP(file[i] + len, "@en") == 0)
{
/* Sorting on priority means the same item in another language may
* be anywhere. Search all items for a match up to the "@en". */
for (j = 0; j < num_file; ++j)
if (j != i
&& (int)STRLEN(file[j]) == len + 3
&& STRNCMP(file[i], file[j], len + 1) == 0)
if (j != i && (int)STRLEN(file[j]) == len + 3
&& STRNCMP(file[i], file[j], len + 1) == 0)
break;
if (j == num_file)
{
/* item only exists with @en, remove it */
file[i][len] = NUL;
break;
}
}
}
if (*buf != NUL)
for (i = 0; i < num_file; ++i)
{
len = (int)STRLEN(file[i]) - 3;
if (len <= 0)
continue;
if (STRCMP(file[i] + len, buf) == 0)
{
/* remove the default language */
file[i][len] = NUL;
}
}
}
#endif
+8 -8
View File
@@ -5234,14 +5234,14 @@ msg_add_lines(
if (insert_space)
*p++ = ' ';
if (shortmess(SHM_LINES))
sprintf((char *)p,
#ifdef LONG_LONG_OFF_T
"%ldL, %lldC", lnum, (long long)nchars
sprintf((char *)p,
"%ldL, %lldC", lnum, (long long)nchars);
#else
sprintf((char *)p,
/* Explicit typecast avoids warning on Mac OS X 10.6 */
"%ldL, %ldC", lnum, (long)nchars
"%ldL, %ldC", lnum, (long)nchars);
#endif
);
else
{
if (lnum == 1)
@@ -5252,14 +5252,14 @@ msg_add_lines(
if (nchars == 1)
STRCPY(p, _("1 character"));
else
sprintf((char *)p,
#ifdef LONG_LONG_OFF_T
_("%lld characters"), (long long)nchars
sprintf((char *)p,
_("%lld characters"), (long long)nchars);
#else
sprintf((char *)p,
/* Explicit typecast avoids warning on Mac OS X 10.6 */
_("%ld characters"), (long)nchars
_("%ld characters"), (long)nchars);
#endif
);
}
}
+2 -2
View File
@@ -2703,8 +2703,8 @@ quality_pairs[] = {
#ifdef ANTIALIASED_QUALITY
{"ANTIALIASED", ANTIALIASED_QUALITY},
#endif
#ifdef NOANTIALIASED_QUALITY
{"NOANTIALIASED", NOANTIALIASED_QUALITY},
#ifdef NONANTIALIASED_QUALITY
{"NONANTIALIASED", NONANTIALIASED_QUALITY},
#endif
#ifdef PROOF_QUALITY
{"PROOF", PROOF_QUALITY},
+2 -1
View File
@@ -5217,7 +5217,7 @@ mch_start_job(char **argv, job_T *job, jobopt_T *options UNUSED)
/* set up stdout for the child */
if (use_null_for_out && null_fd >= 0)
{
close(0);
close(1);
ignored = dup(null_fd);
}
else
@@ -5228,6 +5228,7 @@ mch_start_job(char **argv, job_T *job, jobopt_T *options UNUSED)
ignored = dup(fd_out[1]);
close(fd_out[1]);
}
if (null_fd >= 0)
close(null_fd);
+116 -165
View File
@@ -13,11 +13,11 @@ msgid ""
msgstr ""
"Project-Id-Version: vim 7.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-11 12:10+0100\n"
"POT-Creation-Date: 2016-05-03 16:10+0200\n"
"PO-Revision-Date: 2016-02-11 14:42+0200\n"
"Last-Translator: Antonio Colombo <azc100@gmail.com>\n"
"Language-Team: Antonio Colombo <azc100@gmail.com>"
" Vlad Sandrini <vlad.gently@gmail.com"
"Language-Team: Antonio Colombo <azc100@gmail.com>\n"
" Vlad Sandrini <vlad.gently@gmail.com>\n"
" Luciano Montanaro <mikelima@cirulla.net>\n"
"Language: Italian\n"
"MIME-Version: 1.0\n"
@@ -204,17 +204,26 @@ msgstr "Segni per %s:"
msgid " line=%ld id=%d name=%s"
msgstr " riga=%ld id=%d, nome=%s"
msgid "E897: All channels are in use"
msgstr "E897: Tutti i canali sono in uso"
msgid "E902: Cannot connect to port"
msgstr "E902: Non posso commettermi alla porta"
msgid "E899: Cannot connect to port after retry2"
msgstr "E899: Non posso commettermi alla porta dopo retry2"
msgid "E917: Cannot use a callback with %s()"
msgstr "E917: Non posso usare callback con %s()"
msgid "E896: read from channel"
msgstr "E896: lettura dal canale"
msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
msgstr "E912: non posso usare ch_evalexpr() con un canale grezzo o nl"
msgid "E906: not an open channel"
msgstr "E906: canale non aperto"
msgid "E920: _io file requires _name to be set"
msgstr "E920: il file _io necessita di impostare _name"
msgid "E915: in_io buffer requires in_buf or in_name to be set"
msgstr "E915: il buffer in_io necessita di impostare in_buf o in_name"
msgid "E918: buffer must be loaded: %s"
msgstr "E918: il buffer dev'essere caricato: %s"
msgid "E821: File is encrypted with unknown method"
msgstr "E821: File cifrato con metodo sconosciuto"
@@ -418,6 +427,9 @@ msgstr "E714:
msgid "E715: Dictionary required"
msgstr "E715: È necessario un Dizionario"
msgid "E928: String required"
msgstr "E928: Stringa necessaria"
#, c-format
msgid "E118: Too many arguments for function: %s"
msgstr "E118: Troppi argomenti per la funzione: %s"
@@ -512,9 +524,6 @@ msgstr "E735: Posso confrontare un Dizionario solo con un altro Dizionario"
msgid "E736: Invalid operation for Dictionary"
msgstr "E736: Operazione non valida per Dizionari"
msgid "E693: Can only compare Funcref with Funcref"
msgstr "E693: Posso confrontare un Funcref solo con un Funcref"
msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: Operazione non valida per Funcref"
@@ -609,15 +618,6 @@ msgstr "argomento di add()"
msgid "E699: Too many arguments"
msgstr "E699: Troppi argomenti"
msgid "E906: not an open channel"
msgstr "E906: canale non aperto"
msgid "E999: Invalid callback argument"
msgstr "E999: Argomento callback non valido"
msgid "E912: cannot use ch_sendexpr() with a raw channel"
msgstr "E912: non posso usare ch_sendexpr() con un canale grezzo"
msgid "E785: complete() can only be used in Insert mode"
msgstr "E785: complete() può essere usata solo in modalità inserimento"
@@ -650,6 +650,13 @@ msgstr "+-%s%3ld righe: "
msgid "E700: Unknown function: %s"
msgstr "E700: Funzione sconosciuta: %s"
msgid "E922: expected a dict"
msgstr "E922: aspettavo un Dizionario"
msgid "E923: Second argument of function() must be a list or a dict"
msgstr "E923: Il secondo argomento di function() dev'essere una Lista"
" o un Dizionario"
msgid ""
"&OK\n"
"&Cancel"
@@ -666,6 +673,9 @@ msgstr "argomento di insert()"
msgid "E786: Range not allowed"
msgstr "E786: Intervallo non consentito"
msgid "E916: not a valid job"
msgstr "E916: job non valido"
msgid "E701: Invalid type for len()"
msgstr "E701: Tipo non valido per len()"
@@ -700,6 +710,9 @@ msgstr "argomento di reverse()"
msgid "E258: Unable to send to client"
msgstr "E258: Impossibile inviare al client"
msgid "E927: Invalid action: '%s'"
msgstr "E927: Azione non valida: '%s'"
msgid "sort() argument"
msgstr "argomento di sort()"
@@ -718,6 +731,9 @@ msgstr "(Non valido)"
msgid "E677: Error writing temp file"
msgstr "E677: Errore in scrittura su file temporaneo"
msgid "E921: Invalid callback argument"
msgstr "E921: Argomento callback non valido"
msgid "E805: Using a Float as a Number"
msgstr "E805: Uso di un Numero-a-virgola-mobile come Numero"
@@ -733,6 +749,9 @@ msgstr "E728: Uso di Dizionario come Numero"
msgid "E910: Using a Job as a Number"
msgstr "E910: Uso di Job come Numero"
msgid "E913: Using a Channel as a Number"
msgstr "E913: Uso di Canale come Numero"
msgid "E891: Using a Funcref as a Float"
msgstr "E891: Uso di Funcref come Numero-a-virgola-mobile"
@@ -751,6 +770,9 @@ msgstr "E907: Uso di valore speciale come Numero-a-virgola-mobile"
msgid "E911: Using a Job as a Float"
msgstr "E911: Uso di Job come Numero-a-virgola-mobile"
msgid "E914: Using a Channel as a Float"
msgstr "E914: Uso di Canale come Numero-a-virgola-mobile"
msgid "E729: using Funcref as a String"
msgstr "E729: uso di Funcref come Stringa"
@@ -764,10 +786,6 @@ msgstr "E731: uso di Dizionario come Stringa"
msgid "E908: using an invalid value as a String"
msgstr "E908: uso di un valore non valido come Stringa"
#, c-format
msgid "E706: Variable type mismatch for: %s"
msgstr "E706: Tipo di variabile non corrispondente per: %s"
#, c-format
msgid "E795: Cannot delete variable %s"
msgstr "E795: Non posso cancellare la variabile %s"
@@ -1118,10 +1136,6 @@ msgstr "E149: Spiacente, nessun aiuto per %s"
msgid "Sorry, help file \"%s\" not found"
msgstr "Spiacente, non trovo file di aiuto \"%s\""
#, c-format
msgid "E150: Not a directory: %s"
msgstr "E150: %s non è una directory"
#, c-format
msgid "E152: Cannot open %s for writing"
msgstr "E152: Non posso aprire %s in scrittura"
@@ -1138,6 +1152,10 @@ msgstr "E670: Codifiche diverse fra file di aiuto nella stessa lingua: %s"
msgid "E154: Duplicate tag \"%s\" in file %s/%s"
msgstr "E154: Tag duplicato \"%s\" nel file %s/%s"
#, c-format
msgid "E150: Not a directory: %s"
msgstr "E150: %s non è una directory"
#, c-format
msgid "E160: Unknown sign command: %s"
msgstr "E160: Comando 'sign' sconosciuto: %s"
@@ -1252,9 +1270,9 @@ msgstr "Cerco \"%s\" in \"%s\""
msgid "Searching for \"%s\""
msgstr "Cerco \"%s\""
#, c-format
msgid "not found in 'runtimepath': \"%s\""
msgstr "non trovato in 'runtimepath': \"%s\""
#, fuzzy, c-format
msgid "not found in '%s': \"%s\""
msgstr "non trovato in '%s: \"%s\""
msgid "Source Vim script"
msgstr "Esegui script Vim"
@@ -1971,7 +1989,7 @@ msgstr "[Manca carattere di fine riga]"
#. must give this prompt
#. don't use emsg() here, don't want to flush the buffers
msgid "WARNING: The file has been changed since reading it!!!"
msgstr "AVVISO: File modificato dopo essere stato letto dall'Editor!!!"
msgstr "AVVISO: File modificato dopo essere stato letto!!!"
msgid "Do you really want to write to it"
msgstr "Vuoi davvero riscriverlo"
@@ -2208,6 +2226,18 @@ msgstr "Dialogo Vim"
msgid "E232: Cannot create BalloonEval with both message and callback"
msgstr "E232: Non riesco a creare 'BalloonEval' con sia messaggio che callback"
msgid "_Cancel"
msgstr "_Annulla"
msgid "_Save"
msgstr "_Salva"
msgid "_Open"
msgstr "_Apri"
msgid "_OK"
msgstr "_OK"
msgid ""
"&Yes\n"
"&No\n"
@@ -2217,6 +2247,12 @@ msgstr ""
"&No\n"
"&C Ignora"
msgid "Yes"
msgstr "Sì"
msgid "No"
msgstr "No"
msgid "Input _Methods"
msgstr "_Metodi di inserimento"
@@ -2250,18 +2286,18 @@ msgstr "Su"
msgid "Down"
msgstr "Giù"
#. 'Find Next' button
msgid "Find Next"
msgstr "Trova il Prossimo"
#. 'Replace' button
msgid "Replace"
msgstr "Sostituisci"
#. 'Replace All' button
msgid "Replace All"
msgstr "Sostituisci Tutto"
msgid "_Close"
msgstr "_Chiudi"
msgid "Vim: Received \"die\" request from session manager\n"
msgstr "Vim: Ricevuta richiesta \"die\" dal session manager\n"
@@ -2313,17 +2349,6 @@ msgstr "&A Sostituisci Tutto"
msgid "&Undo"
msgstr "&U Disfa"
#, c-format
msgid "E671: Cannot find window title \"%s\""
msgstr "E671: Non trovo il titolo della finestra \"%s\""
#, c-format
msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
msgstr "E243: Argomento non supportato: \"-%s\"; Usa la versione OLE."
msgid "E672: Unable to open window inside MDI application"
msgstr "E672: Non posso aprire la finestra in un'applicazione MDI"
msgid "Open tab..."
msgstr "Apri linguetta..."
@@ -2341,6 +2366,17 @@ msgstr "Non Utilizzato"
msgid "Directory\t*.nothing\n"
msgstr "Directory\t*.nothing\n"
#, c-format
msgid "E671: Cannot find window title \"%s\""
msgstr "E671: Non trovo il titolo della finestra \"%s\""
#, c-format
msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
msgstr "E243: Argomento non supportato: \"-%s\"; Usa la versione OLE."
msgid "E672: Unable to open window inside MDI application"
msgstr "E672: Non posso aprire la finestra in un'applicazione MDI"
msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
msgstr ""
"Vim E458: Non riesco ad allocare elemento di colormap, possibili colori "
@@ -2796,95 +2832,6 @@ msgstr "E272: eccezione non gestita"
msgid "E273: unknown longjmp status %d"
msgstr "E273: tipo sconosciuto di salto nel programma %d"
msgid "Toggle implementation/definition"
msgstr "Implementazione/definizione Sì/No"
msgid "Show base class of"
msgstr "Visualizza classe base di"
msgid "Show overridden member function"
msgstr "Visualizza funzione modulo sovrascritto"
msgid "Retrieve from file"
msgstr "Carica da file"
msgid "Retrieve from project"
msgstr "Carica da progetto"
msgid "Retrieve from all projects"
msgstr "Carica da tutti i progetti"
msgid "Retrieve"
msgstr "Carica successivo"
msgid "Show source of"
msgstr "Visualizza sorgente di"
msgid "Find symbol"
msgstr "Trova simbolo"
msgid "Browse class"
msgstr "Esplora classe"
msgid "Show class in hierarchy"
msgstr "Visualizza classe in gerarchia"
msgid "Show class in restricted hierarchy"
msgstr "Visualizza classe nella gerarchia ristretta"
msgid "Xref refers to"
msgstr "Xref si riferisce a"
msgid "Xref referred by"
msgstr "Xref referenziato da"
msgid "Xref has a"
msgstr "Xref ha un"
msgid "Xref used by"
msgstr "Xref usato da"
msgid "Show docu of"
msgstr "Visualizza docu di"
msgid "Generate docu for"
msgstr "Genera docu per"
msgid ""
"Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
"$PATH).\n"
msgstr ""
"Non riesco a connettermi a SNiFF+. Controllare ambiente (sniffemacs deve "
"essere presente in $PATH).\n"
msgid "E274: Sniff: Error during read. Disconnected"
msgstr "E274: Sniff: Errore in lettura. Disconnessione."
msgid "SNiFF+ is currently "
msgstr "SNiFF+ è al momento "
msgid "not "
msgstr "non "
msgid "connected"
msgstr "connesso"
#, c-format
msgid "E275: Unknown SNiFF+ request: %s"
msgstr "E275: Richiesta SNiFF+ sconosciuta: %s"
msgid "E276: Error connecting to SNiFF+"
msgstr "E276: Errore di connessione a SNiFF+"
msgid "E278: SNiFF+ not connected"
msgstr "E278: SNiFF+ non connesso"
msgid "E279: Not a SNiFF+ buffer"
msgstr "E279: Non è un buffer SNiFF+"
msgid "Sniff: Error during write. Disconnected"
msgstr "Sniff: Errore in scrittura. Disconnesso"
msgid "invalid buffer number"
msgstr "numero buffer non valido"
@@ -3178,6 +3125,9 @@ msgstr "-F\t\t\tComincia in modalit
msgid "-T <terminal>\tSet terminal type to <terminal>"
msgstr "-T <terminale>\tImposta tipo terminale a <terminale>"
msgid "--not-a-term\t\tSkip warning for input/output not being a terminal"
msgstr "--not-a-term\t\tNon avvisare se input/output non da terminale"
msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
msgstr "-u <vimrc>\t\tUsa <vimrc> invece di .vimrc"
@@ -4591,6 +4541,9 @@ msgstr "Stampato: '%s'"
msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
msgstr "E244: Nome di charset non ammesso \"%s\" nel fonte di nome \"%s\""
msgid "E244: Illegal quality name \"%s\" in font name \"%s\""
msgstr "E244: Nome di qualità non ammesso \"%s\" nel font di nome \"%s\""
#, c-format
msgid "E245: Illegal char '%c' in font name \"%s\""
msgstr "E245: Carattere non ammesso '%c' nel font di nome \"%s\""
@@ -4709,10 +4662,6 @@ msgstr "Errore VIM"
msgid "Could not fix up function pointers to the DLL!"
msgstr "Non sono riuscito a impostare puntatori di funzione verso la DLL!"
#, c-format
msgid "shell returned %d"
msgstr "shell terminato con return-code %d"
#, c-format
msgid "Vim: Caught %s event\n"
msgstr "Vim: Intercettato evento %s\n"
@@ -4741,6 +4690,10 @@ msgstr ""
msgid "Vim Warning"
msgstr "Avviso da Vim"
#, c-format
msgid "shell returned %d"
msgstr "shell terminato con return-code %d"
#, c-format
msgid "E372: Too many %%%c in format string"
msgstr "E372: Troppi %%%c nella stringa di 'format'"
@@ -4773,6 +4726,15 @@ msgstr "E379: Nome directory mancante o nullo"
msgid "E553: No more items"
msgstr "E553: Non ci sono più elementi"
msgid "E924: Current window was closed"
msgstr "E924: La finestra corrente è stata chiusa"
msgid "E925: Current quickfix was changed"
msgstr "E925: Il quickfix corrente è stato cambiato"
msgid "E926: Current location list was changed"
msgstr "E926: La lista delle locazioni corrente è stata cambiata"
#, c-format
msgid "(%d of %d)%s%s: "
msgstr "(%d di %d)%s%s: "
@@ -5567,6 +5529,7 @@ msgstr "E847: Troppe inclusioni di sintassi"
msgid "E789: Missing ']': %s"
msgstr "E789: Manca ']': %s"
#, c-format
msgid "E890: trailing char after ']': %s]%s"
msgstr "E890: Caratteri in più dopo ']': %s]%s"
@@ -5812,6 +5775,9 @@ msgstr ""
"\n"
"--- Tasti Terminale ---"
msgid "Cannot open $VIMRUNTIME/rgb.txt"
msgstr "Non riesco ad aprire $VIMRUNTIME/rgb.txt"
msgid "new shell started\n"
msgstr "fatto eseguire nuovo shell\n"
@@ -6001,27 +5967,6 @@ msgstr ""
"\n"
"Versione MS-Windows 32-bit console"
msgid ""
"\n"
"MS-Windows 16-bit version"
msgstr ""
"\n"
"Versione MS-Windows 16-bit"
msgid ""
"\n"
"32-bit MS-DOS version"
msgstr ""
"\n"
"Version MS-DOS 32-bit"
msgid ""
"\n"
"16-bit MS-DOS version"
msgstr ""
"\n"
"Versione MS-DOS 16-bit"
msgid ""
"\n"
"MacOS X (unix) version"
@@ -6115,6 +6060,9 @@ msgstr ""
msgid "without GUI."
msgstr "senza GUI."
msgid "with GTK3 GUI."
msgstr "con GUI GTK3."
msgid "with GTK2-GNOME GUI."
msgstr "con GUI GTK2-GNOME."
@@ -6701,6 +6649,9 @@ msgstr "E764: opzione '%s' non impostata"
msgid "E850: Invalid register name"
msgstr "E850: Nome registro non valido"
msgid "E919: Directory not found in '%s': \"%s\""
msgstr "E919: Directory non trovata in '%s': \"%s\""
msgid "search hit TOP, continuing at BOTTOM"
msgstr "raggiunta la CIMA nella ricerca, continuo dal FONDO"
@@ -6856,9 +6807,6 @@ msgstr "la funzione anonima %s non esiste"
msgid "function %s does not exist"
msgstr "la funzione %s non esiste"
msgid "function constructor does not accept keyword arguments"
msgstr "il costruttore di funzione non accetta parole chiave come argomenti"
#, c-format
msgid "failed to run function %s"
msgstr "esecuzione non riuscita della funzione %s"
@@ -6947,6 +6895,9 @@ msgstr ""
msgid "unable to convert %s to vim dictionary"
msgstr "impossibile convertire %s a dizionario vim"
msgid "unable to convert %s to vim list"
msgstr "impossibile convertire %s a Lista vim"
#, c-format
msgid "unable to convert %s to vim structure"
msgstr "impossibile convertire %s a struttura vim"
+5
View File
@@ -14,6 +14,7 @@ void channel_set_pipes(channel_T *channel, sock_T in, sock_T out, sock_T err);
void channel_set_job(channel_T *channel, job_T *job, jobopt_T *options);
void channel_set_options(channel_T *channel, jobopt_T *opt);
void channel_set_req_callback(channel_T *channel, int part, char_u *callback, partial_T *partial, int id);
void channel_buffer_free(buf_T *buf);
void channel_write_any_lines(void);
void channel_write_new_lines(buf_T *buf);
char_u *channel_get(channel_T *channel, int part);
@@ -49,6 +50,7 @@ void clear_job_options(jobopt_T *opt);
void free_job_options(jobopt_T *opt);
int get_job_options(typval_T *tv, jobopt_T *opt, int supported);
channel_T *get_channel_arg(typval_T *tv, int check_open, int reading, int part);
int set_ref_in_job(int copyID);
void job_unref(job_T *job);
int free_unused_jobs_contents(int copyID, int mask);
void free_unused_jobs(int copyID, int mask);
@@ -59,4 +61,7 @@ job_T *job_start(typval_T *argvars);
char *job_status(job_T *job);
void job_info(job_T *job, dict_T *dict);
int job_stop(job_T *job, typval_T *argvars);
#ifdef FEAT_GUI_MACVIM
void channel_read(channel_T *channel, int part, char *func);
#endif
/* vim: set ft=c : */
+10 -10
View File
@@ -207,9 +207,9 @@ qf_init_ext(
char_u *fmtstr = NULL;
char_u *growbuf = NULL;
int growbuflen;
int growbufsiz;
char_u *linebuf;
int linelen;
int growbufsiz = 0;
char_u *linebuf = NULL;
int linelen = 0;
int discard;
int col = 0;
char_u use_viscol = FALSE;
@@ -545,12 +545,12 @@ qf_init_ext(
linelen = len > LINE_MAXLEN ? LINE_MAXLEN - 1 : len;
if (growbuf == NULL)
{
growbuf = alloc(linelen);
growbuf = alloc(linelen + 1);
growbufsiz = linelen;
}
else if (linelen > growbufsiz)
{
growbuf = vim_realloc(growbuf, linelen);
growbuf = vim_realloc(growbuf, linelen + 1);
if (growbuf == NULL)
goto qf_init_end;
growbufsiz = linelen;
@@ -589,13 +589,13 @@ qf_init_ext(
linelen = LINE_MAXLEN - 1;
if (growbuf == NULL)
{
growbuf = alloc(linelen);
growbuf = alloc(linelen + 1);
growbufsiz = linelen;
}
else if (linelen > growbufsiz)
{
if ((growbuf = vim_realloc(growbuf,
linelen)) == NULL)
linelen + 1)) == NULL)
goto qf_init_end;
growbufsiz = linelen;
}
@@ -623,14 +623,14 @@ qf_init_ext(
{
if (growbuf == NULL)
{
growbuf = alloc(linelen);
growbuf = alloc(linelen + 1);
growbufsiz = linelen;
}
else if (linelen > growbufsiz)
{
if (linelen > LINE_MAXLEN)
linelen = LINE_MAXLEN - 1;
if ((growbuf = vim_realloc(growbuf, linelen)) == NULL)
if ((growbuf = vim_realloc(growbuf, linelen + 1)) == NULL)
goto qf_init_end;
growbufsiz = linelen;
}
@@ -675,7 +675,7 @@ qf_init_ext(
if (fgets((char *)growbuf + growbuflen,
growbufsiz - growbuflen, fd) == NULL)
break;
linelen = STRLEN(growbuf + growbuflen);
linelen = (int)STRLEN(growbuf + growbuflen);
growbuflen += linelen;
if (growbuf[growbuflen - 1] == '\n'
#ifdef USE_CRNL
+5
View File
@@ -1419,6 +1419,11 @@ struct channel_S {
char *ch_hostname; /* only for socket, allocated */
int ch_port; /* only for socket */
int ch_to_be_closed; /* When TRUE reading or writing failed and
* the channel must be closed when it's safe
* to invoke callbacks. */
int ch_to_be_freed; /* When TRUE channel must be freed when it's
* safe to invoke callbacks. */
int ch_error; /* When TRUE an error was reported. Avoids
* giving pages full of error messages when
* the other side has exited, only mention the
+2 -2
View File
@@ -9262,8 +9262,8 @@ set_hl_attr(
at_en.ae_u.cterm.fg_color = sgp->sg_cterm_fg;
at_en.ae_u.cterm.bg_color = sgp->sg_cterm_bg;
# ifdef FEAT_TERMGUICOLORS
at_en.ae_u.cterm.fg_rgb = GUI_MCH_GET_RGB(sgp->sg_gui_fg);
at_en.ae_u.cterm.bg_rgb = GUI_MCH_GET_RGB(sgp->sg_gui_bg);
at_en.ae_u.cterm.fg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_fg);
at_en.ae_u.cterm.bg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_bg);
# endif
sgp->sg_cterm_attr = get_attr_entry(&cterm_attr_table, &at_en);
}
+7 -5
View File
@@ -2264,6 +2264,7 @@ parse_line:
if (ga_grow(&ga_match[mtt], 1) == OK)
{
int len;
int heuristic;
if (help_only)
{
@@ -2293,13 +2294,14 @@ parse_line:
p[len] = '@';
STRCPY(p + len + 1, help_lang);
#endif
sprintf((char *)p + len + 1 + ML_EXTRA, "%06d",
help_heuristic(tagp.tagname,
match_re ? matchoff : 0, !match_no_ic)
heuristic = help_heuristic(tagp.tagname,
match_re ? matchoff : 0, !match_no_ic);
#ifdef FEAT_MULTI_LANG
+ help_pri
heuristic += help_pri;
#endif
);
sprintf((char *)p + len + 1 + ML_EXTRA, "%06d",
heuristic);
}
*tagp.tagname_end = TAB;
}
+9 -3
View File
@@ -1269,6 +1269,12 @@ static struct builtin_term builtin_termcaps[] =
guicolor_T
termgui_mch_get_color(char_u *name)
{
# if defined(FEAT_GUI_MACVIM)
guicolor_T t;
t = gui_mch_get_color(name);
if (t != INVALCOLOR)
return t;
# endif
return gui_get_color_cmn(name);
}
@@ -2630,12 +2636,12 @@ term_color(char_u *s, int n)
|| STRCMP(s + i + 1, "%dm") == 0)
&& (s[i] == '3' || s[i] == '4'))
{
sprintf(buf,
#ifdef TERMINFO
"%s%s%%p1%%dm",
char *format = "%s%s%%p1%%dm";
#else
"%s%s%%dm",
char *format = "%s%s%%dm";
#endif
sprintf(buf, format,
i == 2 ? IF_EB("\033[", ESC_STR "[") : "\233",
s[i] == '3' ? (n >= 16 ? "38;5;" : "9")
: (n >= 16 ? "48;5;" : "10"));
+1
View File
@@ -65,6 +65,7 @@ class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
elif decoded[1].startswith("echo "):
# send back the argument
response = decoded[1][5:]
time.sleep(0.01)
elif decoded[1] == 'make change':
# Send two ex commands at the same time, before
# replying to the request.
+7
View File
@@ -83,3 +83,10 @@ func Test_getreg_empty_list()
call add(x, 'foo')
call assert_equal(['foo'], y)
endfunc
func Test_loop_over_null_list()
let null_list = submatch(1, 1)
for i in null_list
call assert_true(0, 'should not get here')
endfor
endfunc
+115
View File
@@ -26,3 +26,118 @@ func Test_help_tagjump()
call assert_true(getline('.') =~ '\*arglistid()\*')
helpclose
endfunc
let s:langs = ['en', 'ab', 'ja']
func s:doc_config_setup()
let s:helpfile_save = &helpfile
let &helpfile="Xdir1/doc-en/doc/testdoc.txt"
let s:rtp_save = &rtp
let &rtp="Xdir1/doc-en"
if has('multi_lang')
let s:helplang_save=&helplang
endif
call delete('Xdir1', 'rf')
for lang in s:langs
if lang ==# 'en'
let tagfname = 'tags'
let docfname = 'testdoc.txt'
else
let tagfname = 'tags-' . lang
let docfname = 'testdoc.' . lang . 'x'
endif
let docdir = "Xdir1/doc-" . lang . "/doc"
call mkdir(docdir, "p")
call writefile(["\t*test-char*", "\t*test-col*"], docdir . '/' . docfname)
call writefile(["test-char\t" . docfname . "\t/*test-char*",
\ "test-col\t" . docfname . "\t/*test-col*"],
\ docdir . '/' . tagfname)
endfor
endfunc
func s:doc_config_teardown()
call delete('Xdir1', 'rf')
let &helpfile = s:helpfile_save
let &rtp = s:rtp_save
if has('multi_lang')
let &helplang = s:helplang_save
endif
endfunc
func s:get_cmd_compl_list(cmd)
let list = []
let str = ''
for cnt in range(1, 999)
call feedkeys(a:cmd . repeat("\<Tab>", cnt) . "'\<C-B>let str='\<CR>", 'tx')
if str ==# a:cmd[1:]
break
endif
call add(list, str)
endfor
return list
endfunc
func Test_help_complete()
try
let list = []
call s:doc_config_setup()
" 'helplang=' and help file lang is 'en'
if has('multi_lang')
set helplang=
endif
let list = s:get_cmd_compl_list(":h test")
call assert_equal(['h test-col', 'h test-char'], list)
if has('multi_lang')
" 'helplang=ab' and help file lang is 'en'
set helplang=ab
let list = s:get_cmd_compl_list(":h test")
call assert_equal(['h test-col', 'h test-char'], list)
" 'helplang=' and help file lang is 'en' and 'ab'
set rtp+=Xdir1/doc-ab
set helplang=
let list = s:get_cmd_compl_list(":h test")
call assert_equal(sort(['h test-col@en', 'h test-col@ab',
\ 'h test-char@en', 'h test-char@ab']), sort(list))
" 'helplang=ab' and help file lang is 'en' and 'ab'
set helplang=ab
let list = s:get_cmd_compl_list(":h test")
call assert_equal(sort(['h test-col', 'h test-col@en',
\ 'h test-char', 'h test-char@en']), sort(list))
" 'helplang=' and help file lang is 'en', 'ab' and 'ja'
set rtp+=Xdir1/doc-ja
set helplang=
let list = s:get_cmd_compl_list(":h test")
call assert_equal(sort(['h test-col@en', 'h test-col@ab',
\ 'h test-col@ja', 'h test-char@en',
\ 'h test-char@ab', 'h test-char@ja']), sort(list))
" 'helplang=ab' and help file lang is 'en', 'ab' and 'ja'
set helplang=ab
let list = s:get_cmd_compl_list(":h test")
call assert_equal(sort(['h test-col', 'h test-col@en',
\ 'h test-col@ja', 'h test-char',
\ 'h test-char@en', 'h test-char@ja']), sort(list))
" 'helplang=ab,ja' and help file lang is 'en', 'ab' and 'ja'
set helplang=ab,ja
let list = s:get_cmd_compl_list(":h test")
call assert_equal(sort(['h test-col', 'h test-col@ja',
\ 'h test-col@en', 'h test-char',
\ 'h test-char@ja', 'h test-char@en']), sort(list))
endif
catch
call assert_exception('X')
finally
call s:doc_config_teardown()
endtry
endfunc
" vim: et sw=2:
+40
View File
@@ -768,6 +768,46 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1831,
/**/
1830,
/**/
1829,
/**/
1828,
/**/
1827,
/**/
1826,
/**/
1825,
/**/
1824,
/**/
1823,
/**/
1822,
/**/
1821,
/**/
1820,
/**/
1819,
/**/
1818,
/**/
1817,
/**/
1816,
/**/
1815,
/**/
1814,
/**/
1813,
/**/
1812,
/**/
1811,
/**/
+10
View File
@@ -1564,14 +1564,23 @@ typedef UINT32_TYPEDEF UINT32_T;
#ifdef FEAT_GUI
# ifdef FEAT_TERMGUICOLORS
# define GUI_FUNCTION(f) (gui.in_use ? gui_##f : termgui_##f)
# define GUI_FUNCTION2(f, pixel) (gui.in_use \
? ((pixel) != INVALCOLOR \
? gui_##f((pixel)) \
: (long_u)INVALCOLOR) \
: termgui_##f((pixel)))
# define USE_24BIT (gui.in_use || p_tgc)
# else
# define GUI_FUNCTION(f) gui_##f
# define GUI_FUNCTION2(f,pixel) ((pixel) != INVALCOLOR \
? gui_##f((pixel)) \
: (long_u)INVALCOLOR)
# define USE_24BIT gui.in_use
# endif
#else
# ifdef FEAT_TERMGUICOLORS
# define GUI_FUNCTION(f) termgui_##f
# define GUI_FUNCTION2(f, pixel) termgui_##f((pixel))
# define USE_24BIT p_tgc
# endif
#endif
@@ -1582,6 +1591,7 @@ typedef UINT32_TYPEDEF UINT32_T;
#endif
#ifdef GUI_FUNCTION
# define GUI_MCH_GET_RGB GUI_FUNCTION(mch_get_rgb)
# define GUI_MCH_GET_RGB2(pixel) GUI_FUNCTION2(mch_get_rgb, (pixel))
# define GUI_MCH_GET_COLOR GUI_FUNCTION(mch_get_color)
# define GUI_GET_COLOR GUI_FUNCTION(get_color)
#endif