0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

Update runtime files. Add support for J.

This commit is contained in:
Bram Moolenaar
2013-09-22 14:42:24 +02:00
parent 595cad2ea1
commit baca7f705b
21 changed files with 1131 additions and 1331 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1126,7 +1126,7 @@ less than one line (the small delete register is used then). An exception is
made for the delete operator with these movement commands: |%|, |(|, |)|, |`|, made for the delete operator with these movement commands: |%|, |(|, |)|, |`|,
|/|, |?|, |n|, |N|, |{| and |}|. Register "1 is always used then (this is Vi |/|, |?|, |n|, |N|, |{| and |}|. Register "1 is always used then (this is Vi
compatible). The "- register is used as well if the delete is within a line. compatible). The "- register is used as well if the delete is within a line.
Note that these character may be mapped. E.g. |%| is mapped by the matchit Note that these characters may be mapped. E.g. |%| is mapped by the matchit
plugin. plugin.
With each successive deletion or change, Vim shifts the previous contents With each successive deletion or change, Vim shifts the previous contents
of register 1 into register 2, 2 into 3, and so forth, losing the previous of register 1 into register 2, 2 into 3, and so forth, losing the previous

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.4. Last change: 2013 Jul 07 *diff.txt* For Vim version 7.4. Last change: 2013 Sep 20
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -123,10 +123,14 @@ Since the option values are remembered with the buffer, you can edit another
file for a moment and come back to the same file and be in diff mode again. file for a moment and come back to the same file and be in diff mode again.
*:diffo* *:diffoff* *:diffo* *:diffoff*
:diffo[ff] Switch off diff mode for the current window. :diffo[ff] Switch off diff mode for the current window. Resets related
options also when 'diff' was not set.
:diffo[ff]! Switch off diff mode for the current window and in all windows :diffo[ff]! Switch off diff mode for the current window and in all windows
in the current tab page where 'diff' is set. in the current tab page where 'diff' is set. Resetting
related options only happens in a window that has 'diff' set,
if the current window does not have 'diff' set then no options
in it are changed.
The ":diffoff" command resets the relevant options to the values they had when The ":diffoff" command resets the relevant options to the values they had when
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode. using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.

View File

@@ -581,8 +581,8 @@ CLOJURE *ft-clojure-indent* *clojure-indent*
Clojure indentation differs somewhat from traditional Lisps, due in part to Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention. the use of square and curly brackets, and otherwise by community convention.
These conventions are not always universally followed, so the Clojure indent These conventions are not universally followed, so the Clojure indent script
script offers a few configurable options, listed below. offers a few configurable options, listed below.
If the current vim does not include searchpairpos(), the indent script falls If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored. back to normal 'lisp' indenting, and the following options are ignored.

View File

@@ -188,7 +188,7 @@ WINDOWS *vimball-windows*
* Changed silent! to sil! (shorter) * Changed silent! to sil! (shorter)
* Safed |'swf'| setting (during vimball extraction, * Safed |'swf'| setting (during vimball extraction,
its now turned off) its now turned off)
32 : May 19, 2010 * (Christian Brabrandt) :so someplugin.vba and 32 : May 19, 2010 * (Christian Brabandt) :so someplugin.vba and
:so someplugin.vba.gz (and the other supported :so someplugin.vba.gz (and the other supported
compression types) now works compression types) now works
* (Jan Steffens) added support for xz compression * (Jan Steffens) added support for xz compression

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2013 Sep 05 *todo.txt* For Vim version 7.4. Last change: 2013 Sep 22
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -36,23 +36,47 @@ not be repeated below, unless there is extra information.
NFA engine mismatch, with example. (ZyX, 2013 Aug 29) NFA engine mismatch, with example. (ZyX, 2013 Aug 29)
php syntax file update. (Jason Woofenden, Aug 30) NFA engine difference, with test case. (Axel Bender, 2013 Sep 17)
Comments from Vlad Irnov Sep 18.
Problem positioning the cursor after auto-formatting without a comment. (Tor Problem positioning the cursor after auto-formatting without a comment. (Tor
Perkins, 2013 Sep 1) Perkins, 2013 Sep 1)
Patch to fix test 92 and 93 failing in a bad way. (Hirohito Higashi, 2013 Sep
11)
Patch to fix using "p" in Visual block mode. (Christian Brabandt, 2013 Sep 19)
Using \1 in pattern goes one line too far. (Bohr Shaw, 2013 Sep 5)
Column is OK. "/\v(^.+\n)\1/e" (John Little, Sep 5)
Also, matches start of 2nd line, not the whole line.
Error for incomplete help argument. (John Beckett, 2013 Sep 12)
Popup menu: first item is not selected when typing more than one character? Popup menu: first item is not selected when typing more than one character?
Patch to add async functionality. (Geoff Greer, 2013 Sep 1) Patch to add async functionality. (Geoff Greer, 2013 Sep 1)
Patch to avoid mouse cursor flickering. (Ken Takata,, 2013 Sep 2) Patch to avoid mouse cursor flickering. (Ken Takata,, 2013 Sep 2)
Patch to make zg and zb work better. (Christian Brabandt, 2013 Sep 8)
Patch to fix that VC10 does not stat() a symlink to a directory.
(Ken Takata,, 2013 Sep 20) Update Sep 21
Should win_redr_custom() not be allowed to use recursively? Should win_redr_custom() not be allowed to use recursively?
(Yasuhiro Matsumoto, 2013 Aug 15) (Yasuhiro Matsumoto, 2013 Aug 15)
NFA engine combining character mismatch. (glts, 2013 Aug 27) NFA engine combining character mismatch. (glts, 2013 Aug 27)
Remark Dominique, Aug 27 Remark Dominique, Aug 27
Patch to make Tcl 8.6 work. (Issue 167)
Patch to make input() work while inside :normal. (Yasuhiro Matsumoto, 2013 Sep
19)
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
Issue 164: freeze on regexp search. Issue 164: freeze on regexp search.
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack) Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
@@ -61,7 +85,7 @@ Patch to fix substitute prompt with line number. (Benoit Pierre, 2013 Aug 27,
third message) third message)
Patch to avoid problem with colon in file name. (Yasuhiro Matsumoto, 2013 Sep Patch to avoid problem with colon in file name. (Yasuhiro Matsumoto, 2013 Sep
5) Only copy file name when needed. 5) Only copy file name when needed: Sep 9.
Include systemverilog file? Two votes yes. Include systemverilog file? Two votes yes.
@@ -69,6 +93,10 @@ Wrapping around end of file does not work for "." after "cgn". (Dimitar
Dimitrov) Dimitrov)
Patch by Christian Brabandt, 2013 Aug 22 Patch by Christian Brabandt, 2013 Aug 22
Clang error for integer overflow. (Dominique Pelle, 2013 Sep 21)
Patch to add v:hlsearch. (ZyX, 2013 Sep 22)
Problem with 'spellsuggest' file, only works for some words. Problem with 'spellsuggest' file, only works for some words.
(Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24) (Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24)
Additional remark by glts: the suggested words are marked bad? Additional remark by glts: the suggested words are marked bad?
@@ -83,6 +111,11 @@ Patch to make has() check for Vim version and patch at the same time.
Several syntax file match "^\s*" which may get underlined if that's in the Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it? highlight group. Add a "\zs" after it?
Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5; 2013 Aug 20)
Patch 2013 Sept 10, test: Sept 11.
Go through more coverity reports. Go through more coverity reports.
With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa, With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
@@ -99,7 +132,7 @@ Patches to fix this. (Ken Takata, 2013 Aug 9)
:help gives example for z?, but it does not work. m? and t? do work. :help gives example for z?, but it does not work. m? and t? do work.
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4) Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
Missing tests. With tests: Sep 5.
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10) Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
@@ -131,10 +164,6 @@ Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
Patch by Christian Brabandt, 2013 Mar 23. Patch by Christian Brabandt, 2013 Mar 23.
Not 100% sure this is the right solution. Not 100% sure this is the right solution.
Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5; 2013 Aug 20)
Patch to support expression argument to sort() instead of a function name. Patch to support expression argument to sort() instead of a function name.
Yasuhiro Matsumoto, 2013 May 31. Yasuhiro Matsumoto, 2013 May 31.
Or should we add a more general mechanism, like lambda functions? Or should we add a more general mechanism, like lambda functions?
@@ -184,6 +213,7 @@ Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
TCL: With MSVC 2010 doesn't find Tcl_FindExecutable. (tux) TCL: With MSVC 2010 doesn't find Tcl_FindExecutable. (tux)
Patch to define it. (Ken Takata, 2013 Aug 12) Is this right? Patch to define it. (Ken Takata, 2013 Aug 12) Is this right?
Probably not: http://code.google.com/p/vim/issues/detail?id=167
MS-Windows: Patch to make tests copy files to avoid changing the fileformat of MS-Windows: Patch to make tests copy files to avoid changing the fileformat of
the files under version control. (Taro Muraoka, 2013 Jul 5) the files under version control. (Taro Muraoka, 2013 Jul 5)
@@ -992,8 +1022,6 @@ Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
Add v:motion_force. (Kana Natsuno, 2008 Dec 6) Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
Maybe call it v:motiontype. Maybe call it v:motiontype.
Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew" MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer
probably causes this. probably causes this.

View File

@@ -1,4 +1,4 @@
*undo.txt* For Vim version 7.4. Last change: 2013 Aug 22 *undo.txt* For Vim version 7.4. Last change: 2013 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -249,8 +249,9 @@ a simple scheme that maps filesystem paths directly to undo files. Vim will
detect if an undo file is no longer synchronized with the file it was written detect if an undo file is no longer synchronized with the file it was written
for (with a hash of the file contents) and ignore it when the file was changed for (with a hash of the file contents) and ignore it when the file was changed
after the undo file was written, to prevent corruption. An undo file is also after the undo file was written, to prevent corruption. An undo file is also
ignored if its owner differs from the owner of the edited file. Set 'verbose' ignored if its owner differs from the owner of the edited file, except when
to get a message about that when opening a file. the owner of the undo file is the current user. Set 'verbose' to get a
message about that when opening a file.
Undo files are normally saved in the same directory as the file. This can be Undo files are normally saved in the same directory as the file. This can be
changed with the 'undodir' option. changed with the 'undodir' option.

View File

@@ -328,8 +328,8 @@ actually use Vim to convert a file. Example: >
*45.5* Entering language text *45.5* Entering language text
Computer keyboards don't have much more than a hundred keys. Some languages Computer keyboards don't have much more than a hundred keys. Some languages
have thousands of characters, Unicode has ten thousands. So how do you type have thousands of characters, Unicode has over hundred thousand. So how do
these characters? you type these characters?
First of all, when you don't use too many of the special characters, you First of all, when you don't use too many of the special characters, you
can use digraphs. This was already explained in |24.9|. can use digraphs. This was already explained in |24.9|.
When you use a language that uses many more characters than keys on your When you use a language that uses many more characters than keys on your

View File

