1
0
forked from aniani/vim

Updated runtime files.

This commit is contained in:
Bram Moolenaar
2016-02-25 00:00:01 +01:00
parent 84f4996d2a
commit f391327adb
16 changed files with 261 additions and 155 deletions

View File

@@ -1,4 +1,4 @@
*channel.txt* For Vim version 7.4. Last change: 2016 Feb 21 *channel.txt* For Vim version 7.4. Last change: 2016 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -160,9 +160,13 @@ Use |ch_status()| to see if the channel could be opened.
func MyCloseHandler(channel) func MyCloseHandler(channel)
< *waittime* < *waittime*
"waittime" The time to wait for the connection to be made in "waittime" The time to wait for the connection to be made in
milliseconds. The default is zero, don't wait, which is milliseconds. A negative number waits forever.
useful if the server is supposed to be running already. A
negative number waits forever. The default is zero, don't wait, which is useful if a local
server is supposed to be running already. On Unix Vim
actually uses a 1 msec timeout, that is required on many
systems. Use a larger value for a remote server, e.g. 10
msec at least.
"timeout" The time to wait for a request when blocking, E.g. when using "timeout" The time to wait for a request when blocking, E.g. when using
ch_sendexpr(). In milliseconds. The default is 2000 (2 ch_sendexpr(). In milliseconds. The default is 2000 (2
@@ -253,7 +257,8 @@ Then channel handler will then get {response} converted to Vim types. If the
channel does not have a handler the message is dropped. channel does not have a handler the message is dropped.
On read error or ch_close(), when using a socket, the string "DETACH" is sent, On read error or ch_close(), when using a socket, the string "DETACH" is sent,
if still possible. The channel will then be inactive. if still possible. The channel will then be inactive. For a JSON and JS mode
channel quotes are used around DETACH, otherwise there are no quotes.
It is also possible to use ch_sendraw() on a JSON or JS channel. The caller It is also possible to use ch_sendraw() on a JSON or JS channel. The caller
is then completely responsible for correct encoding and decoding. is then completely responsible for correct encoding and decoding.

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2016 Feb 21 *eval.txt* For Vim version 7.4. Last change: 2016 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1961,6 +1961,7 @@ insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}]
invert( {expr}) Number bitwise invert invert( {expr}) Number bitwise invert
isdirectory( {directory}) Number TRUE if {directory} is a directory isdirectory( {directory}) Number TRUE if {directory} is a directory
islocked( {expr}) Number TRUE if {expr} is locked islocked( {expr}) Number TRUE if {expr} is locked
isnan( {expr}) Number TRUE if {expr} is NaN
items( {dict}) List key-value pairs in {dict} items( {dict}) List key-value pairs in {dict}
job_getchannel( {job}) Channel get the channel handle for {job} job_getchannel( {job}) Channel get the channel handle for {job}
job_setoptions( {job}, {options}) none set options for {job} job_setoptions( {job}, {options}) none set options for {job}
@@ -4397,6 +4398,13 @@ islocked({expr}) *islocked()* *E786*
< When {expr} is a variable that does not exist you get an error < When {expr} is a variable that does not exist you get an error
message. Use |exists()| to check for existence. message. Use |exists()| to check for existence.
isnan({expr}) *isnan()*
Return non-zero if {expr} is a float with value NaN. >
echo isnan(0.0 / 0.0)
< 1 ~
{only available when compiled with the |+float| feature}
items({dict}) *items()* items({dict}) *items()*
Return a |List| with all the key-value pairs of {dict}. Each Return a |List| with all the key-value pairs of {dict}. Each
|List| item is a list with two items: the key of a {dict} |List| item is a list with two items: the key of a {dict}

View File

@@ -1,4 +1,4 @@
*help.txt* For Vim version 7.4. Last change: 2016 Jan 10 *help.txt* For Vim version 7.4. Last change: 2016 Feb 22
VIM - main help file VIM - main help file
k k
@@ -155,7 +155,6 @@ Special issues ~
GUI ~ GUI ~
|gui.txt| Graphical User Interface (GUI) |gui.txt| Graphical User Interface (GUI)
|gui_w16.txt| Windows 3.1 GUI
|gui_w32.txt| Win32 GUI |gui_w32.txt| Win32 GUI
|gui_x11.txt| X11 GUI |gui_x11.txt| X11 GUI

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2016 Jan 19 *index.txt* For Vim version 7.4. Last change: 2016 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1324,6 +1324,7 @@ tag command action ~
|:lnfile| :lnf[ile] go to first location in next file |:lnfile| :lnf[ile] go to first location in next file
|:lnoremap| :ln[oremap] like ":noremap!" but includes Lang-Arg mode |:lnoremap| :ln[oremap] like ":noremap!" but includes Lang-Arg mode
|:loadkeymap| :loadk[eymap] load the following keymaps until EOF |:loadkeymap| :loadk[eymap] load the following keymaps until EOF
|:loadplugin| :loadp[lugin] load a plugin from 'packpath'
|:loadview| :lo[adview] load view for current window from a file |:loadview| :lo[adview] load view for current window from a file
|:lockmarks| :loc[kmarks] following command keeps marks where they are |:lockmarks| :loc[kmarks] following command keeps marks where they are
|:lockvar| :lockv[ar] lock variables |:lockvar| :lockv[ar] lock variables

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2016 Feb 21 *options.txt* For Vim version 7.4. Last change: 2016 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1211,10 +1211,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'bioskey' 'biosk' boolean (default on) 'bioskey' 'biosk' boolean (default on)
global global
{not in Vi} {only for MS-DOS} {not in Vi} {only for MS-DOS}
When on the BIOS is called to obtain a keyboard character. This works This was for MS-DOS and is no longer supported.
better to detect CTRL-C, but only works for the console. When using a
terminal over a serial port reset this option.
Also see |'conskey'|.
*'bomb'* *'nobomb'* *'bomb'* *'nobomb'*
'bomb' boolean (default off) 'bomb' boolean (default off)
@@ -1946,13 +1943,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'conskey' 'consk' boolean (default off) 'conskey' 'consk' boolean (default off)
global global
{not in Vi} {only for MS-DOS} {not in Vi} {only for MS-DOS}
When on direct console I/O is used to obtain a keyboard character. This was for MS-DOS and is no longer supported.
This should work in most cases. Also see |'bioskey'|. Together,
three methods of console input are available:
'conskey' 'bioskey' action ~
on on or off direct console input
off on BIOS
off off STDIN
*'copyindent'* *'ci'* *'nocopyindent'* *'noci'* *'copyindent'* *'ci'* *'nocopyindent'* *'noci'*
'copyindent' 'ci' boolean (default off) 'copyindent' 'ci' boolean (default off)
@@ -5412,7 +5403,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'packpath'* *'pp'* *'packpath'* *'pp'*
'packpath' 'pp' string (default: see 'runtimepath') 'packpath' 'pp' string (default: see 'runtimepath')
{not in Vi} {not in Vi}
{not available without the |+packages| feature}
Directories used to find packages. See |packages|. Directories used to find packages. See |packages|.

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.4. Last change: 2015 Nov 10 *quickref.txt* For Vim version 7.4. Last change: 2016 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -811,6 +811,7 @@ Short explanation of each option: *option-list*
'opendevice' 'odev' allow reading/writing devices on MS-Windows 'opendevice' 'odev' allow reading/writing devices on MS-Windows
'operatorfunc' 'opfunc' function to be called for |g@| operator 'operatorfunc' 'opfunc' function to be called for |g@| operator
'osfiletype' 'oft' no longer supported 'osfiletype' 'oft' no longer supported
'packpath' 'pp' list of directories used for packages
'paragraphs' 'para' nroff macros that separate paragraphs 'paragraphs' 'para' nroff macros that separate paragraphs
'paste' allow pasting text 'paste' allow pasting text
'pastetoggle' 'pt' key code that causes 'paste' to toggle 'pastetoggle' 'pt' key code that causes 'paste' to toggle

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.4. Last change: 2016 Feb 21 *repeat.txt* For Vim version 7.4. Last change: 2016 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -227,8 +227,6 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
Also see |load-plugin|. Also see |load-plugin|.
{not available without the |+packages| feature}
:scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167* :scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167*
Specify the character encoding used in the script. Specify the character encoding used in the script.
The following lines will be converted from [encoding] The following lines will be converted from [encoding]

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2016 Jan 28 *syntax.txt* For Vim version 7.4. Last change: 2016 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3361,6 +3361,13 @@ Note that schemas are not actually limited to plain scalars, but this is the
only difference between schemas defined in YAML specification and the only only difference between schemas defined in YAML specification and the only
difference defined in the syntax file. difference defined in the syntax file.
ZSH *zsh.vim* *ft-zsh-syntax*
The syntax script for zsh allows for syntax-based folding: >
:let g:zsh_fold_enable = 1
============================================================================== ==============================================================================
5. Defining a syntax *:syn-define* *E410* 5. Defining a syntax *:syn-define* *E410*