@@ -2020,7 +2020,7 @@ File browser added *file-browser-5.2*
The Win32, Athena and Motif GUI bring up a file requester if the user asks to The Win32, Athena and Motif GUI bring up a file requester if the user asks to
":browse" for the ":e", ":w", ":r", ":so", ":redirect" and ":browse" for the ":e", ":w", ":r", ":so", ":redirect" and
":mkexrc/vimrc/vsess" commands. ::browse e /foo/bar" opens the requester in ":mkexrc/vimrc/vsess" commands. ":browse e /foo/bar" opens the requester in
the /foo/bar directory, so you can have nice mapping rhs's like ":browse so the /foo/bar directory, so you can have nice mapping rhs's like ":browse so
$vim/macros". If no initial dir specified for ":browse e", can be compiled to $vim/macros". If no initial dir specified for ":browse e", can be compiled to
either begin in the current directory, or that of the current buffer. (Negri either begin in the current directory, or that of the current buffer. (Negri

View File

@@ -2395,7 +2395,7 @@ with special attributes were redrawn. Now only do this for characters that
actually are bold. Speeds up displaying considerably. actually are bold. Speeds up displaying considerably.
When only highlighting changes and the text is scrolled at the same time When only highlighting changes and the text is scrolled at the same time
everything is redraw instead of using a scroll and updating the changed text. everything is redrawn instead of using a scroll and updating the changed text.
E.g., when using ":match" to highlight a paren that the cursor landed on. E.g., when using ":match" to highlight a paren that the cursor landed on.
Added SOME_VALID: Redraw the whole window but also try to scroll to minimize Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
redrawing. redrawing.

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Aug 03 " Last Change: 2013 Sep 22
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@@ -129,7 +129,7 @@ au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf set
au BufNewFile,BufRead *.aml setf aml au BufNewFile,BufRead *.aml setf aml
" APT config file " APT config file
au BufNewFile,BufRead apt.conf setf aptconf au BufNewFile,BufRead apt.conf setf aptconf
au BufNewFile,BufRead */.aptitude/config setf aptconf au BufNewFile,BufRead */.aptitude/config setf aptconf
au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf
@@ -952,6 +952,9 @@ au BufNewFile,BufRead inittab setf inittab
" Inno Setup " Inno Setup
au BufNewFile,BufRead *.iss setf iss au BufNewFile,BufRead *.iss setf iss
" J
au BufNewFile,BufRead *.ijs setf j
" JAL " JAL
au BufNewFile,BufRead *.jal,*.JAL setf jal au BufNewFile,BufRead *.jal,*.JAL setf jal
@@ -2092,7 +2095,7 @@ au BufNewFile,BufRead *.tak setf tak
" Task " Task
au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata
au BufRead,BufNewFile *.task setf taskedit au BufRead,BufNewFile *.task setf taskedit
" Tcl (JACL too) " Tcl (JACL too)
au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl
@@ -2217,12 +2220,12 @@ au BufNewFile,BufRead *.uc setf uc
au BufNewFile,BufRead */etc/updatedb.conf setf updatedb au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
" Upstart (init(8)) config files " Upstart (init(8)) config files
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
au BufNewFile,BufRead */.config/upstart/*.override setf upstart au BufNewFile,BufRead */.config/upstart/*.override setf upstart
" Vera " Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera

View File

@@ -1,22 +1,23 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Clojure " Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de> " Author: Meikel Brandmeyer <mb@kotka.de>
" "
" Maintainer: Sung Pae <self@sungpae.com> " Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static " URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim " License: Same as Vim
" Last Change: 30 January 2013 " Last Change: 08 September 2013
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
endif endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
let b:undo_ftplugin = 'setlocal define< formatoptions< comments< commentstring<' let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring<'
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
" There will be false positives, but this is better than missing the whole set " There will be false positives, but this is better than missing the whole set
" of user-defined def* definitions. " of user-defined def* definitions.
@@ -35,10 +36,10 @@ setlocal commentstring=;\ %s
" 'completefunc' so that the user has some form of completion available when " 'completefunc' so that the user has some form of completion available when
" 'omnifunc' is set and no REPL connection exists. " 'omnifunc' is set and no REPL connection exists.
for s:setting in ['omnifunc', 'completefunc'] for s:setting in ['omnifunc', 'completefunc']
if exists('&' . s:setting) && empty(eval('&' . s:setting)) if exists('&' . s:setting) && empty(eval('&' . s:setting))
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete' execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<' let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
endif endif
endfor endfor
" Take all directories of the CLOJURE_SOURCE_DIRS environment variable " Take all directories of the CLOJURE_SOURCE_DIRS environment variable
@@ -46,34 +47,34 @@ endfor
" "
" This is a legacy option for VimClojure users. " This is a legacy option for VimClojure users.
if exists('$CLOJURE_SOURCE_DIRS') if exists('$CLOJURE_SOURCE_DIRS')
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':') for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
let s:dir = fnameescape(s:dir) let s:dir = fnameescape(s:dir)
" Whitespace escaping for Windows " Whitespace escaping for Windows
let s:dir = substitute(s:dir, '\', '\\\\', 'g') let s:dir = substitute(s:dir, '\', '\\\\', 'g')
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g') let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
execute "setlocal path+=" . s:dir . "/**" execute "setlocal path+=" . s:dir . "/**"
endfor endfor
let b:undo_ftplugin .= ' | setlocal path<' let b:undo_ftplugin .= ' | setlocal path<'
endif endif
" Skip brackets in ignored syntax regions when using the % command " Skip brackets in ignored syntax regions when using the % command
if exists('loaded_matchit') if exists('loaded_matchit')
let b:match_words = &matchpairs let b:match_words = &matchpairs
let b:match_skip = 's:comment\|string\|regex\|character' let b:match_skip = 's:comment\|string\|regex\|character'
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip' let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
endif endif
" Win32 can filter files in the browse dialog " Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter") if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" . let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" . \ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" . \ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n" \ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter' let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif endif
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet! s:cpo_save s:setting s:dir unlet! s:cpo_save s:setting s:dir
" vim:sts=4 sw=4 et: " vim:sts=8:sw=8:ts=8:noet

17
runtime/ftplugin/j.vim Normal file
View File

@@ -0,0 +1,17 @@
" Vim filetype plugin
" Language: J
" Maintainer: David Bürgin <676c7473@gmail.com>
" Last Change: 2013-09-21
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal iskeyword=48-57,65-90,_,97-122
setlocal comments=:NB.
setlocal commentstring=NB.\ %s
setlocal formatoptions-=t formatoptions+=croql
setlocal shiftwidth=2 softtabstop=2 expandtab
let b:undo_ftplugin = "setl et< sts< sw< fo< cms< com< isk<"

View File

@@ -1,16 +1,20 @@
" Vim indent file " Vim indent file
" Language: Clojure " Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de> " Author: Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html " URL: http://kotka.de/projects/clojure/vimclojure.html
" "
" Maintainer: Sung Pae <self@sungpae.com> " Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static " URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim " License: Same as Vim
" Last Change: 30 January 2013 " Last Change: 08 September 2013
" TODO: Indenting after multibyte characters is broken:
" (let [Δ (if foo
" bar ; Indent error
" baz)])
" Only load this indent file when no other was loaded.
if exists("b:did_indent") if exists("b:did_indent")
finish finish
endif endif
let b:did_indent = 1 let b:did_indent = 1
@@ -25,290 +29,277 @@ setlocal indentkeys=!,o,O
if exists("*searchpairpos") if exists("*searchpairpos")
if !exists('g:clojure_maxlines') if !exists('g:clojure_maxlines')
let g:clojure_maxlines = 100 let g:clojure_maxlines = 100
endif endif
if !exists('g:clojure_fuzzy_indent') if !exists('g:clojure_fuzzy_indent')
let g:clojure_fuzzy_indent = 1 let g:clojure_fuzzy_indent = 1
endif endif
if !exists('g:clojure_fuzzy_indent_patterns') if !exists('g:clojure_fuzzy_indent_patterns')
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let'] let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
endif endif
if !exists('g:clojure_fuzzy_indent_blacklist') if !exists('g:clojure_fuzzy_indent_blacklist')
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$'] let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
endif endif
if !exists('g:clojure_special_indent_words') if !exists('g:clojure_special_indent_words')
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn' let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
endif endif
if !exists('g:clojure_align_multiline_strings') if !exists('g:clojure_align_multiline_strings')
let g:clojure_align_multiline_strings = 0 let g:clojure_align_multiline_strings = 0
endif endif
function! s:SynIdName() function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name") return synIDattr(synID(line("."), col("."), 0), "name")
endfunction endfunction
function! s:CurrentChar() function! s:CurrentChar()
return getline('.')[col('.')-1] return getline('.')[col('.')-1]
endfunction endfunction
function! s:CurrentWord() function! s:CurrentWord()
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2] return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
endfunction endfunction
function! s:IsParen() function! s:IsParen()
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' && return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
\ s:SynIdName() !~? '\vstring|comment' \ s:SynIdName() !~? '\vstring|regex|comment|character'
endfunction endfunction
" Returns 1 if string matches a pattern in 'patterns', which may be a " Returns 1 if string matches a pattern in 'patterns', which may be a
" list of patterns, or a comma-delimited string of implicitly anchored " list of patterns, or a comma-delimited string of implicitly anchored
" patterns. " patterns.
function! s:MatchesOne(patterns, string) function! s:MatchesOne(patterns, string)
let list = type(a:patterns) == type([]) let list = type(a:patterns) == type([])
\ ? a:patterns \ ? a:patterns
\ : map(split(a:patterns, ','), '"^" . v:val . "$"') \ : map(split(a:patterns, ','), '"^" . v:val . "$"')
for pat in list for pat in list
if a:string =~ pat | return 1 | endif if a:string =~ pat | return 1 | endif
endfor endfor
endfunction endfunction
function! s:SavePosition() function! s:MatchPairs(open, close, stopat)
let [ _b, l, c, _o ] = getpos(".") " Stop only on vector and map [ resp. {. Ignore the ones in strings and
let b = bufnr("%") " comments.
return [b, l, c] if a:stopat == 0
endfunction let stopat = max([line(".") - g:clojure_maxlines, 0])
else
let stopat = a:stopat
endif
function! s:RestorePosition(value) let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
let [b, l, c] = a:value return [pos[0], virtcol(pos)]
if bufnr("%") != b endfunction
execute b "buffer!"
endif
call setpos(".", [0, l, c, 0])
endfunction
function! s:MatchPairs(open, close, stopat) function! s:ClojureCheckForStringWorker()
" Stop only on vector and map [ resp. {. Ignore the ones in strings and " Check whether there is the last character of the previous line is
" comments. " highlighted as a string. If so, we check whether it's a ". In this
if a:stopat == 0 " case we have to check also the previous character. The " might be the
let stopat = max([line(".") - g:clojure_maxlines, 0]) " closing one. In case the we are still in the string, we search for the
else " opening ". If this is not found we take the indent of the line.
let stopat = a:stopat let nb = prevnonblank(v:lnum - 1)
endif
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat) if nb == 0
return [pos[0], virtcol(pos)] return -1
endfunction endif
function! s:ClojureCheckForStringWorker() call cursor(nb, 0)
" Check whether there is the last character of the previous line is call cursor(0, col("$") - 1)
" highlighted as a string. If so, we check whether it's a ". In this if s:SynIdName() !~? "string"
" case we have to check also the previous character. The " might be the return -1
" closing one. In case the we are still in the string, we search for the endif
" opening ". If this is not found we take the indent of the line.
let nb = prevnonblank(v:lnum - 1)
if nb == 0 " This will not work for a " in the first column...
return -1 if s:CurrentChar() == '"'
endif call cursor(0, col("$") - 2)
if s:SynIdName() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
return -1
endif
call cursor(0, col("$") - 1)
endif
call cursor(nb, 0) let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
call cursor(0, col("$") - 1)
if s:SynIdName() !~? "string"
return -1
endif
" This will not work for a " in the first column... if p != [0, 0]
if s:CurrentChar() == '"' return p[1] - 1
call cursor(0, col("$") - 2) endif
if s:SynIdName() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
return -1
endif
call cursor(0, col("$") - 1)
endif
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW') return indent(".")
endfunction
if p != [0, 0] function! s:CheckForString()
return p[1] - 1 let pos = getpos('.')
endif try
let val = s:ClojureCheckForStringWorker()
finally
call setpos('.', pos)
endtry
return val
endfunction
return indent(".") function! s:ClojureIsMethodSpecialCaseWorker(position)
endfunction " Find the next enclosing form.
call search('\S', 'Wb')
function! s:CheckForString() " Special case: we are at a '(('.
let pos = s:SavePosition() if s:CurrentChar() == '('
try return 0
let val = s:ClojureCheckForStringWorker() endif
finally call cursor(a:position)
call s:RestorePosition(pos)
endtry
return val
endfunction
function! s:ClojureIsMethodSpecialCaseWorker(position) let nextParen = s:MatchPairs('(', ')', 0)
" Find the next enclosing form.
call search('\S', 'Wb')
" Special case: we are at a '(('. " Special case: we are now at toplevel.
if s:CurrentChar() == '(' if nextParen == [0, 0]
return 0 return 0
endif endif
call cursor(a:position) call cursor(nextParen)
let nextParen = s:MatchPairs('(', ')', 0) call search('\S', 'W')
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
return 1
endif
" Special case: we are now at toplevel. return 0
if nextParen == [0, 0] endfunction
return 0
endif
call cursor(nextParen)
call search('\S', 'W') function! s:IsMethodSpecialCase(position)
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>' let pos = getpos('.')
return 1 try
endif let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
finally
call setpos('.', pos)
endtry
return val
endfunction
return 0 function! GetClojureIndent()
endfunction " Get rid of special case.
if line(".") == 1
return 0
endif
function! s:IsMethodSpecialCase(position) " We have to apply some heuristics here to figure out, whether to use
let pos = s:SavePosition() " normal lisp indenting or not.
try let i = s:CheckForString()
let val = s:ClojureIsMethodSpecialCaseWorker(a:position) if i > -1
finally return i + !!g:clojure_align_multiline_strings
call s:RestorePosition(pos) endif
endtry
return val
endfunction
function! GetClojureIndent() call cursor(0, 1)
" Get rid of special case.
if line(".") == 1
return 0
endif
" We have to apply some heuristics here to figure out, whether to use " Find the next enclosing [ or {. We can limit the second search
" normal lisp indenting or not. " to the line, where the [ was found. If no [ was there this is
let i = s:CheckForString() " zero and we search for an enclosing {.
if i > -1 let paren = s:MatchPairs('(', ')', 0)
return i + !!g:clojure_align_multiline_strings let bracket = s:MatchPairs('\[', '\]', paren[0])
endif let curly = s:MatchPairs('{', '}', bracket[0])
call cursor(0, 1) " In case the curly brace is on a line later then the [ or - in
" case they are on the same line - in a higher column, we take the
" curly indent.
if curly[0] > bracket[0] || curly[1] > bracket[1]
if curly[0] > paren[0] || curly[1] > paren[1]
return curly[1]
endif
endif
" Find the next enclosing [ or {. We can limit the second search " If the curly was not chosen, we take the bracket indent - if
" to the line, where the [ was found. If no [ was there this is " there was one.
" zero and we search for an enclosing {. if bracket[0] > paren[0] || bracket[1] > paren[1]
let paren = s:MatchPairs('(', ')', 0) return bracket[1]
let bracket = s:MatchPairs('\[', '\]', paren[0]) endif
let curly = s:MatchPairs('{', '}', bracket[0])
" In case the curly brace is on a line later then the [ or - in " There are neither { nor [ nor (, ie. we are at the toplevel.
" case they are on the same line - in a higher column, we take the if paren == [0, 0]
" curly indent. return 0
if curly[0] > bracket[0] || curly[1] > bracket[1] endif
if curly[0] > paren[0] || curly[1] > paren[1]
return curly[1]
endif
endif
" If the curly was not chosen, we take the bracket indent - if " Now we have to reimplement lispindent. This is surprisingly easy, as
" there was one. " soon as one has access to syntax items.
if bracket[0] > paren[0] || bracket[1] > paren[1] "
return bracket[1] " - Check whether we are in a special position after a word in
endif " g:clojure_special_indent_words. These are special cases.
" - Get the next keyword after the (.
" - If its first character is also a (, we have another sexp and align
" one column to the right of the unmatched (.
" - In case it is in lispwords, we indent the next line to the column of
" the ( + sw.
" - If not, we check whether it is last word in the line. In that case
" we again use ( + sw for indent.
" - In any other case we use the column of the end of the word + 2.
call cursor(paren)
" There are neither { nor [ nor (, ie. we are at the toplevel. if s:IsMethodSpecialCase(paren)
if paren == [0, 0] return paren[1] + &shiftwidth - 1
return 0 endif
endif
" Now we have to reimplement lispindent. This is surprisingly easy, as " In case we are at the last character, we use the paren position.
" soon as one has access to syntax items. if col("$") - 1 == paren[1]
" return paren[1]
" - Check whether we are in a special position after a word in endif
" g:clojure_special_indent_words. These are special cases.
" - Get the next keyword after the (.
" - If its first character is also a (, we have another sexp and align
" one column to the right of the unmatched (.
" - In case it is in lispwords, we indent the next line to the column of
" the ( + sw.
" - If not, we check whether it is last word in the line. In that case
" we again use ( + sw for indent.
" - In any other case we use the column of the end of the word + 2.
call cursor(paren)
if s:IsMethodSpecialCase(paren) " In case after the paren is a whitespace, we search for the next word.
return paren[1] + &shiftwidth - 1 call cursor(0, col('.') + 1)
endif if s:CurrentChar() == ' '
call search('\v\S', 'W')
endif
" In case we are at the last character, we use the paren position. " If we moved to another line, there is no word after the (. We
if col("$") - 1 == paren[1] " use the ( position for indent.
return paren[1] if line(".") > paren[0]
endif return paren[1]
endif
" In case after the paren is a whitespace, we search for the next word. " We still have to check, whether the keyword starts with a (, [ or {.
normal! l " In that case we use the ( position for indent.
if s:CurrentChar() == ' ' let w = s:CurrentWord()
normal! w if stridx('([{', w[0]) > -1
endif return paren[1]
endif
" If we moved to another line, there is no word after the (. We " Test words without namespace qualifiers and leading reader macro
" use the ( position for indent. " metacharacters.
if line(".") > paren[0] "
return paren[1] " e.g. clojure.core/defn and #'defn should both indent like defn.
endif let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
" We still have to check, whether the keyword starts with a (, [ or {. if &lispwords =~ '\V\<' . ww . '\>'
" In that case we use the ( position for indent. return paren[1] + &shiftwidth - 1
let w = s:CurrentWord() endif
if stridx('([{', w[0]) > -1
return paren[1]
endif
" Test words without namespace qualifiers and leading reader macro if g:clojure_fuzzy_indent
" metacharacters. \ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
" \ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
" e.g. clojure.core/defn and #'defn should both indent like defn. return paren[1] + &shiftwidth - 1
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '') endif
if &lispwords =~ '\V\<' . ww . '\>' call search('\v\_s', 'cW')
return paren[1] + &shiftwidth - 1 call search('\v\S', 'W')
endif if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
endif
if g:clojure_fuzzy_indent call search('\v\S', 'bW')
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww) return virtcol(".") + 1
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww) endfunction
return paren[1] + &shiftwidth - 1
endif
normal! W setlocal indentexpr=GetClojureIndent()
if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
endif
normal! ge
return virtcol(".") + 1
endfunction
setlocal indentexpr=GetClojureIndent()
else else
" In case we have searchpairpos not available we fall back to " In case we have searchpairpos not available we fall back to
" normal lisp indenting. " normal lisp indenting.
setlocal indentexpr= setlocal indentexpr=
setlocal lisp setlocal lisp
let b:undo_indent .= '| setlocal lisp<' let b:undo_indent .= '| setlocal lisp<'
endif endif
@@ -390,9 +381,8 @@ setlocal lispwords+=while
" Exception handling " Exception handling
setlocal lispwords+=catch setlocal lispwords+=catch
setlocal lispwords+=try " For aesthetics when enclosing single line
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet! s:save_cpo unlet! s:save_cpo
" vim:sts=4 sw=4 et: " vim:sts=8:sw=8:ts=8:noet

37
runtime/indent/j.vim Normal file
View File

@@ -0,0 +1,37 @@
" Vim indent file
" Language: J
" Maintainer: David Bürgin <676c7473@gmail.com>
" Last Change: 2013-09-21
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetJIndent()
setlocal indentkeys-=0{,0},\:,0#
setlocal indentkeys+=0),=case.,=catch.,=catchd.,=catcht.,=do.,=else.,=elseif.,=end.,=fcase.
let b:undo_indent = "setl indk< inde<"
if exists("*GetJIndent")
finish
endif
function GetJIndent()
let prevlnum = prevnonblank(v:lnum-1)
if prevlnum == 0
return 0
endif
let indent = indent(prevlnum)
if getline(prevlnum) =~# '^\s*\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|fcase\|for\%(_\a\k*\)\=\|if\|select\|try\|whil\%(e\|st\)\)\.'
if getline(prevlnum) !~# '\<end\.'
let indent += &shiftwidth
endif
endif
if getline(v:lnum) =~# '^\s*\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|end\|fcase\)\.'
let indent -= &shiftwidth
endif
return indent
endfunction

View File

@@ -1,11 +1,9 @@
" Vim syntax file " Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: Apache configuration (httpd.conf, srm.conf, access.conf, .htaccess) " Language: Apache configuration (httpd.conf, srm.conf, access.conf, .htaccess)
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz> " Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" License: This file can be redistribued and/or modified under the same terms " License: This file can be redistribued and/or modified under the same terms
" as Vim itself. " as Vim itself.
" Last Change: 2006-12-13 " Last Change: 2013-09-16
" URL: http://trific.ath.cx/Ftp/vim/syntax/apache.vim
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported " Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
" TODO: see particular FIXME's scattered through the file " TODO: see particular FIXME's scattered through the file
" make it really linewise? " make it really linewise?
@@ -30,7 +28,10 @@ syn keyword apacheFixme FIXME TODO XXX NOT
syn case ignore syn case ignore
syn match apacheAnything "\s[^>]*" contained syn match apacheAnything "\s[^>]*" contained
syn match apacheError "\w\+" contained syn match apacheError "\w\+" contained
syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+ syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+ oneline
" Following is to prevent escaped quotes from being parsed as strings.
syn match apacheSkipQuote +\\"+
" Core and mpm " Core and mpm
syn keyword apacheDeclaration AccessFileName AddDefaultCharset AllowOverride AuthName AuthType ContentDigest DefaultType DocumentRoot ErrorDocument ErrorLog HostNameLookups IdentityCheck Include KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens TimeOut UseCanonicalName syn keyword apacheDeclaration AccessFileName AddDefaultCharset AllowOverride AuthName AuthType ContentDigest DefaultType DocumentRoot ErrorDocument ErrorLog HostNameLookups IdentityCheck Include KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens TimeOut UseCanonicalName

File diff suppressed because one or more lines are too long

View File

@@ -6,7 +6,7 @@
" Nikolai Weibull (Add CSS2 support) " Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com> " Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim " URL: https://github.com/JulesWang/css.vim
" Last Change: 2013 Jul 23 " Last Change: 2013 Aug 28
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@@ -21,6 +21,9 @@ elseif exists("b:current_syntax") && b:current_syntax == "css"
finish finish
endif endif
" Required for cssHacks
setlocal iskeyword-=_
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
@@ -37,12 +40,12 @@ syn keyword cssTagName link map menu meta noframes noscript ol optgroup
syn keyword cssTagName option p param pre q s samp script select small syn keyword cssTagName option p param pre q s samp script select small
syn keyword cssTagName span strike strong style sub sup table tbody td syn keyword cssTagName span strike strong style sub sup table tbody td
syn keyword cssTagName textarea tfoot th thead title tr tt ul u var syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
syn keyword cssTagName object syn keyword cssTagName object svg
" HTML5 new tags 5*6=30 " 34 HTML5 tags
syn keyword cssTagName article aside audio bdi canvas command syn keyword cssTagName article aside audio bdi canvas command data
syn keyword cssTagName datalist details embed figcaption figure footer syn keyword cssTagName datalist details dialog embed figcaption figure footer
syn keyword cssTagName header hgroup keygen mark meter nav syn keyword cssTagName header hgroup keygen main mark menuitem meter nav
syn keyword cssTagName output progress rt rp ruby section syn keyword cssTagName output progress rt rp ruby section
syn keyword cssTagName source summary time track video wbr syn keyword cssTagName source summary time track video wbr
@@ -50,14 +53,12 @@ syn keyword cssTagName source summary time track video wbr
syn keyword cssDeprecated acronym applet basefont big center dir syn keyword cssDeprecated acronym applet basefont big center dir
syn keyword cssDeprecated font frame frameset noframes strike tt syn keyword cssDeprecated font frame frameset noframes strike tt
"syn match cssTagName "\<table\>"
syn match cssTagName "\*" syn match cssTagName "\*"
" selectors " selectors
syn match cssSelectorOp "[,>+]" syn match cssSelectorOp "[,>+~]"
syn match cssSelectorOp2 "[~|^$*]\?=" contained syn match cssSelectorOp2 "[~|^$*]\?=" contained
" FIXME: add HTML5 attribute syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
" .class and #id " .class and #id
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
@@ -68,26 +69,57 @@ catch /^.*/
syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
endtry endtry
syn match cssTagName "@page\>" nextgroup=cssDefinition " digits
" FIXME: use cssVendor here syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
syn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)" contains=cssUnitDecorators
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" contains=cssUnitDecorators
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" contains=cssUnitDecorators
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" contains=cssUnitDecorators
syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
syn match cssValueInteger contained "[-+]\=\d\+" " @media
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" syn match cssMedia "@media\>" nextgroup=cssMediaType,cssMediaFeature,cssMediaBlock,cssMediaComma,cssMediaKeyword2 skipwhite skipnl
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)" syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv all contained skipwhite skipnl nextgroup=cssMediaFeature,cssMediaBlock
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" syn match cssMediaFeature /\(and\)\=\s*(.\{-})/ contained skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor nextgroup=cssMediaFeature,cssMediaBlock,cssMediaComma
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" syn keyword cssMediaKeyword and contained
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" syn keyword cssMediaKeyword2 only not contained nextgroup=cssMediaType skipwhite skipnl
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
syn match cssMediaComma "," nextgroup=cssMediaType,cssMediaKeyword2 skipwhite skipnl contained
" Reference: http://www.w3.org/TR/css3-mediaqueries/
syn keyword cssMediaProp contained width height orientation monochrome scan grid
syn match cssMediaProp contained /\(\(device\)-\)\=aspect-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|color\(-index\)\=\)/
syn keyword cssMediaAttr contained portrait landscape progressive interlace
" @page
syn match cssPage "@page\>" nextgroup=cssPagePseudo,cssDefinition skipwhite skipnl
syn match cssPagePseudo /:\(left\|right\|first\|\)/ nextgroup=cssDefinition contained skipwhite skipnl
syn match cssPageHeaderProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained
syn keyword cssPageProp content size contained
" @keyframe
syn match cssKeyFrame "@\(-.*-\)\=keyframes\>\(\s*\<\S*\>\)\=" nextgroup=cssKeyFrameBlock contains=cssVendor skipwhite skipnl
syn region cssKeyFrameBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector,cssDefinition
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl
" @import
syn region cssInclude start=/@import\>/ end=/\ze;/ contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType,cssStringQ,cssStringQQ
syn region cssInclude start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment
syn region cssInclude start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment
" @font-face
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>" "syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline "syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
syn keyword cssFontDescriptorProp contained src
syn match cssFontDescriptorProp contained "\<unicode-range\>"
syn keyword cssFontDescriptorAttr contained all syn keyword cssFontDescriptorAttr contained all
syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+" syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
@@ -124,7 +156,7 @@ syn keyword cssColor contained slategray slategrey snow springgreen steelblue ta
syn keyword cssColor contained thistle tomato turquoise violet wheat syn keyword cssColor contained thistle tomato turquoise violet wheat
syn keyword cssColor contained whitesmoke yellowgreen syn keyword cssColor contained whitesmoke yellowgreen
" FIXME: These are actually case-insentivie too, but (a) specs recommend using " FIXME: These are actually case-insensitive too, but (a) specs recommend using
" mixed-case (b) it's hard to highlight the word `Background' correctly in " mixed-case (b) it's hard to highlight the word `Background' correctly in
" all situations " all situations
syn case match syn case match
@@ -135,48 +167,73 @@ syn match cssImportant contained "!\s*important\>"
syn match cssColor contained "\<transparent\>" syn match cssColor contained "\<transparent\>"
syn match cssColor contained "\<white\>" syn match cssColor contained "\<white\>"
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline extend
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y|\Z\)\=\|translate\(3d\|X\|Y|\Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y|\Z\)\=\|perspective\)\s*(" end=")" oneline keepend syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
syn match cssFunctionComma contained ","
" Prop and Attr " Common Prop and Attr
" Reference: http://www.w3schools.com/cssref/default.asp syn keyword cssCommonAttr contained auto none inherit all default normal
syn keyword cssCommonAttr contained auto none inherit all syn keyword cssCommonAttr contained top bottom center stretch hidden visible
syn keyword cssCommonAttr contained top bottom "------------------------------------------------
syn keyword cssCommonAttr contained medium normal " CSS Animations
" http://www.w3.org/TR/css3-animations/
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\)\)\=\>"
" animation-direction attributes
syn keyword cssAnimationAttr contained alternate reverse
syn match cssAnimationAttr contained "\<alternate-reverse\>"
syn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>" " animation-fill-mode attributes
syn keyword cssAnimationAttr contained forwards backwards both
" animation-play-state attributes
syn keyword cssAnimationAttr contained running paused
"------------------------------------------------
" CSS Backgrounds and Borders Module Level 3
" http://www.w3.org/TR/css3-background/
syn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
" background-attachment attributes
syn keyword cssBackgroundAttr contained scroll fixed local
syn keyword cssAnimationAttr contained infinite alternate paused running " background-position attributes
" bugfix: escape linear-gradient syn keyword cssBackgroundAttr contained left center right top bottom
syn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
syn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
syn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>" " background-repeat attributes
syn keyword cssBackgroundAttr contained center fixed over contain
syn match cssBackgroundAttr contained "\<no-repeat\>" syn match cssBackgroundAttr contained "\<no-repeat\>"
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>" syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
syn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>" syn keyword cssBackgroundAttr contained space round
" background-size attributes
syn keyword cssBackgroundAttr contained cover contain
syn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>" syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
syn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>" syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
syn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>" syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
syn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>" syn match cssBorderProp contained "\<box-decoration-break\>"
syn match cssBorderOutlineProp contained "\<border-radius\>" syn match cssBorderProp contained "\<box-shadow\>"
syn keyword cssBorderOutlineAttr contained thin thick medium
syn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
syn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
syn keyword cssBorderOutlineAttr contained stretch round
" border-image attributes
syn keyword cssBorderAttr contained stretch repeat round space fill
" border-style attributes
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
" border-width attributes
syn keyword cssBorderAttr contained thin thick medium
" box-decoration-break attributes
syn keyword cssBorderAttr contained clone slice
"------------------------------------------------
syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>" syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
syn match cssBoxProp contained "\<rotation\(-point\)=\>" syn match cssBoxProp contained "\<rotation\(-point\)=\>"
syn keyword cssBoxAttr contained visible hidden scroll auto syn keyword cssBoxAttr contained visible hidden scroll auto
@@ -193,30 +250,51 @@ syn keyword cssDimensionProp contained width
" shadow and sizing are in other property groups " shadow and sizing are in other property groups
syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>" syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
syn keyword cssFlexibleBoxAttr contained start end center baseline stretch syn keyword cssFlexibleBoxAttr contained start end baseline
syn keyword cssFlexibleBoxAttr contained normal reverse syn keyword cssFlexibleBoxAttr contained reverse
syn keyword cssFlexibleBoxAttr contained single mulitple syn keyword cssFlexibleBoxAttr contained single mulitple
syn keyword cssFlexibleBoxAttr contained horizontal syn keyword cssFlexibleBoxAttr contained horizontal
" bugfix: escape vertial-align syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>" syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
" CSS Fonts Module Level 3
syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>" " http://www.w3.org/TR/css-fonts-3/
syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>" syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>"
syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>" " font attributes
syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>" syn keyword cssFontAttr contained icon menu caption
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
syn match cssFontAttr contained "\<message-box\>" syn match cssFontAttr contained "\<message-box\>"
syn match cssFontAttr contained "\<status-bar\>" syn match cssFontAttr contained "\<status-bar\>"
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>" syn keyword cssFontAttr contained larger smaller
syn keyword cssFontAttr contained cursive fantasy monospace italic oblique syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
syn keyword cssFontAttr contained bold bolder light lighter larger smaller
syn keyword cssFontAttr contained icon menu caption
syn keyword cssFontAttr contained large smaller larger narrower wider
syn keyword cssFontAttr contained Courier Arial Georgia Times
" font-family attributes
syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Unicode Verdana Webdings Wingdings York Zapf
syn keyword cssFontAttr contained cursive fantasy monospace
syn keyword cssGeneratedContentProp contained content quotes crop " font-feature-settings attributes
syn keyword cssFontAttr contained on off
" font-stretch attributes
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
" font-style attributes
syn keyword cssFontAttr contained italic oblique
" font-variant-caps attributes
syn match cssFontAttr contained "\<\(all-\)\=\(small-\|petite-\|titling-\)caps\>"
syn keyword cssFontAttr contained unicase
" font-weight attributes
syn keyword cssFontAttr contained bold bolder lighter
"------------------------------------------------
" Webkit specific property/attributes
syn match cssFontProp contained "\<font-smooth\>"
syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
syn keyword cssGeneratedContentProp contained quotes crop
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>" syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
syn match cssGeneratedContentProp contained "\<move-to\>" syn match cssGeneratedContentProp contained "\<move-to\>"
syn match cssGeneratedContentProp contained "\<page-policy\>" syn match cssGeneratedContentProp contained "\<page-policy\>"
@@ -234,22 +312,16 @@ syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic
syn keyword cssListAttr contained disc circle square hebrew armenian georgian syn keyword cssListAttr contained disc circle square hebrew armenian georgian
syn keyword cssListAttr contained inside outside syn keyword cssListAttr contained inside outside
syn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>" syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
syn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
syn keyword cssPositioningProp contained bottom clear clip display float left syn keyword cssPositioningProp contained bottom clear clip display float left
syn keyword cssPositioningProp contained position right top visibility syn keyword cssPositioningProp contained position right top visibility
syn match cssPositioningProp contained "\<z-index\>" syn match cssPositioningProp contained "\<z-index\>"
syn keyword cssPositioningAttr contained block inline compact syn keyword cssPositioningAttr contained block compact
syn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>" syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
syn keyword cssPositioningAttr contained left right both syn keyword cssPositioningAttr contained left right both
syn match cssPositioningAttr contained "\<list-item\>" syn match cssPositioningAttr contained "\<list-item\>"
syn match cssPositioningAttr contained "\<inline-\(block\|table\)\>" syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>"
syn keyword cssPositioningAttr contained static relative absolute fixed syn keyword cssPositioningAttr contained static relative absolute fixed
syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>" syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
@@ -262,18 +334,18 @@ syn keyword cssTableAttr contained fixed collapse separate show hide once always
syn keyword cssTextProp contained color direction syn keyword cssTextProp contained color direction
syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
syn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>" syn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
syn match cssTextProp contained "\<word-\(break\|\wrap\)\>" syn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
syn match cssTextProp contained "\<white-space\>" syn match cssTextProp contained "\<white-space\>"
syn match cssTextProp contained "\<hanging-punctuation\>" syn match cssTextProp contained "\<hanging-punctuation\>"
syn match cssTextProp contained "\<punctuation-trim\>" syn match cssTextProp contained "\<punctuation-trim\>"
syn match cssTextAttr contained "\<line-through\>" syn match cssTextAttr contained "\<line-through\>"
syn match cssTextAttr contained "\<text-indent\>"
syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
syn keyword cssTextAttr contained ltr rtl embed nowrap syn keyword cssTextAttr contained ltr rtl embed nowrap
syn keyword cssTextAttr contained underline overline blink sub super middle syn keyword cssTextAttr contained underline overline blink sub super middle
syn keyword cssTextAttr contained capitalize uppercase lowercase syn keyword cssTextAttr contained capitalize uppercase lowercase
syn keyword cssTextAttr contained center justify baseline sub super syn keyword cssTextAttr contained justify baseline sub super
syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed
syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>" syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
syn match cssTextAttr contained "\<\(allow\|force\)-end\>" syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
syn keyword cssTextAttr contained start end adjacent syn keyword cssTextAttr contained start end adjacent
@@ -283,22 +355,69 @@ syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
syn match cssTextAttr contained "\<break-all\>" syn match cssTextAttr contained "\<break-all\>"
syn match cssTextAttr contained "\<break-word\>" syn match cssTextAttr contained "\<break-word\>"
syn keyword cssTextAttr contained hyphenate syn keyword cssTextAttr contained hyphenate
syn match cssTextAttr contained "\<bidi-override\>"
syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>" syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
syn match cssTransformProp contained "\<perspective\(-origin\)\=\>" syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
syn match cssTransformProp contained "\<backface-visibility\>" syn match cssTransformProp contained "\<backface-visibility\>"
" CSS Transitions
" http://www.w3.org/TR/css3-transitions/
syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>" syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>" " transition-time-function attributes
syn match cssUIProp contained "\<outline-offset\>" syn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
syn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
syn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
"------------------------------------------------
" CSS Basic User Interface Module Level 3 (CSS3 UI)
" http://www.w3.org/TR/css3-ui/
syn match cssUIProp contained "\<box-sizing\>" syn match cssUIProp contained "\<box-sizing\>"
syn keyword cssUIProp contained appearance icon resize syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
syn keyword cssUIAttr contained window button menu field
syn keyword cssUIProp contained cursor
syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
syn keyword cssUIAttr contained crosshair help move pointer alias copy
syn keyword cssUIAttr contained progress wait text cell move
syn match cssUIAttr contained "\<context-menu\>"
syn match cssUIAttr contained "\<no-drop\>"
syn match cssUIAttr contained "\<not-allowed\>"
syn match cssUIAttr contained "\<all-scroll\>"
syn match cssUIAttr contained "\<\(vertical-\)\=text\>"
syn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"
syn match cssUIProp contained "\<ime-mode\>"
syn keyword cssUIAttr contained active inactive disabled
syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
syn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
syn keyword cssUIAttr contained invert
syn keyword cssUIProp contained icon resize
syn keyword cssUIAttr contained both horizontal vertical
syn match cssUIProp contained "\<text-overflow\>"
syn keyword cssUIAttr contained clip ellipsis
" Already highlighted Props: font content
"------------------------------------------------
" Webkit/iOS specific attributes
syn match cssUIAttr contained '\(preserve-3d\)'
" IE specific attributes
syn match cssIEUIAttr contained '\(bicubic\)'
" Webkit/iOS specific properties
syn match cssUIProp contained '\(tap-highlight-color\|user-select\|touch-callout\)'
" IE specific properties
syn match cssIEUIProp contained '\(interpolation-mode\|zoom\|filter\)'
" Webkit/Firebox specific properties/attributes
syn keyword cssUIProp contained appearance
syn keyword cssUIAttr contained window button field icon document menu
syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>" syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
syn keyword cssAuralProp contained volume during azimuth elevation stress richness syn keyword cssAuralProp contained volume during azimuth elevation stress richness
syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
syn keyword cssAuralAttr contained silent syn keyword cssAuralAttr contained silent
@@ -307,48 +426,39 @@ syn keyword cssAuralAttr contained non mix
syn match cssAuralAttr contained "\<\(left\|right\)-side\>" syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
syn keyword cssAuralAttr contained leftwards rightwards behind syn keyword cssAuralAttr contained leftwards rightwards behind
syn keyword cssAuralAttr contained below level above higher syn keyword cssAuralAttr contained below level above lower higher
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>" syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
syn keyword cssAuralAttr contained faster slower syn keyword cssAuralAttr contained faster slower
syn keyword cssAuralAttr contained male female child code digits continuous syn keyword cssAuralAttr contained male female child code digits continuous
syn match cssAuralAttr contained "\<lower\>"
" cursor " mobile text
syn keyword cssUIProp contained cursor syn match cssMobileTextProp contained "\<text-size-adjust\>"
syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
syn keyword cssUIAttr contained crosshair default help move pointer
syn keyword cssUIAttr contained progress wait
" FIXME: I could not find them in reference
syn keyword cssUIAttr contained invert maker size zoom
syn match cssRenderAttr contained "\<run-in\>"
syn match cssRenderAttr contained "\<text-rendering\>"
syn match cssRenderAttr contained "\<font-smoothing\>"
syn match cssRenderProp contained "\<marker-offset\>"
syn match cssRenderAttr contained "\<bidi-override\>"
" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
syn match cssBraces contained "[{}]" syn match cssBraces contained "[{}]"
syn match cssError contained "{@<>" syn match cssError contained "{@<>"
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks keepend fold
syn match cssBraceError "}" syn match cssBraceError "}"
syn match cssAttrComma ","
" Pseudo class " Pseudo class
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape " http://www.w3.org/TR/css3-selectors/
syn keyword cssPseudoClassId link visited active hover focus before after left right lang syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>" syn keyword cssPseudoClassId contained link visited active hover before after left right
" FIXME: handle functions. syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")" syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
syn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>" syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
syn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>" syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")"
syn keyword cssPseudoClassId root empty target enable disabled checked not invalid " ------------------------------------
syn match cssPseudoClassId contained "::\(-moz-\)\=selection" " Vendor specific properties
syn match cssPseudoClassId contained "\<selection\>"
syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
" Comment " Comment
syn region cssComment start="/\*" end="\*/" contains=@Spell syn region cssComment start="/\*" end="\*/" contains=@Spell
syn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
syn match cssUnicodeEscape "\\\x\{1,6}\s\?" syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
syn match cssSpecialCharQQ +\\"+ contained syn match cssSpecialCharQQ +\\"+ contained
@@ -359,6 +469,26 @@ syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEsca
" Vendor Prefix " Vendor Prefix
syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)" syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
" Various CSS Hack characters
" In earlier versions of IE (6 and 7), one can prefix property names
" with a _ or * to isolate those definitions to particular versions of IE
" This is purely decorative and therefore we assign to the same highlight
" group to cssVendor, for more information:
" http://www.paulirish.com/2009/browser-specific-css-hacks/
syn match cssHacks contained /\(_\|*\)/
" Misc highlight groups
syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
syntax match cssNoise contained /\(:\|;\|\/\)/
" Attr Enhance
" Some keywords are both Prop and Attr, so we have to handle them
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
" Hack for transition
" The 'transition' Prop has Props after ':'.
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
if main_syntax == "css" if main_syntax == "css"
syn sync minlines=10 syn sync minlines=10
@@ -377,73 +507,76 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssComment Comment HiLink cssComment Comment
HiLink cssVendor Comment HiLink cssVendor Comment
HiLink cssHacks Comment
HiLink cssTagName Statement HiLink cssTagName Statement
HiLink cssDeprecated Error HiLink cssDeprecated Error
HiLink cssSelectorOp Special HiLink cssSelectorOp Special
HiLink cssSelectorOp2 Special HiLink cssSelectorOp2 Special
HiLink cssAttrComma Special
HiLink cssAnimationProp StorageClass HiLink cssAnimationProp cssProp
HiLink cssBackgroundProp StorageClass HiLink cssBackgroundProp cssProp
HiLink cssBorderOutlineProp StorageClass HiLink cssBorderProp cssProp
HiLink cssBoxProp StorageClass HiLink cssBoxProp cssProp
HiLink cssColorProp StorageClass HiLink cssColorProp cssProp
HiLink cssContentForPagedMediaProp StorageClass HiLink cssContentForPagedMediaProp cssProp
HiLink cssDimensionProp StorageClass HiLink cssDimensionProp cssProp
HiLink cssFlexibleBoxProp StorageClass HiLink cssFlexibleBoxProp cssProp
HiLink cssFontProp StorageClass HiLink cssFontProp cssProp
HiLink cssGeneratedContentProp StorageClass HiLink cssGeneratedContentProp cssProp
HiLink cssGridProp StorageClass HiLink cssGridProp cssProp
HiLink cssHyerlinkProp StorageClass HiLink cssHyerlinkProp cssProp
HiLink cssLineboxProp StorageClass HiLink cssLineboxProp cssProp
HiLink cssListProp StorageClass HiLink cssListProp cssProp
HiLink cssMarginProp StorageClass HiLink cssMarqueeProp cssProp
HiLink cssMarqueeProp StorageClass HiLink cssMultiColumnProp cssProp
HiLink cssMultiColumnProp StorageClass HiLink cssPagedMediaProp cssProp
HiLink cssPaddingProp StorageClass HiLink cssPositioningProp cssProp
HiLink cssPagedMediaProp StorageClass HiLink cssPrintProp cssProp
HiLink cssPositioningProp StorageClass HiLink cssRubyProp cssProp
HiLink cssPrintProp StorageClass HiLink cssSpeechProp cssProp
HiLink cssRubyProp StorageClass HiLink cssTableProp cssProp
HiLink cssSpeechProp StorageClass HiLink cssTextProp cssProp
HiLink cssTableProp StorageClass HiLink cssTransformProp cssProp
HiLink cssTextProp StorageClass HiLink cssTransitionProp cssProp
HiLink cssTransformProp StorageClass HiLink cssUIProp cssProp
HiLink cssTransitionProp StorageClass HiLink cssIEUIProp cssProp
HiLink cssUIProp StorageClass HiLink cssAuralProp cssProp
HiLink cssAuralProp StorageClass HiLink cssRenderProp cssProp
HiLink cssRenderProp StorageClass HiLink cssMobileTextProp cssProp
HiLink cssAnimationAttr Type HiLink cssAnimationAttr cssAttr
HiLink cssBackgroundAttr Type HiLink cssBackgroundAttr cssAttr
HiLink cssBorderOutlineAttr Type HiLink cssBorderAttr cssAttr
HiLink cssBoxAttr Type HiLink cssBoxAttr cssAttr
HiLink cssColorAttr Type HiLink cssContentForPagedMediaAttr cssAttr
HiLink cssContentForPagedMediaAttr Type HiLink cssDimensionAttr cssAttr
HiLink cssDimensionAttr Type HiLink cssFlexibleBoxAttr cssAttr
HiLink cssFlexibleBoxAttr Type HiLink cssFontAttr cssAttr
HiLink cssFontAttr Type HiLink cssGeneratedContentAttr cssAttr
HiLink cssGeneratedContentAttr Type HiLink cssGridAttr cssAttr
HiLink cssGridAttr Type HiLink cssHyerlinkAttr cssAttr
HiLink cssHyerlinkAttr Type HiLink cssLineboxAttr cssAttr
HiLink cssLineboxAttr Type HiLink cssListAttr cssAttr
HiLink cssListAttr Type HiLink cssMarginAttr cssAttr
HiLink cssMarginAttr Type HiLink cssMarqueeAttr cssAttr
HiLink cssMarqueeAttr Type HiLink cssMultiColumnAttr cssAttr
HiLink cssMultiColumnAttr Type HiLink cssPaddingAttr cssAttr
HiLink cssPaddingAttr Type HiLink cssPagedMediaAttr cssAttr
HiLink cssPagedMediaAttr Type HiLink cssPositioningAttr cssAttr
HiLink cssPositioningAttr Type HiLink cssGradientAttr cssAttr
HiLink cssPrintAttr Type HiLink cssPrintAttr cssAttr
HiLink cssRubyAttr Type HiLink cssRubyAttr cssAttr
HiLink cssSpeechAttr Type HiLink cssSpeechAttr cssAttr
HiLink cssTableAttr Type HiLink cssTableAttr cssAttr
HiLink cssTextAttr Type HiLink cssTextAttr cssAttr
HiLink cssTransformAttr Type HiLink cssTransformAttr cssAttr
HiLink cssTransitionAttr Type HiLink cssTransitionAttr cssAttr
HiLink cssUIAttr Type HiLink cssUIAttr cssAttr
HiLink cssAuralAttr Type HiLink cssIEUIAttr cssAttr
HiLink cssRenderAttr Type HiLink cssAuralAttr cssAttr
HiLink cssCommonAttr Type HiLink cssRenderAttr cssAttr
HiLink cssCommonAttr cssAttr
HiLink cssPseudoClassId PreProc HiLink cssPseudoClassId PreProc
HiLink cssPseudoClassLang Constant HiLink cssPseudoClassLang Constant
@@ -456,6 +589,7 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssFunction Constant HiLink cssFunction Constant
HiLink cssURL String HiLink cssURL String
HiLink cssFunctionName Function HiLink cssFunctionName Function
HiLink cssFunctionComma Function
HiLink cssColor Constant HiLink cssColor Constant
HiLink cssIdentifier Function HiLink cssIdentifier Function
HiLink cssInclude Include HiLink cssInclude Include
@@ -467,15 +601,31 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssUnicodeEscape Special HiLink cssUnicodeEscape Special
HiLink cssStringQQ String HiLink cssStringQQ String
HiLink cssStringQ String HiLink cssStringQ String
HiLink cssAttributeSelector String
HiLink cssMedia Special HiLink cssMedia Special
HiLink cssMediaType Special HiLink cssMediaType Special
HiLink cssMediaComma Normal HiLink cssMediaComma Normal
HiLink cssMediaFeature Normal
HiLink cssMediaKeyword Statement
HiLink cssMediaKeyword2 Statement
HiLink cssMediaProp cssProp
HiLink cssMediaAttr cssAttr
HiLink cssPage Special
HiLink cssPagePseudo PreProc
HiLink cssPageHeaderProp PreProc
HiLink cssPageProp cssProp
HiLink cssKeyFrame Special
HiLink cssKeyFrameSelector Constant
HiLink cssFontDescriptor Special HiLink cssFontDescriptor Special
HiLink cssFontDescriptorFunction Constant HiLink cssFontDescriptorFunction Constant
HiLink cssFontDescriptorProp StorageClass HiLink cssFontDescriptorProp cssProp
HiLink cssFontDescriptorAttr Type HiLink cssFontDescriptorAttr cssAttr
HiLink cssUnicodeRange Constant HiLink cssUnicodeRange Constant
HiLink cssClassName Function HiLink cssClassName Function
HiLink cssProp StorageClass
HiLink cssAttr Constant
HiLink cssUnitDecorators Number
HiLink cssNoise Noise
delcommand HiLink delcommand HiLink
endif endif

View File

@@ -1,751 +1,213 @@
" Vim syntax file " Vim syntax file
" Language: dircolors(1) input file " Language: dircolors(1) input file
" Maintainer: Nikolai Weibull <now@bitwi.se> " Maintainer: Jan Larres <jan@majutsushi.net>
" Latest Revision: 2012-04-25 " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2013-08-17
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
endif endif
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
syn keyword dircolorsTodo contained FIXME TODO XXX NOTE syntax keyword dircolorsTodo FIXME TODO XXX NOTE contained
syn region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell syntax region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell
syn keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE syntax keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE
syn keyword dircolorsKeyword NORMAL NORM FILE DIR LNK LINK SYMLINK ORPHAN syntax keyword dircolorsKeyword NORMAL NORM FILE RESET DIR LNK LINK SYMLINK
\ RESET MULTIHARDLINK CAPABILITY SETUID SETGID \ MULTIHARDLINK FIFO SOCK DOOR BLK CHR ORPHAN
\ STICKY STICKY_OTHER_WRITABLE OTHER_WRITABLE \ MISSING PIPE BLOCK CHR EXEC SETUID SETGID
\ MISSING FIFO PIPE SOCK BLK BLOCK CHR CHAR \ CAPABILITY STICKY_OTHER_WRITABLE
\ DOOR EXEC \ OTHER_WRITABLE STICKY
\ nextgroup=@dircolorsColors skipwhite
if exists("dircolors_is_slackware") " Slackware only, ignored by GNU dircolors.
syn keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT syntax keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
syntax match dircolorsExtension '^\s*\zs[.*]\S\+'
syntax match dircolorsEscape '\\[abefnrtv?_\\^#]'
syntax match dircolorsEscape '\\[0-9]\{3}'
syntax match dircolorsEscape '\\x[0-9a-f]\{3}'
if !has('gui_running') && &t_Co == ''
syntax match dircolorsNumber '\<\d\+\>'
highlight default link dircolorsNumber Number
endif endif
syn match dircolorsExtension '^\s*\zs[.*]\S\+' highlight default link dircolorsTodo Todo
\ nextgroup=dircolorsColorPair skipwhite highlight default link dircolorsComment Comment
highlight default link dircolorsKeyword Keyword
highlight default link dircolorsExtension Identifier
highlight default link dircolorsEscape Special
syn match dircolorsColorPair contained '.*$' function! s:set_guicolors() abort
\ transparent contains=@dircolorsColors let s:guicolors = {}
if &t_Co == 8 || &t_Co == 16 let s:guicolors[0] = "Black"
syn cluster dircolorsColors contains=dircolorsBold,dircolorsUnderline, let s:guicolors[1] = "DarkRed"
\ dircolorsBlink,dircolorsReverse, let s:guicolors[2] = "DarkGreen"
\ dircolorsInvisible,dircolorsBlack, let s:guicolors[3] = "DarkYellow"
\ dircolorsRed,dircolorsGreen,dircolorsYellow, let s:guicolors[4] = "DarkBlue"
\ dircolorsBlue,dircolorsMagenta,dircolorsCyan, let s:guicolors[5] = "DarkMagenta"
\ dircolorsWhite,dircolorsBGBlack, let s:guicolors[6] = "DarkCyan"
\ dircolorsBGRed,dircolorsBGGreen, let s:guicolors[7] = "Gray"
\ dircolorsBGYellow,dircolorsBGBlue, let s:guicolors[8] = "DarkGray"
\ dircolorsBGMagenta,dircolorsBGCyan, let s:guicolors[9] = "Red"
\ dircolorsBGWhite let s:guicolors[10] = "Green"
let s:guicolors[11] = "Yellow"
let s:guicolors[12] = "Blue"
let s:guicolors[13] = "Magenta"
let s:guicolors[14] = "Cyan"
let s:guicolors[15] = "White"
syn match dircolorsBold contained '\<0\=1\>' let xterm_palette = ["00", "5f", "87", "af", "d7", "ff"]
syn match dircolorsUnderline contained '\<0\=4\>'
syn match dircolorsBlink contained '\<0\=5\>'
syn match dircolorsReverse contained '\<0\=7\>'
syn match dircolorsInvisible contained '\<0\=8\>'
syn match dircolorsBlack contained '\<30\>'
syn match dircolorsRed contained '\<31\>'
syn match dircolorsGreen contained '\<32\>'
syn match dircolorsYellow contained '\<33\>'
syn match dircolorsBlue contained '\<34\>'
syn match dircolorsMagenta contained '\<35\>'
syn match dircolorsCyan contained '\<36\>'
syn match dircolorsWhite contained '\<37\>'
syn match dircolorsBGBlack contained '\<40\>'
syn match dircolorsBGRed contained '\<41\>'
syn match dircolorsBGGreen contained '\<42\>'
syn match dircolorsBGYellow contained '\<43\>'
syn match dircolorsBGBlue contained '\<44\>'
syn match dircolorsBGMagenta contained '\<45\>'
syn match dircolorsBGCyan contained '\<46\>'
syn match dircolorsBGWhite contained '\<47\>'
elseif &t_Co == 256 || has("gui_running")
syn cluster dircolorsColors contains=dircolorsColor0,
\ dircolorsColor1,dircolorsColor2,
\ dircolorsColor3,dircolorsColor4,
\ dircolorsColor5,dircolorsColor6,
\ dircolorsColor7,dircolorsColor8,
\ dircolorsColor9,dircolorsColor10,
\ dircolorsColor11,dircolorsColor12,
\ dircolorsColor13,dircolorsColor14,
\ dircolorsColor15,dircolorsColor16,
\ dircolorsColor17,dircolorsColor18,
\ dircolorsColor19,dircolorsColor20,
\ dircolorsColor21,dircolorsColor22,
\ dircolorsColor23,dircolorsColor24,
\ dircolorsColor25,dircolorsColor26,
\ dircolorsColor27,dircolorsColor28,
\ dircolorsColor29,dircolorsColor30,
\ dircolorsColor31,dircolorsColor32,
\ dircolorsColor33,dircolorsColor34,
\ dircolorsColor35,dircolorsColor36,
\ dircolorsColor37,dircolorsColor38,
\ dircolorsColor39,dircolorsColor40,
\ dircolorsColor41,dircolorsColor42,
\ dircolorsColor43,dircolorsColor44,
\ dircolorsColor45,dircolorsColor46,
\ dircolorsColor47,dircolorsColor48,
\ dircolorsColor49,dircolorsColor50,
\ dircolorsColor51,dircolorsColor52,
\ dircolorsColor53,dircolorsColor54,
\ dircolorsColor55,dircolorsColor56,
\ dircolorsColor57,dircolorsColor58,
\ dircolorsColor59,dircolorsColor60,
\ dircolorsColor61,dircolorsColor62,
\ dircolorsColor63,dircolorsColor64,
\ dircolorsColor65,dircolorsColor66,
\ dircolorsColor67,dircolorsColor68,
\ dircolorsColor69,dircolorsColor70,
\ dircolorsColor71,dircolorsColor72,
\ dircolorsColor73,dircolorsColor74,
\ dircolorsColor75,dircolorsColor76,
\ dircolorsColor77,dircolorsColor78,
\ dircolorsColor79,dircolorsColor80,
\ dircolorsColor81,dircolorsColor82,
\ dircolorsColor83,dircolorsColor84,
\ dircolorsColor85,dircolorsColor86,
\ dircolorsColor87,dircolorsColor88,
\ dircolorsColor89,dircolorsColor90,
\ dircolorsColor91,dircolorsColor92,
\ dircolorsColor93,dircolorsColor94,
\ dircolorsColor95,dircolorsColor96,
\ dircolorsColor97,dircolorsColor98,
\ dircolorsColor99,dircolorsColor100,
\ dircolorsColor101,dircolorsColor102,
\ dircolorsColor103,dircolorsColor104,
\ dircolorsColor105,dircolorsColor106,
\ dircolorsColor107,dircolorsColor108,
\ dircolorsColor109,dircolorsColor110,
\ dircolorsColor111,dircolorsColor112,
\ dircolorsColor113,dircolorsColor114,
\ dircolorsColor115,dircolorsColor116,
\ dircolorsColor117,dircolorsColor118,
\ dircolorsColor119,dircolorsColor120,
\ dircolorsColor121,dircolorsColor122,
\ dircolorsColor123,dircolorsColor124,
\ dircolorsColor125,dircolorsColor126,
\ dircolorsColor127,dircolorsColor128,
\ dircolorsColor129,dircolorsColor130,
\ dircolorsColor131,dircolorsColor132,
\ dircolorsColor133,dircolorsColor134,
\ dircolorsColor135,dircolorsColor136,
\ dircolorsColor137,dircolorsColor138,
\ dircolorsColor139,dircolorsColor140,
\ dircolorsColor141,dircolorsColor142,
\ dircolorsColor143,dircolorsColor144,
\ dircolorsColor145,dircolorsColor146,
\ dircolorsColor147,dircolorsColor148,
\ dircolorsColor149,dircolorsColor150,
\ dircolorsColor151,dircolorsColor152,
\ dircolorsColor153,dircolorsColor154,
\ dircolorsColor155,dircolorsColor156,
\ dircolorsColor157,dircolorsColor158,
\ dircolorsColor159,dircolorsColor160,
\ dircolorsColor161,dircolorsColor162,
\ dircolorsColor163,dircolorsColor164,
\ dircolorsColor165,dircolorsColor166,
\ dircolorsColor167,dircolorsColor168,
\ dircolorsColor169,dircolorsColor170,
\ dircolorsColor171,dircolorsColor172,
\ dircolorsColor173,dircolorsColor174,
\ dircolorsColor175,dircolorsColor176,
\ dircolorsColor177,dircolorsColor178,
\ dircolorsColor179,dircolorsColor180,
\ dircolorsColor181,dircolorsColor182,
\ dircolorsColor183,dircolorsColor184,
\ dircolorsColor185,dircolorsColor186,
\ dircolorsColor187,dircolorsColor188,
\ dircolorsColor189,dircolorsColor190,
\ dircolorsColor191,dircolorsColor192,
\ dircolorsColor193,dircolorsColor194,
\ dircolorsColor195,dircolorsColor196,
\ dircolorsColor197,dircolorsColor198,
\ dircolorsColor199,dircolorsColor200,
\ dircolorsColor201,dircolorsColor202,
\ dircolorsColor203,dircolorsColor204,
\ dircolorsColor205,dircolorsColor206,
\ dircolorsColor207,dircolorsColor208,
\ dircolorsColor209,dircolorsColor210,
\ dircolorsColor211,dircolorsColor212,
\ dircolorsColor213,dircolorsColor214,
\ dircolorsColor215,dircolorsColor216,
\ dircolorsColor217,dircolorsColor218,
\ dircolorsColor219,dircolorsColor220,
\ dircolorsColor221,dircolorsColor222,
\ dircolorsColor223,dircolorsColor224,
\ dircolorsColor225,dircolorsColor226,
\ dircolorsColor227,dircolorsColor228,
\ dircolorsColor229,dircolorsColor230,
\ dircolorsColor231,dircolorsColor232,
\ dircolorsColor233,dircolorsColor234,
\ dircolorsColor235,dircolorsColor236,
\ dircolorsColor237,dircolorsColor238,
\ dircolorsColor239,dircolorsColor240,
\ dircolorsColor241,dircolorsColor242,
\ dircolorsColor243,dircolorsColor244,
\ dircolorsColor245,dircolorsColor246,
\ dircolorsColor247,dircolorsColor248,
\ dircolorsColor249,dircolorsColor250,
\ dircolorsColor251,dircolorsColor252,
\ dircolorsColor253,dircolorsColor254,
\ dircolorsColor255
syn match dircolorsColor0 contained '\<0\=0\>' let cur_col = 16
syn match dircolorsColor1 contained '\<0\=1\>'
syn match dircolorsColor2 contained '\<0\=2\>' for r in xterm_palette
syn match dircolorsColor3 contained '\<0\=3\>' for g in xterm_palette
syn match dircolorsColor4 contained '\<0\=4\>' for b in xterm_palette
syn match dircolorsColor5 contained '\<0\=5\>' let s:guicolors[cur_col] = '#' . r . g . b
syn match dircolorsColor6 contained '\<0\=6\>' let cur_col += 1
syn match dircolorsColor7 contained '\<0\=7\>' endfor
syn match dircolorsColor8 contained '\<0\=8\>' endfor
syn match dircolorsColor9 contained '\<0\=9\>' endfor
syn match dircolorsColor10 contained '\<10\>'
syn match dircolorsColor11 contained '\<11\>' for i in range(24)
syn match dircolorsColor12 contained '\<12\>' let g = i * 0xa + 8
syn match dircolorsColor13 contained '\<13\>' let s:guicolors[i + 232] = '#' . g . g . g
syn match dircolorsColor14 contained '\<14\>' endfor
syn match dircolorsColor15 contained '\<15\>' endfunction
syn match dircolorsColor16 contained '\<16\>'
syn match dircolorsColor17 contained '\<17\>' function! s:get_hi_str(color, place) abort
syn match dircolorsColor18 contained '\<18\>' if a:color >= 0 && a:color <= 255
syn match dircolorsColor19 contained '\<19\>' if has('gui_running')
syn match dircolorsColor20 contained '\<20\>' return ' gui' . a:place . '=' . s:guicolors[a:color]
syn match dircolorsColor21 contained '\<21\>' elseif a:color <= 7 || &t_Co == 256 || &t_Co == 88
syn match dircolorsColor22 contained '\<22\>' return ' cterm' . a:place . '=' . a:color
syn match dircolorsColor23 contained '\<23\>' endif
syn match dircolorsColor24 contained '\<24\>' endif
syn match dircolorsColor25 contained '\<25\>' return ''
syn match dircolorsColor26 contained '\<26\>' endfunction
syn match dircolorsColor27 contained '\<27\>'
syn match dircolorsColor28 contained '\<28\>' function! s:get_256color(colors) abort
syn match dircolorsColor29 contained '\<29\>' if len(a:colors) >= 2 " May be fewer while editing
syn match dircolorsColor30 contained '\<30\>' let [_five, color] = remove(a:colors, 0, 1)
syn match dircolorsColor31 contained '\<31\>' if _five != '5' || color == ''
syn match dircolorsColor32 contained '\<32\>' return -1
syn match dircolorsColor33 contained '\<33\>' else
syn match dircolorsColor34 contained '\<34\>' return str2nr(color)
syn match dircolorsColor35 contained '\<35\>' endif
syn match dircolorsColor36 contained '\<36\>' else
syn match dircolorsColor37 contained '\<37\>' return -1
syn match dircolorsColor38 contained '\<38\>' endif
syn match dircolorsColor39 contained '\<39\>' endfunction
syn match dircolorsColor40 contained '\<40\>'
syn match dircolorsColor41 contained '\<41\>' function! s:preview_color(linenr) abort
syn match dircolorsColor42 contained '\<42\>' let line = getline(a:linenr)
syn match dircolorsColor43 contained '\<43\>' let defline = matchlist(line, '^\v([A-Z_]+|[*.]\S+)\s+([0-9;]+)')
syn match dircolorsColor44 contained '\<44\>' if empty(defline)
syn match dircolorsColor45 contained '\<45\>' return
syn match dircolorsColor46 contained '\<46\>' endif
syn match dircolorsColor47 contained '\<47\>'
syn match dircolorsColor48 contained '\<48\>' let colordef = defline[2]
syn match dircolorsColor49 contained '\<49\>'
syn match dircolorsColor50 contained '\<50\>' let colors = split(colordef, ';')
syn match dircolorsColor51 contained '\<51\>'
syn match dircolorsColor52 contained '\<52\>' let hi_str = ''
syn match dircolorsColor53 contained '\<53\>' let hi_attrs = []
syn match dircolorsColor54 contained '\<54\>' while len(colors) > 0
syn match dircolorsColor55 contained '\<55\>' let item = str2nr(remove(colors, 0))
syn match dircolorsColor56 contained '\<56\>' if item == 1
syn match dircolorsColor57 contained '\<57\>' call add(hi_attrs, 'bold')
syn match dircolorsColor58 contained '\<58\>' elseif item == 3
syn match dircolorsColor59 contained '\<59\>' call add(hi_attrs, 'italic')
syn match dircolorsColor60 contained '\<60\>' elseif item == 4
syn match dircolorsColor61 contained '\<61\>' call add(hi_attrs, 'underline')
syn match dircolorsColor62 contained '\<62\>' elseif item == 7
syn match dircolorsColor63 contained '\<63\>' call add(hi_attrs, 'inverse')
syn match dircolorsColor64 contained '\<64\>' elseif item >= 30 && item <= 37
syn match dircolorsColor65 contained '\<65\>' " ANSI SGR foreground color
syn match dircolorsColor66 contained '\<66\>' let hi_str .= s:get_hi_str(item - 30, 'fg')
syn match dircolorsColor67 contained '\<67\>' elseif item >= 40 && item <= 47
syn match dircolorsColor68 contained '\<68\>' " ANSI SGR background color
syn match dircolorsColor69 contained '\<69\>' let hi_str .= s:get_hi_str(item - 40, 'bg')
syn match dircolorsColor70 contained '\<70\>' elseif item == 38
syn match dircolorsColor71 contained '\<71\>' " Foreground for terminals with 88/256 color support
syn match dircolorsColor72 contained '\<72\>' let color = s:get_256color(colors)
syn match dircolorsColor73 contained '\<73\>' if color == -1
syn match dircolorsColor74 contained '\<74\>' break
syn match dircolorsColor75 contained '\<75\>' endif
syn match dircolorsColor76 contained '\<76\>' let hi_str .= s:get_hi_str(color, 'fg')
syn match dircolorsColor77 contained '\<77\>' elseif item == 48
syn match dircolorsColor78 contained '\<78\>' " Background for terminals with 88/256 color support
syn match dircolorsColor79 contained '\<79\>' let color = s:get_256color(colors)
syn match dircolorsColor80 contained '\<80\>' if color == -1
syn match dircolorsColor81 contained '\<81\>' break
syn match dircolorsColor82 contained '\<82\>' endif
syn match dircolorsColor83 contained '\<83\>' let hi_str .= s:get_hi_str(color, 'bg')
syn match dircolorsColor84 contained '\<84\>' endif
syn match dircolorsColor85 contained '\<85\>' endwhile
syn match dircolorsColor86 contained '\<86\>'
syn match dircolorsColor87 contained '\<87\>' if hi_str == '' && empty(hi_attrs)
syn match dircolorsColor88 contained '\<88\>' return
syn match dircolorsColor89 contained '\<89\>' endif
syn match dircolorsColor90 contained '\<90\>'
syn match dircolorsColor91 contained '\<91\>' " Check whether we have already defined this color
syn match dircolorsColor92 contained '\<92\>' redir => s:currentmatch
syn match dircolorsColor93 contained '\<93\>' silent! execute 'syntax list'
syn match dircolorsColor94 contained '\<94\>' redir END
syn match dircolorsColor95 contained '\<95\>'
syn match dircolorsColor96 contained '\<96\>' if s:currentmatch !~# '\/\\_s\\zs' . colordef . '\\ze\\_s\/'
syn match dircolorsColor97 contained '\<97\>' " Append the buffer number to avoid problems with other dircolors
syn match dircolorsColor98 contained '\<98\>' " buffers interfering
syn match dircolorsColor99 contained '\<99\>' let bufnr = bufnr('%')
syn match dircolorsColor100 contained '\<100\>' execute 'syntax match dircolorsColor' . b:dc_next_index . '_' . bufnr .
syn match dircolorsColor101 contained '\<101\>' \ ' "\_s\zs' . colordef . '\ze\_s"'
syn match dircolorsColor102 contained '\<102\>' let hi_attrs_str = ''
syn match dircolorsColor103 contained '\<103\>' if !empty(hi_attrs)
syn match dircolorsColor104 contained '\<104\>' if has('gui_running')
syn match dircolorsColor105 contained '\<105\>' let hi_attrs_str = ' gui=' . join(hi_attrs, ',')
syn match dircolorsColor106 contained '\<106\>' else
syn match dircolorsColor107 contained '\<107\>' let hi_attrs_str = ' cterm=' . join(hi_attrs, ',')
syn match dircolorsColor108 contained '\<108\>' endif
syn match dircolorsColor109 contained '\<109\>' endif
syn match dircolorsColor110 contained '\<110\>' execute 'highlight default dircolorsColor' . b:dc_next_index . '_' .
syn match dircolorsColor111 contained '\<111\>' \ bufnr . hi_str . hi_attrs_str
syn match dircolorsColor112 contained '\<112\>' let b:dc_next_index += 1
syn match dircolorsColor113 contained '\<113\>' endif
syn match dircolorsColor114 contained '\<114\>' endfunction
syn match dircolorsColor115 contained '\<115\>'
syn match dircolorsColor116 contained '\<116\>' " Avoid accumulating too many definitions while editing
syn match dircolorsColor117 contained '\<117\>' function! s:reset_colors() abort
syn match dircolorsColor118 contained '\<118\>' if b:dc_next_index > 0
syn match dircolorsColor119 contained '\<119\>' let bufnr = bufnr('%')
syn match dircolorsColor120 contained '\<120\>' for i in range(b:dc_next_index)
syn match dircolorsColor121 contained '\<121\>' execute 'syntax clear dircolorsColor' . i . '_' . bufnr
syn match dircolorsColor122 contained '\<122\>' execute 'highlight clear dircolorsColor' . i . '_' . bufnr
syn match dircolorsColor123 contained '\<123\>' endfor
syn match dircolorsColor124 contained '\<124\>' let b:dc_next_index = 0
syn match dircolorsColor125 contained '\<125\>' endif
syn match dircolorsColor126 contained '\<126\>'
syn match dircolorsColor127 contained '\<127\>' for linenr in range(1, line('$'))
syn match dircolorsColor128 contained '\<128\>' call s:preview_color(linenr)
syn match dircolorsColor129 contained '\<129\>' endfor
syn match dircolorsColor130 contained '\<130\>' endfunction
syn match dircolorsColor131 contained '\<131\>'
syn match dircolorsColor132 contained '\<132\>' let b:dc_next_index = 0
syn match dircolorsColor133 contained '\<133\>'
syn match dircolorsColor134 contained '\<134\>' if has('gui_running')
syn match dircolorsColor135 contained '\<135\>' call s:set_guicolors()
syn match dircolorsColor136 contained '\<136\>'
syn match dircolorsColor137 contained '\<137\>'
syn match dircolorsColor138 contained '\<138\>'
syn match dircolorsColor139 contained '\<139\>'
syn match dircolorsColor140 contained '\<140\>'
syn match dircolorsColor141 contained '\<141\>'
syn match dircolorsColor142 contained '\<142\>'
syn match dircolorsColor143 contained '\<143\>'
syn match dircolorsColor144 contained '\<144\>'
syn match dircolorsColor145 contained '\<145\>'
syn match dircolorsColor146 contained '\<146\>'
syn match dircolorsColor147 contained '\<147\>'
syn match dircolorsColor148 contained '\<148\>'
syn match dircolorsColor149 contained '\<149\>'
syn match dircolorsColor150 contained '\<150\>'
syn match dircolorsColor151 contained '\<151\>'
syn match dircolorsColor152 contained '\<152\>'
syn match dircolorsColor153 contained '\<153\>'
syn match dircolorsColor154 contained '\<154\>'
syn match dircolorsColor155 contained '\<155\>'
syn match dircolorsColor156 contained '\<156\>'
syn match dircolorsColor157 contained '\<157\>'
syn match dircolorsColor158 contained '\<158\>'
syn match dircolorsColor159 contained '\<159\>'
syn match dircolorsColor160 contained '\<160\>'
syn match dircolorsColor161 contained '\<161\>'
syn match dircolorsColor162 contained '\<162\>'
syn match dircolorsColor163 contained '\<163\>'
syn match dircolorsColor164 contained '\<164\>'
syn match dircolorsColor165 contained '\<165\>'
syn match dircolorsColor166 contained '\<166\>'
syn match dircolorsColor167 contained '\<167\>'
syn match dircolorsColor168 contained '\<168\>'
syn match dircolorsColor169 contained '\<169\>'
syn match dircolorsColor170 contained '\<170\>'
syn match dircolorsColor171 contained '\<171\>'
syn match dircolorsColor172 contained '\<172\>'
syn match dircolorsColor173 contained '\<173\>'
syn match dircolorsColor174 contained '\<174\>'
syn match dircolorsColor175 contained '\<175\>'
syn match dircolorsColor176 contained '\<176\>'
syn match dircolorsColor177 contained '\<177\>'
syn match dircolorsColor178 contained '\<178\>'
syn match dircolorsColor179 contained '\<179\>'
syn match dircolorsColor180 contained '\<180\>'
syn match dircolorsColor181 contained '\<181\>'
syn match dircolorsColor182 contained '\<182\>'
syn match dircolorsColor183 contained '\<183\>'
syn match dircolorsColor184 contained '\<184\>'
syn match dircolorsColor185 contained '\<185\>'
syn match dircolorsColor186 contained '\<186\>'
syn match dircolorsColor187 contained '\<187\>'
syn match dircolorsColor188 contained '\<188\>'
syn match dircolorsColor189 contained '\<189\>'
syn match dircolorsColor190 contained '\<190\>'
syn match dircolorsColor191 contained '\<191\>'
syn match dircolorsColor192 contained '\<192\>'
syn match dircolorsColor193 contained '\<193\>'
syn match dircolorsColor194 contained '\<194\>'
syn match dircolorsColor195 contained '\<195\>'
syn match dircolorsColor196 contained '\<196\>'
syn match dircolorsColor197 contained '\<197\>'
syn match dircolorsColor198 contained '\<198\>'
syn match dircolorsColor199 contained '\<199\>'
syn match dircolorsColor200 contained '\<200\>'
syn match dircolorsColor201 contained '\<201\>'
syn match dircolorsColor202 contained '\<202\>'
syn match dircolorsColor203 contained '\<203\>'
syn match dircolorsColor204 contained '\<204\>'
syn match dircolorsColor205 contained '\<205\>'
syn match dircolorsColor206 contained '\<206\>'
syn match dircolorsColor207 contained '\<207\>'
syn match dircolorsColor208 contained '\<208\>'
syn match dircolorsColor209 contained '\<209\>'
syn match dircolorsColor210 contained '\<210\>'
syn match dircolorsColor211 contained '\<211\>'
syn match dircolorsColor212 contained '\<212\>'
syn match dircolorsColor213 contained '\<213\>'
syn match dircolorsColor214 contained '\<214\>'
syn match dircolorsColor215 contained '\<215\>'
syn match dircolorsColor216 contained '\<216\>'
syn match dircolorsColor217 contained '\<217\>'
syn match dircolorsColor218 contained '\<218\>'
syn match dircolorsColor219 contained '\<219\>'
syn match dircolorsColor220 contained '\<220\>'
syn match dircolorsColor221 contained '\<221\>'
syn match dircolorsColor222 contained '\<222\>'
syn match dircolorsColor223 contained '\<223\>'
syn match dircolorsColor224 contained '\<224\>'
syn match dircolorsColor225 contained '\<225\>'
syn match dircolorsColor226 contained '\<226\>'
syn match dircolorsColor227 contained '\<227\>'
syn match dircolorsColor228 contained '\<228\>'
syn match dircolorsColor229 contained '\<229\>'
syn match dircolorsColor230 contained '\<230\>'
syn match dircolorsColor231 contained '\<231\>'
syn match dircolorsColor232 contained '\<232\>'
syn match dircolorsColor233 contained '\<233\>'
syn match dircolorsColor234 contained '\<234\>'
syn match dircolorsColor235 contained '\<235\>'
syn match dircolorsColor236 contained '\<236\>'
syn match dircolorsColor237 contained '\<237\>'
syn match dircolorsColor238 contained '\<238\>'
syn match dircolorsColor239 contained '\<239\>'
syn match dircolorsColor240 contained '\<240\>'
syn match dircolorsColor241 contained '\<241\>'
syn match dircolorsColor242 contained '\<242\>'
syn match dircolorsColor243 contained '\<243\>'
syn match dircolorsColor244 contained '\<244\>'
syn match dircolorsColor245 contained '\<245\>'
syn match dircolorsColor246 contained '\<246\>'
syn match dircolorsColor247 contained '\<247\>'
syn match dircolorsColor248 contained '\<248\>'
syn match dircolorsColor249 contained '\<249\>'
syn match dircolorsColor250 contained '\<250\>'
syn match dircolorsColor251 contained '\<251\>'
syn match dircolorsColor252 contained '\<252\>'
syn match dircolorsColor253 contained '\<253\>'
syn match dircolorsColor254 contained '\<254\>'
syn match dircolorsColor255 contained '\<255\>'
else
syn cluster dircolorsColors contains=dircolorsNumber
syn match dircolorsNumber '\<\d\+\>'
endif endif
hi def link dircolorsTodo Todo if has('gui_running') || &t_Co != ''
hi def link dircolorsComment Comment call s:reset_colors()
hi def link dircolorsKeyword Keyword
hi def link dircolorsExtension Keyword
if &t_Co == 8 || &t_Co == 16 autocmd CursorMoved,CursorMovedI <buffer> call s:preview_color('.')
hi def dircolorsBold term=bold cterm=bold gui=bold autocmd CursorHold,CursorHoldI <buffer> call s:reset_colors()
hi def dircolorsUnderline term=underline cterm=underline gui=underline
hi def link dircolorsBlink Normal
hi def dircolorsReverse term=reverse cterm=reverse gui=reverse
hi def link dircolorsInvisible Ignore
hi def dircolorsBlack ctermfg=Black guifg=Black
hi def dircolorsRed ctermfg=Red guifg=Red
hi def dircolorsGreen ctermfg=Green guifg=Green
hi def dircolorsYellow ctermfg=Yellow guifg=Yellow
hi def dircolorsBlue ctermfg=Blue guifg=Blue
hi def dircolorsMagenta ctermfg=Magenta guifg=Magenta
hi def dircolorsCyan ctermfg=Cyan guifg=Cyan
hi def dircolorsWhite ctermfg=White guifg=White
hi def dircolorsBGBlack ctermbg=Black ctermfg=White
\ guibg=Black guifg=White
hi def dircolorsBGRed ctermbg=DarkRed guibg=DarkRed
hi def dircolorsBGGreen ctermbg=DarkGreen guibg=DarkGreen
hi def dircolorsBGYellow ctermbg=DarkYellow guibg=DarkYellow
hi def dircolorsBGBlue ctermbg=DarkBlue guibg=DarkBlue
hi def dircolorsBGMagenta ctermbg=DarkMagenta guibg=DarkMagenta
hi def dircolorsBGCyan ctermbg=DarkCyan guibg=DarkCyan
hi def dircolorsBGWhite ctermbg=White ctermfg=Black
\ guibg=White guifg=Black
elseif &t_Co == 256 || has("gui_running")
hi def dircolorsColor0 ctermfg=0 guifg=Black
hi def dircolorsColor1 ctermfg=1 guifg=DarkRed
hi def dircolorsColor2 ctermfg=2 guifg=DarkGreen
hi def dircolorsColor3 ctermfg=3 guifg=DarkYellow
hi def dircolorsColor4 ctermfg=4 guifg=DarkBlue
hi def dircolorsColor5 ctermfg=5 guifg=DarkMagenta
hi def dircolorsColor6 ctermfg=6 guifg=DarkCyan
hi def dircolorsColor7 ctermfg=7 guifg=Gray
hi def dircolorsColor8 ctermfg=8 guifg=DarkGray
hi def dircolorsColor9 ctermfg=9 guifg=Red
hi def dircolorsColor10 ctermfg=10 guifg=Green
hi def dircolorsColor11 ctermfg=11 guifg=Yellow
hi def dircolorsColor12 ctermfg=12 guifg=Blue
hi def dircolorsColor13 ctermfg=13 guifg=Magenta
hi def dircolorsColor14 ctermfg=14 guifg=Cyan
hi def dircolorsColor15 ctermfg=15 guifg=White
hi def dircolorsColor16 ctermfg=16 guifg=#000000
hi def dircolorsColor17 ctermfg=17 guifg=#00005f
hi def dircolorsColor18 ctermfg=18 guifg=#000087
hi def dircolorsColor19 ctermfg=19 guifg=#0000af
hi def dircolorsColor20 ctermfg=20 guifg=#0000d7
hi def dircolorsColor21 ctermfg=21 guifg=#0000ff
hi def dircolorsColor22 ctermfg=22 guifg=#005f00
hi def dircolorsColor23 ctermfg=23 guifg=#005f5f
hi def dircolorsColor24 ctermfg=24 guifg=#005f87
hi def dircolorsColor25 ctermfg=25 guifg=#005faf
hi def dircolorsColor26 ctermfg=26 guifg=#005fd7
hi def dircolorsColor27 ctermfg=27 guifg=#005fff
hi def dircolorsColor28 ctermfg=28 guifg=#008700
hi def dircolorsColor29 ctermfg=29 guifg=#00875f
hi def dircolorsColor30 ctermfg=30 guifg=#008787
hi def dircolorsColor31 ctermfg=31 guifg=#0087af
hi def dircolorsColor32 ctermfg=32 guifg=#0087d7
hi def dircolorsColor33 ctermfg=33 guifg=#0087ff
hi def dircolorsColor34 ctermfg=34 guifg=#00af00
hi def dircolorsColor35 ctermfg=35 guifg=#00af5f
hi def dircolorsColor36 ctermfg=36 guifg=#00af87
hi def dircolorsColor37 ctermfg=37 guifg=#00afaf
hi def dircolorsColor38 ctermfg=38 guifg=#00afd7
hi def dircolorsColor39 ctermfg=39 guifg=#00afff
hi def dircolorsColor40 ctermfg=40 guifg=#00d700
hi def dircolorsColor41 ctermfg=41 guifg=#00d75f
hi def dircolorsColor42 ctermfg=42 guifg=#00d787
hi def dircolorsColor43 ctermfg=43 guifg=#00d7af
hi def dircolorsColor44 ctermfg=44 guifg=#00d7d7
hi def dircolorsColor45 ctermfg=45 guifg=#00d7ff
hi def dircolorsColor46 ctermfg=46 guifg=#00ff00
hi def dircolorsColor47 ctermfg=47 guifg=#00ff5f
hi def dircolorsColor48 ctermfg=48 guifg=#00ff87
hi def dircolorsColor49 ctermfg=49 guifg=#00ffaf
hi def dircolorsColor50 ctermfg=50 guifg=#00ffd7
hi def dircolorsColor51 ctermfg=51 guifg=#00ffff
hi def dircolorsColor52 ctermfg=52 guifg=#5f0000
hi def dircolorsColor53 ctermfg=53 guifg=#5f005f
hi def dircolorsColor54 ctermfg=54 guifg=#5f0087
hi def dircolorsColor55 ctermfg=55 guifg=#5f00af
hi def dircolorsColor56 ctermfg=56 guifg=#5f00d7
hi def dircolorsColor57 ctermfg=57 guifg=#5f00ff
hi def dircolorsColor58 ctermfg=58 guifg=#5f5f00
hi def dircolorsColor59 ctermfg=59 guifg=#5f5f5f
hi def dircolorsColor60 ctermfg=60 guifg=#5f5f87
hi def dircolorsColor61 ctermfg=61 guifg=#5f5faf
hi def dircolorsColor62 ctermfg=62 guifg=#5f5fd7
hi def dircolorsColor63 ctermfg=63 guifg=#5f5fff
hi def dircolorsColor64 ctermfg=64 guifg=#5f8700
hi def dircolorsColor65 ctermfg=65 guifg=#5f875f
hi def dircolorsColor66 ctermfg=66 guifg=#5f8787
hi def dircolorsColor67 ctermfg=67 guifg=#5f87af
hi def dircolorsColor68 ctermfg=68 guifg=#5f87d7
hi def dircolorsColor69 ctermfg=69 guifg=#5f87ff
hi def dircolorsColor70 ctermfg=70 guifg=#5faf00
hi def dircolorsColor71 ctermfg=71 guifg=#5faf5f
hi def dircolorsColor72 ctermfg=72 guifg=#5faf87
hi def dircolorsColor73 ctermfg=73 guifg=#5fafaf
hi def dircolorsColor74 ctermfg=74 guifg=#5fafd7
hi def dircolorsColor75 ctermfg=75 guifg=#5fafff
hi def dircolorsColor76 ctermfg=76 guifg=#5fd700
hi def dircolorsColor77 ctermfg=77 guifg=#5fd75f
hi def dircolorsColor78 ctermfg=78 guifg=#5fd787
hi def dircolorsColor79 ctermfg=79 guifg=#5fd7af
hi def dircolorsColor80 ctermfg=80 guifg=#5fd7d7
hi def dircolorsColor81 ctermfg=81 guifg=#5fd7ff
hi def dircolorsColor82 ctermfg=82 guifg=#5fff00
hi def dircolorsColor83 ctermfg=83 guifg=#5fff5f
hi def dircolorsColor84 ctermfg=84 guifg=#5fff87
hi def dircolorsColor85 ctermfg=85 guifg=#5fffaf
hi def dircolorsColor86 ctermfg=86 guifg=#5fffd7
hi def dircolorsColor87 ctermfg=87 guifg=#5fffff
hi def dircolorsColor88 ctermfg=88 guifg=#870000
hi def dircolorsColor89 ctermfg=89 guifg=#87005f
hi def dircolorsColor90 ctermfg=90 guifg=#870087
hi def dircolorsColor91 ctermfg=91 guifg=#8700af
hi def dircolorsColor92 ctermfg=92 guifg=#8700d7
hi def dircolorsColor93 ctermfg=93 guifg=#8700ff
hi def dircolorsColor94 ctermfg=94 guifg=#875f00
hi def dircolorsColor95 ctermfg=95 guifg=#875f5f
hi def dircolorsColor96 ctermfg=96 guifg=#875f87
hi def dircolorsColor97 ctermfg=97 guifg=#875faf
hi def dircolorsColor98 ctermfg=98 guifg=#875fd7
hi def dircolorsColor99 ctermfg=99 guifg=#875fff
hi def dircolorsColor100 ctermfg=100 guifg=#878700
hi def dircolorsColor101 ctermfg=101 guifg=#87875f
hi def dircolorsColor102 ctermfg=102 guifg=#878787
hi def dircolorsColor103 ctermfg=103 guifg=#8787af
hi def dircolorsColor104 ctermfg=104 guifg=#8787d7
hi def dircolorsColor105 ctermfg=105 guifg=#8787ff
hi def dircolorsColor106 ctermfg=106 guifg=#87af00
hi def dircolorsColor107 ctermfg=107 guifg=#87af5f
hi def dircolorsColor108 ctermfg=108 guifg=#87af87
hi def dircolorsColor109 ctermfg=109 guifg=#87afaf
hi def dircolorsColor110 ctermfg=110 guifg=#87afd7
hi def dircolorsColor111 ctermfg=111 guifg=#87afff
hi def dircolorsColor112 ctermfg=112 guifg=#87d700
hi def dircolorsColor113 ctermfg=113 guifg=#87d75f
hi def dircolorsColor114 ctermfg=114 guifg=#87d787
hi def dircolorsColor115 ctermfg=115 guifg=#87d7af
hi def dircolorsColor116 ctermfg=116 guifg=#87d7d7
hi def dircolorsColor117 ctermfg=117 guifg=#87d7ff
hi def dircolorsColor118 ctermfg=118 guifg=#87ff00
hi def dircolorsColor119 ctermfg=119 guifg=#87ff5f
hi def dircolorsColor120 ctermfg=120 guifg=#87ff87
hi def dircolorsColor121 ctermfg=121 guifg=#87ffaf
hi def dircolorsColor122 ctermfg=122 guifg=#87ffd7
hi def dircolorsColor123 ctermfg=123 guifg=#87ffff
hi def dircolorsColor124 ctermfg=124 guifg=#af0000
hi def dircolorsColor125 ctermfg=125 guifg=#af005f
hi def dircolorsColor126 ctermfg=126 guifg=#af0087
hi def dircolorsColor127 ctermfg=127 guifg=#af00af
hi def dircolorsColor128 ctermfg=128 guifg=#af00d7
hi def dircolorsColor129 ctermfg=129 guifg=#af00ff
hi def dircolorsColor130 ctermfg=130 guifg=#af5f00
hi def dircolorsColor131 ctermfg=131 guifg=#af5f5f
hi def dircolorsColor132 ctermfg=132 guifg=#af5f87
hi def dircolorsColor133 ctermfg=133 guifg=#af5faf
hi def dircolorsColor134 ctermfg=134 guifg=#af5fd7
hi def dircolorsColor135 ctermfg=135 guifg=#af5fff
hi def dircolorsColor136 ctermfg=136 guifg=#af8700
hi def dircolorsColor137 ctermfg=137 guifg=#af875f
hi def dircolorsColor138 ctermfg=138 guifg=#af8787
hi def dircolorsColor139 ctermfg=139 guifg=#af87af
hi def dircolorsColor140 ctermfg=140 guifg=#af87d7
hi def dircolorsColor141 ctermfg=141 guifg=#af87ff
hi def dircolorsColor142 ctermfg=142 guifg=#afaf00
hi def dircolorsColor143 ctermfg=143 guifg=#afaf5f
hi def dircolorsColor144 ctermfg=144 guifg=#afaf87
hi def dircolorsColor145 ctermfg=145 guifg=#afafaf
hi def dircolorsColor146 ctermfg=146 guifg=#afafd7
hi def dircolorsColor147 ctermfg=147 guifg=#afafff
hi def dircolorsColor148 ctermfg=148 guifg=#afd700
hi def dircolorsColor149 ctermfg=149 guifg=#afd75f
hi def dircolorsColor150 ctermfg=150 guifg=#afd787
hi def dircolorsColor151 ctermfg=151 guifg=#afd7af
hi def dircolorsColor152 ctermfg=152 guifg=#afd7d7
hi def dircolorsColor153 ctermfg=153 guifg=#afd7ff
hi def dircolorsColor154 ctermfg=154 guifg=#afff00
hi def dircolorsColor155 ctermfg=155 guifg=#afff5f
hi def dircolorsColor156 ctermfg=156 guifg=#afff87
hi def dircolorsColor157 ctermfg=157 guifg=#afffaf
hi def dircolorsColor158 ctermfg=158 guifg=#afffd7
hi def dircolorsColor159 ctermfg=159 guifg=#afffff
hi def dircolorsColor160 ctermfg=160 guifg=#d70000
hi def dircolorsColor161 ctermfg=161 guifg=#d7005f
hi def dircolorsColor162 ctermfg=162 guifg=#d70087
hi def dircolorsColor163 ctermfg=163 guifg=#d700af
hi def dircolorsColor164 ctermfg=164 guifg=#d700d7
hi def dircolorsColor165 ctermfg=165 guifg=#d700ff
hi def dircolorsColor166 ctermfg=166 guifg=#d75f00
hi def dircolorsColor167 ctermfg=167 guifg=#d75f5f
hi def dircolorsColor168 ctermfg=168 guifg=#d75f87
hi def dircolorsColor169 ctermfg=169 guifg=#d75faf
hi def dircolorsColor170 ctermfg=170 guifg=#d75fd7
hi def dircolorsColor171 ctermfg=171 guifg=#d75fff
hi def dircolorsColor172 ctermfg=172 guifg=#d78700
hi def dircolorsColor173 ctermfg=173 guifg=#d7875f
hi def dircolorsColor174 ctermfg=174 guifg=#d78787
hi def dircolorsColor175 ctermfg=175 guifg=#d787af
hi def dircolorsColor176 ctermfg=176 guifg=#d787d7
hi def dircolorsColor177 ctermfg=177 guifg=#d787ff
hi def dircolorsColor178 ctermfg=178 guifg=#d7af00
hi def dircolorsColor179 ctermfg=179 guifg=#d7af5f
hi def dircolorsColor180 ctermfg=180 guifg=#d7af87
hi def dircolorsColor181 ctermfg=181 guifg=#d7afaf
hi def dircolorsColor182 ctermfg=182 guifg=#d7afd7
hi def dircolorsColor183 ctermfg=183 guifg=#d7afff
hi def dircolorsColor184 ctermfg=184 guifg=#d7d700
hi def dircolorsColor185 ctermfg=185 guifg=#d7d75f
hi def dircolorsColor186 ctermfg=186 guifg=#d7d787
hi def dircolorsColor187 ctermfg=187 guifg=#d7d7af
hi def dircolorsColor188 ctermfg=188 guifg=#d7d7d7
hi def dircolorsColor189 ctermfg=189 guifg=#d7d7ff
hi def dircolorsColor190 ctermfg=190 guifg=#d7ff00
hi def dircolorsColor191 ctermfg=191 guifg=#d7ff5f
hi def dircolorsColor192 ctermfg=192 guifg=#d7ff87
hi def dircolorsColor193 ctermfg=193 guifg=#d7ffaf
hi def dircolorsColor194 ctermfg=194 guifg=#d7ffd7
hi def dircolorsColor195 ctermfg=195 guifg=#d7ffff
hi def dircolorsColor196 ctermfg=196 guifg=#ff0000
hi def dircolorsColor197 ctermfg=197 guifg=#ff005f
hi def dircolorsColor198 ctermfg=198 guifg=#ff0087
hi def dircolorsColor199 ctermfg=199 guifg=#ff00af
hi def dircolorsColor200 ctermfg=200 guifg=#ff00d7
hi def dircolorsColor201 ctermfg=201 guifg=#ff00ff
hi def dircolorsColor202 ctermfg=202 guifg=#ff5f00
hi def dircolorsColor203 ctermfg=203 guifg=#ff5f5f
hi def dircolorsColor204 ctermfg=204 guifg=#ff5f87
hi def dircolorsColor205 ctermfg=205 guifg=#ff5faf
hi def dircolorsColor206 ctermfg=206 guifg=#ff5fd7
hi def dircolorsColor207 ctermfg=207 guifg=#ff5fff
hi def dircolorsColor208 ctermfg=208 guifg=#ff8700
hi def dircolorsColor209 ctermfg=209 guifg=#ff875f
hi def dircolorsColor210 ctermfg=210 guifg=#ff8787
hi def dircolorsColor211 ctermfg=211 guifg=#ff87af
hi def dircolorsColor212 ctermfg=212 guifg=#ff87d7
hi def dircolorsColor213 ctermfg=213 guifg=#ff87ff
hi def dircolorsColor214 ctermfg=214 guifg=#ffaf00
hi def dircolorsColor215 ctermfg=215 guifg=#ffaf5f
hi def dircolorsColor216 ctermfg=216 guifg=#ffaf87
hi def dircolorsColor217 ctermfg=217 guifg=#ffafaf
hi def dircolorsColor218 ctermfg=218 guifg=#ffafd7
hi def dircolorsColor219 ctermfg=219 guifg=#ffafff
hi def dircolorsColor220 ctermfg=220 guifg=#ffd700
hi def dircolorsColor221 ctermfg=221 guifg=#ffd75f
hi def dircolorsColor222 ctermfg=222 guifg=#ffd787
hi def dircolorsColor223 ctermfg=223 guifg=#ffd7af
hi def dircolorsColor224 ctermfg=224 guifg=#ffd7d7
hi def dircolorsColor225 ctermfg=225 guifg=#ffd7ff
hi def dircolorsColor226 ctermfg=226 guifg=#ffff00
hi def dircolorsColor227 ctermfg=227 guifg=#ffff5f
hi def dircolorsColor228 ctermfg=228 guifg=#ffff87
hi def dircolorsColor229 ctermfg=229 guifg=#ffffaf
hi def dircolorsColor230 ctermfg=230 guifg=#ffffd7
hi def dircolorsColor231 ctermfg=231 guifg=#ffffff
hi def dircolorsColor232 ctermfg=232 guifg=#080808
hi def dircolorsColor233 ctermfg=233 guifg=#121212
hi def dircolorsColor234 ctermfg=234 guifg=#1c1c1c
hi def dircolorsColor235 ctermfg=235 guifg=#262626
hi def dircolorsColor236 ctermfg=236 guifg=#303030
hi def dircolorsColor237 ctermfg=237 guifg=#3a3a3a
hi def dircolorsColor238 ctermfg=238 guifg=#444444
hi def dircolorsColor239 ctermfg=239 guifg=#4e4e4e
hi def dircolorsColor240 ctermfg=240 guifg=#585858
hi def dircolorsColor241 ctermfg=241 guifg=#626262
hi def dircolorsColor242 ctermfg=242 guifg=#6c6c6c
hi def dircolorsColor243 ctermfg=243 guifg=#767676
hi def dircolorsColor244 ctermfg=244 guifg=#808080
hi def dircolorsColor245 ctermfg=245 guifg=#8a8a8a
hi def dircolorsColor246 ctermfg=246 guifg=#949494
hi def dircolorsColor247 ctermfg=247 guifg=#9e9e9e
hi def dircolorsColor248 ctermfg=248 guifg=#a8a8a8
hi def dircolorsColor249 ctermfg=249 guifg=#b2b2b2
hi def dircolorsColor250 ctermfg=250 guifg=#bcbcbc
hi def dircolorsColor251 ctermfg=251 guifg=#c6c6c6
hi def dircolorsColor252 ctermfg=252 guifg=#d0d0d0
hi def dircolorsColor253 ctermfg=253 guifg=#dadada
hi def dircolorsColor254 ctermfg=254 guifg=#e4e4e4
hi def dircolorsColor255 ctermfg=255 guifg=#eeeeee
else
hi def link dircolorsNumber Number
endif endif
let b:current_syntax = "dircolors" let b:current_syntax = "dircolors"