View File

@@ -2446,6 +2446,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:lo starting.txt /*:lo* :lo starting.txt /*:lo*
:loadk mbyte.txt /*:loadk* :loadk mbyte.txt /*:loadk*
:loadkeymap mbyte.txt /*:loadkeymap* :loadkeymap mbyte.txt /*:loadkeymap*
:loadp repeat.txt /*:loadp*
:loadplugin repeat.txt /*:loadplugin*
:loadview starting.txt /*:loadview* :loadview starting.txt /*:loadview*
:loc motion.txt /*:loc* :loc motion.txt /*:loc*
:lockmarks motion.txt /*:lockmarks* :lockmarks motion.txt /*:lockmarks*
@@ -6038,6 +6040,7 @@ ft-xml-omni insert.txt /*ft-xml-omni*
ft-xml-syntax syntax.txt /*ft-xml-syntax* ft-xml-syntax syntax.txt /*ft-xml-syntax*
ft-xpm-syntax syntax.txt /*ft-xpm-syntax* ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
ft-yaml-syntax syntax.txt /*ft-yaml-syntax* ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
ft-zsh-syntax syntax.txt /*ft-zsh-syntax*
ft_ada.txt ft_ada.txt /*ft_ada.txt* ft_ada.txt ft_ada.txt /*ft_ada.txt*
ft_sql.txt ft_sql.txt /*ft_sql.txt* ft_sql.txt ft_sql.txt /*ft_sql.txt*
ftdetect filetype.txt /*ftdetect* ftdetect filetype.txt /*ftdetect*
@@ -6829,6 +6832,7 @@ iquote motion.txt /*iquote*
is motion.txt /*is* is motion.txt /*is*
isdirectory() eval.txt /*isdirectory()* isdirectory() eval.txt /*isdirectory()*
islocked() eval.txt /*islocked()* islocked() eval.txt /*islocked()*
isnan() eval.txt /*isnan()*
it motion.txt /*it* it motion.txt /*it*
italic syntax.txt /*italic* italic syntax.txt /*italic*
items() eval.txt /*items()* items() eval.txt /*items()*
@@ -6950,6 +6954,7 @@ list-repeat windows.txt /*list-repeat*
lite.vim syntax.txt /*lite.vim* lite.vim syntax.txt /*lite.vim*
literal-string eval.txt /*literal-string* literal-string eval.txt /*literal-string*
lnum-variable eval.txt /*lnum-variable* lnum-variable eval.txt /*lnum-variable*
load-plugin repeat.txt /*load-plugin*
load-plugins starting.txt /*load-plugins* load-plugins starting.txt /*load-plugins*
load-vim-script repeat.txt /*load-vim-script* load-vim-script repeat.txt /*load-vim-script*
local-additions help.txt /*local-additions* local-additions help.txt /*local-additions*
@@ -9193,6 +9198,7 @@ zn fold.txt /*zn*
zo fold.txt /*zo* zo fold.txt /*zo*
zr fold.txt /*zr* zr fold.txt /*zr*
zs scroll.txt /*zs* zs scroll.txt /*zs*
zsh.vim syntax.txt /*zsh.vim*
zt scroll.txt /*zt* zt scroll.txt /*zt*
zuG spell.txt /*zuG* zuG spell.txt /*zuG*
zuW spell.txt /*zuW* zuW spell.txt /*zuW*

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Feb 20 *todo.txt* For Vim version 7.4. Last change: 2016 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,41 +35,35 @@ not be repeated below, unless there is extra information.
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
+channel: +channel:
- channel needs both stdout and stderr (GUI implementation, queues) - don't free channel if there are callbacks.
- ch_read() for stderr netbeans channel leaks?
- implement TODO items in ":help channel": - job_stop() on MS-Windows: "term" should probably do the same as "kill".
- implement ch_setoptions(handle, {options}) - Make JSON encode and decode NaN and Infinity.
- job_setoptions(job, {options})
- ch_close() closes stdin/stdout/stderr
- out-cb
- err-cb
- exit-cb move code from mch_clear_job()
- job argument: killonexit
- ch_getjob(handle)
- ch_read(handle [, timeout])
- ch_readall(handle [, timeout])
- job_info() should remove usable info: process ID, run/dead, etc.
- job_maystart()
- job_gethandle(), job_sethandle()
- add ch_status(): Whether channel is open. Perhaps also mode, timeout.
- When channel closes invoke "close-cb".
- Add "call" to call a function with a list of arguments. (Damien)
merge "expr" and "eval", send something back if there is a third arg?
- A callback on ch_sendraw() should be put at the end of the list of callback - A callback on ch_sendraw() should be put at the end of the list of callback
handlers. When a message arrives invoke the first one and remove it. handlers. When a message arrives invoke the first one and remove it.
- Support channel without socket support. Useful for starting a job with - implement TODO items in ":help channel":
pipes. Need another feature, +socket ? - job_start() options:
term
in-io
in-file
out-io
out-file
out-buffer
err-io
err-file
err-buffer
existing channel to use
- job_maystart()
- add job_info(): process ID, run/dead, etc.
- add ch_info(): in/out/err mode, timeout, callbacks, etc.
- Move more details from eval.txt to channel.txt. Add tags in eval.txt. - Move more details from eval.txt to channel.txt. Add tags in eval.txt.
- When receiving malformed json starting with a quote it doesn't get - When receiving malformed json starting with a quote it doesn't get
discarded. discarded.
- When message in queue but there is no callback, drop it after a while? - When a message in the queue but there is no callback, drop it after a while?
- Crash when closing channel after ch_sendexpr() with callback and outstanding Add timestamp to queued messages and callbacks with ID, remove after a
request (Christian Robinson).
- cleanup on exit? in mch_getout() and getout().
- On Mac a 1 msec waittime is needed in ch_open(), why?
- Add more log calls, basically at every branch, before every callback, etc.
- Add timestamp to queued messages and callbacks with ID, remove after a
minute. minute.
- cleanup on exit? in mch_getout() and getout().
- Add more log calls, basically at every branch, before every callback, etc.
- add remark about undo sync, is there a way to force it? - add remark about undo sync, is there a way to force it?
- When starting a job, have an option to open the server socket, so we know - When starting a job, have an option to open the server socket, so we know
the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz, the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
@@ -82,6 +76,8 @@ not be repeated below, unless there is extra information.
- For connection to server, a "keep open" flag would be useful. Retry - For connection to server, a "keep open" flag would be useful. Retry
connecting in the main loop with zero timeout. connecting in the main loop with zero timeout.
Remove the sniff interface? Looks like it's dead.
More plugin support: More plugin support:
- Have a way to install a callback from the main loop. Called every second or - Have a way to install a callback from the main loop. Called every second or
so. so.
@@ -94,9 +90,8 @@ More plugin support:
gettabnr({id}) tab page nr of {id} or -1 if not open gettabnr({id}) tab page nr of {id} or -1 if not open
gotowin({id}) gotowin({id})
Make it so that the window ID can be used where currently a window nr is used Make it so that the window ID can be used where currently a window nr is used
Patch from Anton Lindqvist, 2016 Feb 21, to make bufwinnr() return a list.
Patch on #608: (Ken Takata) Perhaps add bufwinid() instead.
https://bitbucket.org/k_takata/vim-ktakata-mq/src/479934b94fd56b064c9e4bd8737585c5df69d56a/fix-gvimext-loadlibrary.patch?fileviewer=file-view-default
This difference is unexpected: This difference is unexpected:
echo v:true == 1 echo v:true == 1
@@ -109,25 +104,11 @@ Compiler warnings. (John Marriott, Feb 17)
Compiler warnings in if_ole.cpp. Patch by Ken Takata, Feb 18. Compiler warnings in if_ole.cpp. Patch by Ken Takata, Feb 18.
Add "runtime/bundles" ? When running "make install" don't overwrite the doc/tags file, generate it
runtime/bundles/netrw/spec.vim elsewhere, so that the distributed file doesn't change.
runtime/bundles/netrw/autoload/netrw.vim
runtime/bundles/netrw/syntax/netrw.vim Fix to support --nofork for Windows batch files. (Kevin Cantú, 2016 Feb 23,
etc. #658)
Need an alternative for 'runtimepath' that tells where bundles are to be
found. 'bundlepath' ?
The plugins under 'bundlepath' would always be loaded. Also have a path for
optional plugins? 'optbundlepath'? Or have directories "bundlesdef" and
"bundlesopt"?
Then use a command "loadplugin" to find a plugin in "optional".
"bundles" is used by some plugin managers, need another name. "packages"?
Add a "requires" / "provides" mechanism?
if my_feature_enabled
require +python
endif
require my_other_plugin
~/vim/packages/netrw/def/netrw/plugin/netrw.vim
~/vim/packages/netrw/opt/nwdebug/plugin/nwdebug.vim
Patch to add GTK 3 support. (Kazunobu Kuriyama, 2016 Feb 13) Patch to add GTK 3 support. (Kazunobu Kuriyama, 2016 Feb 13)
@@ -199,6 +180,14 @@ Patch for test86 and test87. (Roland Puntaier, #622)
Patch for Python: #622. (Roland Puntaier, 2016 Feb 2) Patch for Python: #622. (Roland Puntaier, 2016 Feb 2)
What does it change? What does it change?
Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
More tests May 14. Update May 29. Update Aug 10.
Now part of large file patches. (Ken Takata, 2016 Feb 1)
Two patches now? New update Feb 24.
Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
Also in update of Feb 24?
Need to try out instructions in INSSTALLpc.txt about how to install all Need to try out instructions in INSSTALLpc.txt about how to install all
interfaces and how to build Vim with them. interfaces and how to build Vim with them.
Appveyor build with self-installing executable, includes getting most Appveyor build with self-installing executable, includes getting most
@@ -251,12 +240,7 @@ directory exists. (Sergio Gallelli, 2013 Dec 29)
Patch to avoid redrawing tabline when the popup menu is visible. Patch to avoid redrawing tabline when the popup menu is visible.
(Christian Brabandt, 2016 Jan 28) (Christian Brabandt, 2016 Jan 28)
Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12) Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24)
More tests May 14. Update May 29. Update Aug 10.
Now part of large file patches. (Ken Takata, 2016 Feb 1)
Two patches now?
Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
7 Add a watchpoint in the debug mode: An expression that breaks execution 7 Add a watchpoint in the debug mode: An expression that breaks execution
when evaluating to non-zero. Add the "watchadd expr" command, stop when when evaluating to non-zero. Add the "watchadd expr" command, stop when

View File

@@ -0,0 +1,96 @@
" Vim filetype plugin
" Language: Eiffel
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2010 Aug 29
if (exists("b:did_ftplugin"))
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal comments=:--
setlocal commentstring=--\ %s
setlocal formatoptions-=t formatoptions+=croql
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Eiffel Source Files (*.e)\t*.e\n" .
\ "Eiffel Control Files (*.ecf, *.ace, *.xace)\t*.ecf;*.ace;*.xace\n" .
\ "All Files (*.*)\t*.*\n"
endif
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 0
" Silly \%^ trick to match note at head of pair and in middle prevents
" 'g%' wrapping from 'note' to 'end'
let b:match_words = '\%^:' .
\ '\<\%(^note\|indexing\|class\|^obsolete\|inherit\|insert\|^create\|convert\|feature\|^invariant\)\>:' .
\ '^end\>,' .
\ '\<\%(do\|deferred\|external\|once\%(\s\+"\)\@!\|check\|debug\|if\|inspect\|from\|across\)\>:' .
\ '\%(\%(^\s\+\)\@<=\%(then\|until\|loop\)\|\%(then\|until\|loop\)\s\+[^ -]\|' .
\ '\<\%(ensure\%(\s\+then\)\=\|rescue\|_then\|elseif\|else\|when\|\s\@<=invariant\|_until\|_loop\|variant\|_as\|alias\)\>\):' .
\ '\s\@<=end\>'
let b:match_skip = 's:\<eiffel\%(Comment\|String\|Operator\)\>'
noremap [% <Nop>
noremap ]% <Nop>
vnoremap a% <Nop>
endif
let b:undo_ftplugin = "setl fo< com< cms<" .
\ "| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip"
if !exists("g:no_plugin_maps") && !exists("g:no_eiffel_maps")
function! s:DoMotion(pattern, count, flags) abort
normal! m'
for i in range(a:count)
call search(a:pattern, a:flags)
endfor
endfunction
let sections = '^\%(note\|indexing\|' .
\ '\%(\%(deferred\|expanded\|external\|frozen\)\s\+\)*class\|' .
\ 'obsolete\|inherit\|insert\|create\|convert\|feature\|' .
\ 'invariant\|end\)\>'
nnoremap <silent> <buffer> ]] :<C-U>call <SID>DoMotion(sections, v:count1, 'W')<CR>
xnoremap <silent> <buffer> ]] :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(sections, v:count1, 'W')<CR>
nnoremap <silent> <buffer> [[ :<C-U>call <SID>DoMotion(sections, v:count1, 'Wb')<CR>
xnoremap <silent> <buffer> [[ :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(sections, v:count1, 'Wb')<CR>
function! s:DoFeatureMotion(count, flags)
let view = winsaveview()
call cursor(1, 1)
let [features_start, _] = searchpos('^feature\>')
call search('^\s\+\a') " find the first feature
let spaces = indent(line('.'))
let [features_end, _] = searchpos('^\%(invariant\|note\|end\)\>')
call winrestview(view)
call s:DoMotion('\%>' . features_start . 'l\%<' . features_end . 'l^\s*\%' . (spaces + 1) . 'v\zs\a', a:count, a:flags)
endfunction
nnoremap <silent> <buffer> ]m :<C-U>call <SID>DoFeatureMotion(v:count1, 'W')<CR>
xnoremap <silent> <buffer> ]m :<C-U>exe "normal! gv"<Bar>call <SID>DoFeatureMotion(v:count1, 'W')<CR>
nnoremap <silent> <buffer> [m :<C-U>call <SID>DoFeatureMotion(v:count1, 'Wb')<CR>
xnoremap <silent> <buffer> [m :<C-U>exe "normal! gv"<Bar>call <SID>DoFeatureMotion(v:count1, 'Wb')<CR>
let comment_block_start = '^\%(\s\+--.*\n\)\@<!\s\+--'
let comment_block_end = '^\s\+--.*\n\%(\s\+--\)\@!'
nnoremap <silent> <buffer> ]- :<C-U>call <SID>DoMotion(comment_block_start, 1, 'W')<CR>
xnoremap <silent> <buffer> ]- :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(comment_block_start, 1, 'W')<CR>
nnoremap <silent> <buffer> [- :<C-U>call <SID>DoMotion(comment_block_end, 1, 'Wb')<CR>
xnoremap <silent> <buffer> [- :<C-U>exe "normal! gv"<Bar>call <SID>DoMotion(comment_block_end, 1, 'Wb')<CR>
let b:undo_ftplugin = b:undo_ftplugin .
\ "| silent! execute 'unmap <buffer> [[' | silent! execute 'unmap <buffer> ]]'" .
\ "| silent! execute 'unmap <buffer> [m' | silent! execute 'unmap <buffer> ]m'" .
\ "| silent! execute 'unmap <buffer> [-' | silent! execute 'unmap <buffer> ]-'"
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8

View File

@@ -3,7 +3,7 @@
" Maintainer: Christian Brabandt <cb@256bit.org> " Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org> " Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se> " Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016-01-15 " Latest Revision: 2016-02-15
" License: Vim (see :h license) " License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent " Repository: https://github.com/chrisbra/vim-sh-indent
@@ -12,14 +12,14 @@ if exists("b:did_indent")
endif endif
let b:did_indent = 1 let b:did_indent = 1
let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
setlocal indentexpr=GetShIndent() setlocal indentexpr=GetShIndent()
setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,0=end,),0=;;,0=;& setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,0=end,),0=;;,0=;&
setlocal indentkeys+=0=fin,0=fil,0=fip,0=fir,0=fix setlocal indentkeys+=0=fin,0=fil,0=fip,0=fir,0=fix
setlocal indentkeys-=:,0# setlocal indentkeys-=:,0#
setlocal nosmartindent setlocal nosmartindent
let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
if exists("*GetShIndent") if exists("*GetShIndent")
finish finish
endif endif
@@ -67,7 +67,7 @@ function! GetShIndent()
if !s:is_case_ended(line) if !s:is_case_ended(line)
let ind += s:indent_value('case-statements') let ind += s:indent_value('case-statements')
endif endif
elseif line =~ '^\s*\<\k\+\>\s*()\s*{' || line =~ '^\s*{' elseif line =~ '^\s*\<\k\+\>\s*()\s*{' || line =~ '^\s*{' || line =~ '^\s*function\s*\w\S\+\s*\%(()\)\?\s*{'
if line !~ '}\s*\%(#.*\)\=$' if line !~ '}\s*\%(#.*\)\=$'
let ind += s:indent_value('default') let ind += s:indent_value('default')
endif endif

View File

@@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh) " Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int> " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Feb 16, 2016 " Last Change: Feb 18, 2016
" Version: 144 " Version: 145
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax " For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)

View File

@@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: TeX " Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM> " Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Jan 20, 2016 " Last Change: Feb 18, 2016
" Version: 91 " Version: 92
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
" "
" Notes: {{{1 " Notes: {{{1
@@ -200,7 +200,7 @@ if !exists("g:tex_no_math")
endif endif
" Try to flag {} and () mismatches: {{{1 " Try to flag {} and () mismatches: {{{1
if s:tex_fast =~ 'm' if s:tex_fast =~# 'm'
if !s:tex_no_error if !s:tex_no_error
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup,texError syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup,texError,@NoSpell syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup,texError,@NoSpell
@@ -217,7 +217,7 @@ endif
if !s:tex_no_error if !s:tex_no_error
syn match texError "[}\])]" syn match texError "[}\])]"
endif endif
if s:tex_fast =~ 'M' if s:tex_fast =~# 'M'
if !exists("g:tex_no_math") if !exists("g:tex_no_math")
if !s:tex_no_error if !s:tex_no_error
syn match texMathError "}" contained syn match texMathError "}" contained
@@ -260,14 +260,14 @@ syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
" \begin{}/\end{} section markers: {{{1 " \begin{}/\end{} section markers: {{{1
syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName
if s:tex_fast =~ 'm' if s:tex_fast =~# 'm'
syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment
syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell
endif endif
" \documentclass, \documentstyle, \usepackage: {{{1 " \documentclass, \documentstyle, \usepackage: {{{1
syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texBeginEndName,texDocTypeArgs syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texBeginEndName,texDocTypeArgs
if s:tex_fast =~ 'm' if s:tex_fast =~# 'm'
syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell
endif endif
@@ -281,7 +281,7 @@ syn match texInput "\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7 contains=texStatemen
syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputCurlies "[{}]" contained syn match texInputCurlies "[{}]" contained
if s:tex_fast =~ 'm' if s:tex_fast =~# 'm'
syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment
endif endif
@@ -349,7 +349,7 @@ syn match texSpaceCode "\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=
syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
" Sections, subsections, etc: {{{1 " Sections, subsections, etc: {{{1
if s:tex_fast =~ 'p' if s:tex_fast =~# 'p'
if !s:tex_nospell if !s:tex_nospell
TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell
TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell
@@ -376,8 +376,8 @@ if s:tex_fast =~ 'p'
endif endif
" particular support for bold and italic {{{1 " particular support for bold and italic {{{1
if s:tex_fast =~ 'b' if s:tex_fast =~# 'b'
if s:tex_conceal =~ 'b' if s:tex_conceal =~# 'b'
if !exists("g:tex_nospell") || !g:tex_nospell if !exists("g:tex_nospell") || !g:tex_nospell
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
@@ -414,7 +414,7 @@ if !exists("g:tex_no_math")
let foldcmd= "" let foldcmd= ""
endif endif
exe "syn cluster texMathZones add=".grpname exe "syn cluster texMathZones add=".grpname
if s:tex_fast =~ 'M' if s:tex_fast =~# 'M'
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
@@ -424,7 +424,7 @@ if !exists("g:tex_no_math")
let grpname = "texMathZone".a:sfx.'S' let grpname = "texMathZone".a:sfx.'S'
let syncname = "texSyncMathZone".a:sfx.'S' let syncname = "texSyncMathZone".a:sfx.'S'
exe "syn cluster texMathZones add=".grpname exe "syn cluster texMathZones add=".grpname
if s:tex_fast =~ 'M' if s:tex_fast =~# 'M'
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
@@ -448,8 +448,8 @@ if !exists("g:tex_no_math")
call TexNewMathZone("L","xxalignat",0) call TexNewMathZone("L","xxalignat",0)
" Inline Math Zones: {{{2 " Inline Math Zones: {{{2
if s:tex_fast =~ 'M' if s:tex_fast =~# 'M'
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~ 'd' if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'd'
syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend concealends contains=@texMathZoneGroup syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend concealends contains=@texMathZoneGroup syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
syn region texMathZoneX matchgroup=Delimiter start="\$" skip="\\\\\|\\\$" matchgroup=Delimiter end="\$" end="%stopzone\>" concealends contains=@texMathZoneGroup syn region texMathZoneX matchgroup=Delimiter start="\$" skip="\\\\\|\\\$" matchgroup=Delimiter end="\$" end="%stopzone\>" concealends contains=@texMathZoneGroup
@@ -466,7 +466,7 @@ if !exists("g:tex_no_math")
syn match texMathOper "[_^=]" contained syn match texMathOper "[_^=]" contained
" Text Inside Math Zones: {{{2 " Text Inside Math Zones: {{{2
if s:tex_fast =~ 'M' if s:tex_fast =~# 'M'
if !exists("g:tex_nospell") || !g:tex_nospell if !exists("g:tex_nospell") || !g:tex_nospell
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell
else else
@@ -476,7 +476,7 @@ if !exists("g:tex_no_math")
" \left..something.. and \right..something.. support: {{{2 " \left..something.. and \right..something.. support: {{{2
syn match texMathDelimBad contained "\S" syn match texMathDelimBad contained "\S"
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~ 'm' if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'm'
syn match texMathDelim contained "\\left\\{\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={ syn match texMathDelim contained "\\left\\{\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={
syn match texMathDelim contained "\\right\\}\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=} syn match texMathDelim contained "\\right\\}\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=}
let s:texMathDelimList=[ let s:texMathDelimList=[
@@ -568,13 +568,13 @@ else
" allows syntax-folding of 2 or more contiguous comment lines " allows syntax-folding of 2 or more contiguous comment lines
" single-line comments are not folded " single-line comments are not folded
syn match texComment "%.*$" contains=@texCommentGroup syn match texComment "%.*$" contains=@texCommentGroup
if s:tex_fast =~ 'c' if s:tex_fast =~# 'c'
TexFold syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' contains=@texCommentGroup TexFold syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' contains=@texCommentGroup
TexFold syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell TexFold syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif endif
else else
syn match texComment "%.*$" contains=@texCommentGroup syn match texComment "%.*$" contains=@texCommentGroup
if s:tex_fast =~ 'c' if s:tex_fast =~# 'c'
syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif endif
endif endif
@@ -583,7 +583,7 @@ endif
" Separate lines used for verb` and verb# so that the end conditions {{{1 " Separate lines used for verb` and verb# so that the end conditions {{{1
" will appropriately terminate. " will appropriately terminate.
" If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there. " If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there.
if s:tex_fast =~ 'v' if s:tex_fast =~# 'v'
if exists("g:tex_verbspell") && g:tex_verbspell if exists("g:tex_verbspell") && g:tex_verbspell
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell
" listings package: " listings package:
@@ -614,7 +614,7 @@ if s:tex_fast =~ 'v'
endif endif
" Tex Reference Zones: {{{1 " Tex Reference Zones: {{{1
if s:tex_fast =~ 'r' if s:tex_fast =~# 'r'
syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
@@ -628,13 +628,13 @@ syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite
" Handle newcommand, newenvironment : {{{1 " Handle newcommand, newenvironment : {{{1
syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
if s:tex_fast =~ 'V' if s:tex_fast =~# 'V'
syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texCmdArgs,texCmdBody skipwhite skipnl syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texCmdArgs,texCmdBody skipwhite skipnl
syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]" nextgroup=texCmdBody skipwhite skipnl syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]" nextgroup=texCmdBody skipwhite skipnl
syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=Delimiter end="}" contains=@texCmdGroup syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=Delimiter end="}" contains=@texCmdGroup
endif endif
syn match texNewEnv "\\newenvironment\>" nextgroup=texEnvName skipwhite skipnl syn match texNewEnv "\\newenvironment\>" nextgroup=texEnvName skipwhite skipnl
if s:tex_fast =~ 'V' if s:tex_fast =~# 'V'
syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvBgn skipwhite skipnl syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvBgn skipwhite skipnl
syn region texEnvBgn contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup syn region texEnvBgn contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup
syn region texEnvEnd contained matchgroup=Delimiter start="{"rs=s+1 end="}" skipwhite skipnl contains=@texEnvGroup syn region texEnvEnd contained matchgroup=Delimiter start="{"rs=s+1 end="}" skipwhite skipnl contains=@texEnvGroup
@@ -660,11 +660,11 @@ syn match texString "\(``\|''\|,,\)"
" makeatletter -- makeatother sections " makeatletter -- makeatother sections
if !s:tex_no_error if !s:tex_no_error
if s:tex_fast =~ 'S' if s:tex_fast =~# 'S'
syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained
endif endif
syn match texStyleStatement "\\[a-zA-Z@]\+" contained syn match texStyleStatement "\\[a-zA-Z@]\+" contained
if s:tex_fast =~ 'S' if s:tex_fast =~# 'S'
syn region texStyleMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained syn region texStyleMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained
syn region texStyleMatcher matchgroup=Delimiter start="\[" end="]" contains=@texStyleGroup,texError contained syn region texStyleMatcher matchgroup=Delimiter start="\[" end="]" contains=@texStyleGroup,texError contained
endif endif
@@ -675,7 +675,7 @@ if has("conceal") && &enc == 'utf-8'
" Math Symbols {{{2 " Math Symbols {{{2
" (many of these symbols were contributed by Björn Winckler) " (many of these symbols were contributed by Björn Winckler)
if s:tex_conceal =~ 'm' if s:tex_conceal =~# 'm'
let s:texMathList=[ let s:texMathList=[
\ ['|' , '‖'], \ ['|' , '‖'],
\ ['aleph' , 'ℵ'], \ ['aleph' , 'ℵ'],
@@ -956,7 +956,7 @@ if has("conceal") && &enc == 'utf-8'
" \ ['uminus' , 'X'] " \ ['uminus' , 'X']
" \ ['uplus' , 'X'] " \ ['uplus' , 'X']
for texmath in s:texMathList for texmath in s:texMathList
if texmath[0] =~ '\w$' if texmath[0] =~# '\w$'
exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1] exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
else else
exe "syn match texMathSymbol '\\\\".texmath[0]."' contained conceal cchar=".texmath[1] exe "syn match texMathSymbol '\\\\".texmath[0]."' contained conceal cchar=".texmath[1]
@@ -995,7 +995,7 @@ if has("conceal") && &enc == 'utf-8'
endif endif
" Greek {{{2 " Greek {{{2
if s:tex_conceal =~ 'g' if s:tex_conceal =~# 'g'
fun! s:Greek(group,pat,cchar) fun! s:Greek(group,pat,cchar)
exe 'syn match '.a:group." '".a:pat."' contained conceal cchar=".a:cchar exe 'syn match '.a:group." '".a:pat."' contained conceal cchar=".a:cchar
endfun endfun
@@ -1042,14 +1042,14 @@ if has("conceal") && &enc == 'utf-8'
endif endif
" Superscripts/Subscripts {{{2 " Superscripts/Subscripts {{{2
if s:tex_conceal =~ 's' if s:tex_conceal =~# 's'
if s:tex_fast =~ 's' if s:tex_fast =~# 's'
syn region texSuperscript matchgroup=Delimiter start='\^{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher syn region texSuperscript matchgroup=Delimiter start='\^{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
syn region texSubscript matchgroup=Delimiter start='_{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher syn region texSubscript matchgroup=Delimiter start='_{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
endif endif
" s:SuperSub: " s:SuperSub:
fun! s:SuperSub(group,leader,pat,cchar) fun! s:SuperSub(group,leader,pat,cchar)
if a:pat =~ '^\\' || (a:leader == '\^' && a:pat =~ g:tex_superscripts) || (a:leader == '_' && a:pat =~ g:tex_subscripts) if a:pat =~# '^\\' || (a:leader == '\^' && a:pat =~# g:tex_superscripts) || (a:leader == '_' && a:pat =~# g:tex_subscripts)
" call Decho("SuperSub: group<".a:group."> leader<".a:leader."> pat<".a:pat."> cchar<".a:cchar.">") " call Decho("SuperSub: group<".a:group."> leader<".a:leader."> pat<".a:pat."> cchar<".a:cchar.">")
exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar
exe 'syn match '.a:group."s '".a:pat ."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s' exe 'syn match '.a:group."s '".a:pat ."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s'
@@ -1154,7 +1154,7 @@ if has("conceal") && &enc == 'utf-8'
endif endif
" Accented characters: {{{2 " Accented characters: {{{2
if s:tex_conceal =~ 'a' if s:tex_conceal =~# 'a'
if b:tex_stylish if b:tex_stylish
syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1 syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1
syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1 syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
@@ -1169,7 +1169,7 @@ if has("conceal") && &enc == 'utf-8'
let i= i + 1 let i= i + 1
continue continue
endif endif
if accent =~ '\a' if accent =~# '\a'
exe "syn match texAccent '".'\\'.accent.'\(\s*{'.a:chr.'}\|\s\+'.a:chr.'\)'."' conceal cchar=".a:{i} exe "syn match texAccent '".'\\'.accent.'\(\s*{'.a:chr.'}\|\s\+'.a:chr.'\)'."' conceal cchar=".a:{i}
else else
exe "syn match texAccent '".'\\'.accent.'\s*\({'.a:chr.'}\|'.a:chr.'\)'."' conceal cchar=".a:{i} exe "syn match texAccent '".'\\'.accent.'\s*\({'.a:chr.'}\|'.a:chr.'\)'."' conceal cchar=".a:{i}

View File

@@ -2,7 +2,7 @@
" Language: Vim 7.4 script " Language: Vim 7.4 script
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: February 17, 2016 " Last Change: February 17, 2016
" Version: 7.4-43 " Version: 7.4-44
" Automatically generated keyword lists: {{{1 " Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2 " Quit when a syntax file was already loaded {{{2
@@ -83,43 +83,43 @@ syn keyword vimFuncName contained add append arglistid assert_equal assert_false
" Special Vim Highlighting (not automatic) {{{1 " Special Vim Highlighting (not automatic) {{{1
" Set up folding commands " Set up folding commands
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ '[aflmpPrt]' if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[aflmpPrt]'
if g:vimsyn_folding =~ 'a' if g:vimsyn_folding =~# 'a'
com! -nargs=* VimFolda <args> fold com! -nargs=* VimFolda <args> fold
else else
com! -nargs=* VimFolda <args> com! -nargs=* VimFolda <args>
endif endif
if g:vimsyn_folding =~ 'f' if g:vimsyn_folding =~# 'f'
com! -nargs=* VimFoldf <args> fold com! -nargs=* VimFoldf <args> fold
else else
com! -nargs=* VimFoldf <args> com! -nargs=* VimFoldf <args>
endif endif
if g:vimsyn_folding =~ 'l' if g:vimsyn_folding =~# 'l'
com! -nargs=* VimFoldl <args> fold com! -nargs=* VimFoldl <args> fold
else else
com! -nargs=* VimFoldl <args> com! -nargs=* VimFoldl <args>
endif endif
if g:vimsyn_folding =~ 'm' if g:vimsyn_folding =~# 'm'
com! -nargs=* VimFoldm <args> fold com! -nargs=* VimFoldm <args> fold
else else
com! -nargs=* VimFoldm <args> com! -nargs=* VimFoldm <args>
endif endif
if g:vimsyn_folding =~ 'p' if g:vimsyn_folding =~# 'p'
com! -nargs=* VimFoldp <args> fold com! -nargs=* VimFoldp <args> fold
else else
com! -nargs=* VimFoldp <args> com! -nargs=* VimFoldp <args>
endif endif
if g:vimsyn_folding =~ 'P' if g:vimsyn_folding =~# 'P'
com! -nargs=* VimFoldP <args> fold com! -nargs=* VimFoldP <args> fold
else else
com! -nargs=* VimFoldP <args> com! -nargs=* VimFoldP <args>
endif endif
if g:vimsyn_folding =~ 'r' if g:vimsyn_folding =~# 'r'
com! -nargs=* VimFoldr <args> fold com! -nargs=* VimFoldr <args> fold
else else
com! -nargs=* VimFoldr <args> com! -nargs=* VimFoldr <args>
endif endif
if g:vimsyn_folding =~ 't' if g:vimsyn_folding =~# 't'
com! -nargs=* VimFoldt <args> fold com! -nargs=* VimFoldt <args> fold
else else
com! -nargs=* VimFoldt <args> com! -nargs=* VimFoldt <args>
@@ -190,7 +190,7 @@ syn keyword vimFTOption contained detect indent off on plugin
" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a' 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 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 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
@@ -218,7 +218,7 @@ syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimF
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f' if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
syn region vimFuncBody contained fold start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList syn region vimFuncBody contained fold start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
else else
syn region vimFuncBody contained start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList syn region vimFuncBody contained start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
@@ -611,12 +611,12 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e
" Allows users to specify the type of embedded script highlighting " Allows users to specify the type of embedded script highlighting
" they want: (perl/python/ruby/tcl support) " they want: (perl/python/ruby/tcl support)
" g:vimsyn_embed == 0 : don't embed any scripts " g:vimsyn_embed == 0 : don't embed any scripts
" g:vimsyn_embed =~ 'l' : embed lua (but only if vim supports it) " g:vimsyn_embed =~# 'l' : embed lua (but only if vim supports it)
" g:vimsyn_embed =~ 'm' : embed mzscheme (but only if vim supports it) " g:vimsyn_embed =~# 'm' : embed mzscheme (but only if vim supports it)
" g:vimsyn_embed =~ 'p' : embed perl (but only if vim supports it) " g:vimsyn_embed =~# 'p' : embed perl (but only if vim supports it)
" g:vimsyn_embed =~ 'P' : embed python (but only if vim supports it) " g:vimsyn_embed =~# 'P' : embed python (but only if vim supports it)
" g:vimsyn_embed =~ 'r' : embed ruby (but only if vim supports it) " g:vimsyn_embed =~# 'r' : embed ruby (but only if vim supports it)
" g:vimsyn_embed =~ 't' : embed tcl (but only if vim supports it) " g:vimsyn_embed =~# 't' : embed tcl (but only if vim supports it)
if !exists("g:vimsyn_embed") if !exists("g:vimsyn_embed")
let g:vimsyn_embed= "lmpPr" let g:vimsyn_embed= "lmpPr"
endif endif
@@ -631,7 +631,7 @@ if !filereadable(s:luapath)
endif endif
endfor endfor
endif endif
if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath) if (g:vimsyn_embed =~# 'l' && has("lua")) && filereadable(s:luapath)
unlet! b:current_syntax unlet! b:current_syntax
exe "syn include @vimLuaScript ".s:luapath exe "syn include @vimLuaScript ".s:luapath
VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript
@@ -653,7 +653,7 @@ if !filereadable(s:perlpath)
endif endif
endfor endfor
endif endif
if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath) if (g:vimsyn_embed =~# 'p' && has("perl")) && filereadable(s:perlpath)
unlet! b:current_syntax unlet! b:current_syntax
exe "syn include @vimPerlScript ".s:perlpath exe "syn include @vimPerlScript ".s:perlpath
VimFoldp syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript VimFoldp syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
@@ -675,7 +675,7 @@ if !filereadable(s:rubypath)
endif endif
endfor endfor
endif endif
if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath) if (g:vimsyn_embed =~# 'r' && has("ruby")) && filereadable(s:rubypath)
unlet! b:current_syntax unlet! b:current_syntax
exe "syn include @vimRubyScript ".s:rubypath exe "syn include @vimRubyScript ".s:rubypath
VimFoldr syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript VimFoldr syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
@@ -697,7 +697,7 @@ if !filereadable(s:pythonpath)
endif endif
endfor endfor
endif endif
if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath) if g:vimsyn_embed =~# 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath)
unlet! b:current_syntax unlet! b:current_syntax
exe "syn include @vimPythonScript ".s:pythonpath exe "syn include @vimPythonScript ".s:pythonpath
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
@@ -728,7 +728,7 @@ if s:trytcl
endif endif
endfor endfor
endif endif
if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath) if (g:vimsyn_embed =~# 't' && has("tcl")) && filereadable(s:tclpath)
unlet! b:current_syntax unlet! b:current_syntax
exe "syn include @vimTclScript ".s:tclpath exe "syn include @vimTclScript ".s:tclpath
VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
@@ -755,7 +755,7 @@ if !filereadable(s:mzschemepath)
endif endif
endfor endfor
endif endif
if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath) if (g:vimsyn_embed =~# 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
unlet! b:current_syntax unlet! b:current_syntax
let iskKeep= &isk let iskKeep= &isk
exe "syn include @vimMzSchemeScript ".s:mzschemepath exe "syn include @vimMzSchemeScript ".s:mzschemepath

View File

@@ -2,7 +2,7 @@
" Language: Zsh shell script " Language: Zsh shell script
" Maintainer: Christian Brabandt <cb@256bit.org> " Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016-01-25 " Latest Revision: 2016-02-15
" License: Vim (see :h license) " License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-zsh " Repository: https://github.com/chrisbra/vim-zsh
@@ -13,20 +13,29 @@ endif
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
if v:version > 704 || (v:version == 704 && has("patch1142"))
syn iskeyword @,48-57,_,192-255,#,-
else
setlocal iskeyword+=- setlocal iskeyword+=-
endif
if get(g:, 'zsh_fold_enable', 0)
setlocal foldmethod=syntax setlocal foldmethod=syntax
endif
syn keyword zshTodo contained TODO FIXME XXX NOTE syn keyword zshTodo contained TODO FIXME XXX NOTE
syn region zshComment oneline start='\%(^\|\s*\)#' end='$' syn region zshComment oneline start='\%(^\|\s*\)#' end='$'
\ contains=zshTodo,@Spell \ contains=zshTodo,@Spell fold
syn region zshComment start='^\s*#' end='^\%(\s*#\)\@!'
\ contains=zshTodo,@Spell fold
syn match zshPreProc '^\%1l#\%(!\|compdef\|autoload\).*$' syn match zshPreProc '^\%1l#\%(!\|compdef\|autoload\).*$'
syn match zshQuoted '\\.' syn match zshQuoted '\\.'
syn region zshString matchgroup=zshStringDelimiter start=+"+ end=+"+ syn region zshString matchgroup=zshStringDelimiter start=+"+ end=+"+
\ contains=zshQuoted,@zshDerefs,@zshSubst \ contains=zshQuoted,@zshDerefs,@zshSubst fold
syn region zshString matchgroup=zshStringDelimiter start=+'+ end=+'+ syn region zshString matchgroup=zshStringDelimiter start=+'+ end=+'+ fold
" XXX: This should probably be more precise, but Zsh seems a bit confused about it itself " XXX: This should probably be more precise, but Zsh seems a bit confused about it itself
syn region zshPOSIXString matchgroup=zshStringDelimiter start=+\$'+ syn region zshPOSIXString matchgroup=zshStringDelimiter start=+\$'+
\ end=+'+ contains=zshQuoted \ end=+'+ contains=zshQuoted
@@ -46,7 +55,7 @@ syn keyword zshException always
syn keyword zshKeyword function nextgroup=zshKSHFunction skipwhite syn keyword zshKeyword function nextgroup=zshKSHFunction skipwhite
syn match zshKSHFunction contained '\k\+' syn match zshKSHFunction contained '\w\S\+'
syn match zshFunction '^\s*\k\+\ze\s*()' syn match zshFunction '^\s*\k\+\ze\s*()'
syn match zshOperator '||\|&&\|;\|&!\=' syn match zshOperator '||\|&&\|;\|&!\='
@@ -317,6 +326,8 @@ syn region zshMathSubst matchgroup=zshSubstDelim transparent
\ @zshDerefs,zshString keepend fold \ @zshDerefs,zshString keepend fold
syn region zshBrackets contained transparent start='{' skip='\\}' syn region zshBrackets contained transparent start='{' skip='\\}'
\ end='}' fold \ end='}' fold
syn region zshBrackets transparent start='{' skip='\\}'
\ end='}' contains=TOP fold
syn region zshSubst matchgroup=zshSubstDelim start='\${' skip='\\}' syn region zshSubst matchgroup=zshSubstDelim start='\${' skip='\\}'
\ end='}' contains=@zshSubst,zshBrackets,zshQuoted,zshString fold \ end='}' contains=@zshSubst,zshBrackets,zshQuoted,zshString fold
syn region zshOldSubst matchgroup=zshSubstDelim start=+`+ skip=+\\`+ syn region zshOldSubst matchgroup=zshSubstDelim start=+`+ skip=+\\`+