43
runtime/syntax/j.vim Normal file
View File

@@ -0,0 +1,43 @@
" Vim syntax file
" Language: J
" Maintainer: David Bürgin <676c7473@gmail.com>
" Last Change: 2013-09-21
if exists("b:current_syntax")
finish
endif
syntax case match
syntax sync minlines=50
syn match jControl /\<\%(assert\|break\|case\|catch[dt]\=\|continue\|do\|else\%(if\)\=\|end\|fcase\|for\|if\|return\|select\|throw\|try\|whil\%(e\|st\)\)\./
syn match jControl /\<\%(for\|goto\|label\)_\a\k*\./
syn region jString oneline start=/'/ skip=/''/ end=/'/
" Patterns for numbers in general, rational numbers, numbers with explicit
" base, infinities, and numbers with extended precision.
"
" Matching J numbers is difficult. The regular expression used for the general
" case roughly embodies this grammar sketch:
"
" EXP := /_?\d+(\.\d*)?([eE]_?\d+)?/
" COMP := EXP | EXP (j|a[dr]) EXP
" PIEU := COMP | COMP [px] COMP
"
" For the rest, a compromise between correctness and practicality was made.
" See http://www.jsoftware.com/help/dictionary/dcons.htm for reference.
syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\%([px]_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\)\=/
syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=r_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=/
syn match jNumber /\<_\=\d\+\%([eE]\d\+\)\=b_\=[0-9a-z]\+/
syn match jNumber /\<__\=\>/
syn match jNumber /\<_\=\d\+x\>/
syn match jComment /NB\..*$/
hi def link jControl Statement
hi def link jString String
hi def link jNumber Number
hi def link jComment Comment
let b:current_syntax = "j"

View File

@@ -1,12 +1,12 @@
" Vim syntax file " Vim syntax file
" Language: VHDL " Language: VHDL
" Maintainer: Czo <Olivier.Sirol@lip6.fr> " Maintainer: Daniel Kho <daniel.kho@tauhop.com>
" Previous Maintainer: Czo <Olivier.Sirol@lip6.fr>
" Credits: Stephan Hegel <stephan.hegel@snc.siemens.com.cn> " Credits: Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
" Last Change: 2012 Jun 01 " Last Changed: 2012 Feb 03 by Thilo Six
" (Dominique Pelle added @Spell) " $Id: vhdl.vim,v 1.1 2004/06/13 15:34:56 vimboss Exp $
" VHSIC Hardware Description Language " VHSIC (Very High Speed Integrated Circuit) Hardware Description Language
" Very High Scale Integrated Circuit
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@@ -22,8 +22,8 @@ set cpo&vim
" This is not VHDL. I use the C-Preprocessor cpp to generate different binaries " This is not VHDL. I use the C-Preprocessor cpp to generate different binaries
" from one VHDL source file. Unfortunately there is no preprocessor for VHDL " from one VHDL source file. Unfortunately there is no preprocessor for VHDL
" available. If you don't like this, please remove the following lines. " available. If you don't like this, please remove the following lines.
syn match cDefine "^#ifdef[ ]\+[A-Za-z_]\+" "syn match cDefine "^#ifdef[ ]\+[A-Za-z_]\+"
syn match cDefine "^#endif" "syn match cDefine "^#endif"
" case is not significant " case is not significant
syn case ignore syn case ignore
@@ -31,11 +31,14 @@ syn case ignore
" VHDL keywords " VHDL keywords
syn keyword vhdlStatement access after alias all assert syn keyword vhdlStatement access after alias all assert
syn keyword vhdlStatement architecture array attribute syn keyword vhdlStatement architecture array attribute
syn keyword vhdlStatement assume assume_guarantee
syn keyword vhdlStatement begin block body buffer bus syn keyword vhdlStatement begin block body buffer bus
syn keyword vhdlStatement case component configuration constant syn keyword vhdlStatement case component configuration constant
syn keyword vhdlStatement disconnect downto syn keyword vhdlStatement context cover
syn keyword vhdlStatement default disconnect downto
syn keyword vhdlStatement elsif end entity exit syn keyword vhdlStatement elsif end entity exit
syn keyword vhdlStatement file for function syn keyword vhdlStatement file for function
syn keyword vhdlStatement fairness force
syn keyword vhdlStatement generate generic group guarded syn keyword vhdlStatement generate generic group guarded
syn keyword vhdlStatement impure in inertial inout is syn keyword vhdlStatement impure in inertial inout is
syn keyword vhdlStatement label library linkage literal loop syn keyword vhdlStatement label library linkage literal loop
@@ -43,12 +46,17 @@ syn keyword vhdlStatement map
syn keyword vhdlStatement new next null syn keyword vhdlStatement new next null
syn keyword vhdlStatement of on open others out syn keyword vhdlStatement of on open others out
syn keyword vhdlStatement package port postponed procedure process pure syn keyword vhdlStatement package port postponed procedure process pure
syn keyword vhdlStatement parameter property protected
syn keyword vhdlStatement range record register reject report return syn keyword vhdlStatement range record register reject report return
syn keyword vhdlStatement release restrict restrict_guarantee
syn keyword vhdlStatement select severity signal shared syn keyword vhdlStatement select severity signal shared
syn keyword vhdlStatement subtype syn keyword vhdlStatement subtype
syn keyword vhdlStatement sequence strong
syn keyword vhdlStatement then to transport type syn keyword vhdlStatement then to transport type
syn keyword vhdlStatement unaffected units until use syn keyword vhdlStatement unaffected units until use
syn keyword vhdlStatement variable wait when while with syn keyword vhdlStatement variable
syn keyword vhdlStatement vmode vprop vunit
syn keyword vhdlStatement wait when while with
syn keyword vhdlStatement note warning error failure syn keyword vhdlStatement note warning error failure
" Special match for "if" and "else" since "else if" shouldn't be highlighted. " Special match for "if" and "else" since "else if" shouldn't be highlighted.
@@ -60,6 +68,7 @@ syn match vhdlNone "\<else\s\+if\>\s"
" Predefined VHDL types " Predefined VHDL types
syn keyword vhdlType bit bit_vector syn keyword vhdlType bit bit_vector
syn keyword vhdlType character boolean integer real time syn keyword vhdlType character boolean integer real time
syn keyword vhdlType boolean_vector integer_vector real_vector time_vector
syn keyword vhdlType string severity_level syn keyword vhdlType string severity_level
" Predefined standard ieee VHDL types " Predefined standard ieee VHDL types
syn keyword vhdlType positive natural signed unsigned syn keyword vhdlType positive natural signed unsigned
@@ -67,11 +76,11 @@ syn keyword vhdlType line text
syn keyword vhdlType std_logic std_logic_vector syn keyword vhdlType std_logic std_logic_vector
syn keyword vhdlType std_ulogic std_ulogic_vector syn keyword vhdlType std_ulogic std_ulogic_vector
" Predefined non standard VHDL types for Mentor Graphics Sys1076/QuickHDL " Predefined non standard VHDL types for Mentor Graphics Sys1076/QuickHDL
syn keyword vhdlType qsim_state qsim_state_vector "syn keyword vhdlType qsim_state qsim_state_vector
syn keyword vhdlType qsim_12state qsim_12state_vector "syn keyword vhdlType qsim_12state qsim_12state_vector
syn keyword vhdlType qsim_strength "syn keyword vhdlType qsim_strength
" Predefined non standard VHDL types for Alliance VLSI CAD " Predefined non standard VHDL types for Alliance VLSI CAD
syn keyword vhdlType mux_bit mux_vector reg_bit reg_vector wor_bit wor_vector "syn keyword vhdlType mux_bit mux_vector reg_bit reg_vector wor_bit wor_vector
" array attributes " array attributes
syn match vhdlAttribute "\'high" syn match vhdlAttribute "\'high"
@@ -122,14 +131,14 @@ syn case match
" Values for standard VHDL types " Values for standard VHDL types
syn match vhdlVector "\'[0L1HXWZU\-\?]\'" syn match vhdlVector "\'[0L1HXWZU\-\?]\'"
" Values for non standard VHDL types qsim_12state for Mentor Graphics Sys1076/QuickHDL " Values for non standard VHDL types qsim_12state for Mentor Graphics Sys1076/QuickHDL
syn keyword vhdlVector S0S S1S SXS S0R S1R SXR S0Z S1Z SXZ S0I S1I SXI "syn keyword vhdlVector S0S S1S SXS S0R S1R SXR S0Z S1Z SXZ S0I S1I SXI
syn case ignore syn case ignore
syn match vhdlVector "B\"[01_]\+\"" syn match vhdlVector "B\"[01_]\+\""
syn match vhdlVector "O\"[0-7_]\+\"" syn match vhdlVector "O\"[0-7_]\+\""
syn match vhdlVector "X\"[0-9a-f_]\+\"" syn match vhdlVector "X\"[0-9a-f_]\+\""
syn match vhdlCharacter "'.'" syn match vhdlCharacter "'.'"
syn region vhdlString start=+"+ end=+"+ contains=@Spell syn region vhdlString start=+"+ end=+"+
" floating numbers " floating numbers
syn match vhdlNumber "-\=\<\d\+\.\d\+\(E[+\-]\=\d\+\)\>" syn match vhdlNumber "-\=\<\d\+\.\d\+\(E[+\-]\=\d\+\)\>"
@@ -151,9 +160,15 @@ syn match vhdlSpecial "[().,;]"
syn match vhdlTime "\<\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>" syn match vhdlTime "\<\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"
syn match vhdlTime "\<\d\+\.\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>" syn match vhdlTime "\<\d\+\.\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"
syn match vhdlComment "--.*$" contains=@Spell syn keyword vhdlTodo contained TODO FIXME
syn region vhdlComment start="/\*" end="\*/" contains=vhdlTodo,@Spell
syn match vhdlComment "--.*" contains=vhdlTodo,@Spell
" syn match vhdlGlobal "[\'$#~!%@?\^\[\]{}\\]" " syn match vhdlGlobal "[\'$#~!%@?\^\[\]{}\\]"
"Modify the following as needed. The trade-off is performance versus functionality.
syn sync minlines=200
" Define the default highlighting. " Define the default highlighting.
" For version 5.7 and earlier: only when not done already " For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet " For version 5.8 and later: only when an item doesn't have highlighting yet
@@ -165,19 +180,20 @@ if version >= 508 || !exists("did_vhdl_syntax_inits")
command -nargs=+ HiLink hi def link <args> command -nargs=+ HiLink hi def link <args>
endif endif
HiLink cDefine PreProc " HiLink cDefine PreProc
HiLink vhdlSpecial Special HiLink vhdlSpecial Special
HiLink vhdlStatement Statement HiLink vhdlStatement Statement
HiLink vhdlCharacter String HiLink vhdlCharacter Character
HiLink vhdlString String HiLink vhdlString String
HiLink vhdlVector String HiLink vhdlVector Number
HiLink vhdlBoolean String HiLink vhdlBoolean Number
HiLink vhdlTodo Todo
HiLink vhdlComment Comment HiLink vhdlComment Comment
HiLink vhdlNumber String HiLink vhdlNumber Number
HiLink vhdlTime String HiLink vhdlTime Number
HiLink vhdlType Type HiLink vhdlType Type
HiLink vhdlOperator Type HiLink vhdlOperator Special
HiLink vhdlGlobal Error " HiLink vhdlGlobal Error
HiLink vhdlAttribute Type HiLink vhdlAttribute Type
delcommand HiLink delcommand HiLink