Skip to content
Snippets Groups Projects
Commit baca7f70 authored by Bram Moolenaar's avatar Bram Moolenaar
Browse files

Update runtime files. Add support for J.

parent 595cad2e
No related branches found
No related tags found
No related merge requests found
Showing
with 1159 additions and 1375 deletions
" Vim completion script
" Language: Clojure
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 05 February 2013
" Language: Clojure
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 08 September 2013
" Special forms and public vars in clojure.core
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-002/vim_clojure_static.clj
" Clojure 1.5.0-RC6
let s:words = ["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-readably*","*read-eval*","*read-whitelist*","*source-path*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods",".","..","/","<","<=","=","==",">",">=","EMPTY-NODE","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc!","assoc","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","booleans","bound-fn","bound-fn*","bound?","butlast","byte","byte-array","bytes","case","cast","catch","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","concat","cond","cond->","cond->>","condp","conj!","conj","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","def","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj!","disj","dissoc!","dissoc","distinct","distinct?","do","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","doubles","drop","drop-last","drop-while","empty","empty?","ensure","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","finally","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","hash","hash-combine","hash-map","hash-set","identical?","identity","if","if-let","if-not","ifn?","import","in-ns","inc","inc'","init-proxy","instance?","int","int-array","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mod","monitor-enter","monitor-exit","munge","name","namespace","namespace-munge","neg?","new","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop!","pop","pop-thread-bindings","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","quot","quote","rand","rand-int","rand-nth","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","realized?","recur","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seque","sequence","sequential?","set!","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","slurp","some","some->","some->>","some-fn","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","symbol","symbol?","sync","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","throw","time","to-array","to-array-2d","trampoline","transient","tree-seq","true?","try","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","update-in","update-proxy","use","val","vals","var","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","when","when-first","when-let","when-not","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"]
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-005/clj/src/vim_clojure_static/generate.clj
" Clojure version 1.5.1
let s:words = ["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-readably*","*read-eval*","*source-path*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods",".","..","/","<","<=","=","==",">",">=","EMPTY-NODE","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc!","assoc","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","booleans","bound-fn","bound-fn*","bound?","butlast","byte","byte-array","bytes","case","cast","catch","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","concat","cond","cond->","cond->>","condp","conj!","conj","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","def","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj!","disj","dissoc!","dissoc","distinct","distinct?","do","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","doubles","drop","drop-last","drop-while","empty","empty?","ensure","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","finally","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","hash","hash-combine","hash-map","hash-set","identical?","identity","if","if-let","if-not","ifn?","import","in-ns","inc","inc'","init-proxy","instance?","int","int-array","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mod","monitor-enter","monitor-exit","munge","name","namespace","namespace-munge","neg?","new","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop!","pop","pop-thread-bindings","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","quot","quote","rand","rand-int","rand-nth","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","realized?","recur","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seque","sequence","sequential?","set!","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","slurp","some","some->","some->>","some-fn","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","symbol","symbol?","sync","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","throw","time","to-array","to-array-2d","trampoline","transient","tree-seq","true?","try","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","update-in","update-proxy","use","val","vals","var","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","when","when-first","when-let","when-not","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"]
" Simple word completion omnifunc
function! clojurecomplete#Complete(findstart, base)
if a:findstart
return searchpos('\<', 'bnW', line('.'))[1] - 1
else
return { 'words': filter(copy(s:words), 'v:val =~ "\\V\\^' . a:base . '"') }
endif
if a:findstart
return searchpos('\<', 'bnW', line('.'))[1] - 1
else
return { 'words': filter(copy(s:words), 'v:val =~ "\\V\\^' . a:base . '"') }
endif
endfunction
" vim:sts=8:sw=8:ts=8:noet
......@@ -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: |%|, |(|, |)|, |`|,
|/|, |?|, |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.
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.
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
......
*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
......@@ -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.
*: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
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
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.
......
......@@ -581,8 +581,8 @@ CLOJURE *ft-clojure-indent* *clojure-indent*
Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention.
These conventions are not always universally followed, so the Clojure indent
script offers a few configurable options, listed below.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.
If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
......
......@@ -188,7 +188,7 @@ WINDOWS *vimball-windows*
* Changed silent! to sil! (shorter)
* Safed |'swf'| setting (during vimball extraction,
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
compression types) now works
* (Jan Steffens) added support for xz compression
......
*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
......@@ -36,23 +36,47 @@ not be repeated below, unless there is extra information.
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
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?
Patch to add async functionality. (Geoff Greer, 2013 Sep 1)
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?
(Yasuhiro Matsumoto, 2013 Aug 15)
NFA engine combining character mismatch. (glts, 2013 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.
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)
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.
......@@ -69,6 +93,10 @@ Wrapping around end of file does not work for "." after "cgn". (Dimitar
Dimitrov)
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.
(Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24)
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
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.
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.
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)
......@@ -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.
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.
Yasuhiro Matsumoto, 2013 May 31.
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)
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
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)
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"
doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer
probably causes this.
......
*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
......@@ -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
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
ignored if its owner differs from the owner of the edited file. Set 'verbose'
to get a message about that when opening a file.
ignored if its owner differs from the owner of the edited file, except when
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
changed with the 'undodir' option.
......
......@@ -328,8 +328,8 @@ actually use Vim to convert a file. Example: >
*45.5* Entering language text
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
these characters?
have thousands of characters, Unicode has over hundred thousand. So how do
you type these characters?
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|.
When you use a language that uses many more characters than keys on your
......
......@@ -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
":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
$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
......
......@@ -2395,7 +2395,7 @@ with special attributes were redrawn. Now only do this for characters that
actually are bold. Speeds up displaying considerably.
 
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.
Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
redrawing.
......
" Vim support file to detect file types
"
" 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
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
" 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 */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf
......@@ -952,6 +952,9 @@ au BufNewFile,BufRead inittab setf inittab
" Inno Setup
au BufNewFile,BufRead *.iss setf iss
" J
au BufNewFile,BufRead *.ijs setf j
" JAL
au BufNewFile,BufRead *.jal,*.JAL setf jal
......@@ -2092,7 +2095,7 @@ au BufNewFile,BufRead *.tak setf tak
" Task
au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata
au BufRead,BufNewFile *.task setf taskedit
au BufRead,BufNewFile *.task setf taskedit
" Tcl (JACL too)
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
" Upstart (init(8)) config files
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.conf 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 */.init/*.conf,*/.init/*.override setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
" Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera
......
" Vim filetype plugin file
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 30 January 2013
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 08 September 2013
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
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
" of user-defined def* definitions.
......@@ -35,10 +36,10 @@ setlocal commentstring=;\ %s
" 'completefunc' so that the user has some form of completion available when
" 'omnifunc' is set and no REPL connection exists.
for s:setting in ['omnifunc', 'completefunc']
if exists('&' . s:setting) && empty(eval('&' . s:setting))
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
endif
if exists('&' . s:setting) && empty(eval('&' . s:setting))
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
endif
endfor
" Take all directories of the CLOJURE_SOURCE_DIRS environment variable
......@@ -46,34 +47,34 @@ endfor
"
" This is a legacy option for VimClojure users.
if exists('$CLOJURE_SOURCE_DIRS')
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
let s:dir = fnameescape(s:dir)
" Whitespace escaping for Windows
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
execute "setlocal path+=" . s:dir . "/**"
endfor
let b:undo_ftplugin .= ' | setlocal path<'
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
let s:dir = fnameescape(s:dir)
" Whitespace escaping for Windows
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
execute "setlocal path+=" . s:dir . "/**"
endfor
let b:undo_ftplugin .= ' | setlocal path<'
endif
" Skip brackets in ignored syntax regions when using the % command
if exists('loaded_matchit')
let b:match_words = &matchpairs
let b:match_skip = 's:comment\|string\|regex\|character'
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
let b:match_words = &matchpairs
let b:match_skip = 's:comment\|string\|regex\|character'
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
endif
" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif
let &cpo = s:cpo_save
unlet! s:cpo_save s:setting s:dir
" vim:sts=4 sw=4 et:
" vim:sts=8:sw=8:ts=8:noet
" 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<"
" Vim indent file
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 30 January 2013
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" 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")
finish
finish
endif
let b:did_indent = 1
......@@ -25,290 +29,277 @@ setlocal indentkeys=!,o,O
if exists("*searchpairpos")
if !exists('g:clojure_maxlines')
let g:clojure_maxlines = 100
endif
if !exists('g:clojure_fuzzy_indent')
let g:clojure_fuzzy_indent = 1
endif
if !exists('g:clojure_fuzzy_indent_patterns')
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
endif
if !exists('g:clojure_fuzzy_indent_blacklist')
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
endif
if !exists('g:clojure_special_indent_words')
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
endif
if !exists('g:clojure_align_multiline_strings')
let g:clojure_align_multiline_strings = 0
endif
function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
function! s:CurrentChar()
return getline('.')[col('.')-1]
endfunction
function! s:CurrentWord()
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
endfunction
function! s:IsParen()
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
\ s:SynIdName() !~? '\vstring|comment'
endfunction
" Returns 1 if string matches a pattern in 'patterns', which may be a
" list of patterns, or a comma-delimited string of implicitly anchored
" patterns.
function! s:MatchesOne(patterns, string)
let list = type(a:patterns) == type([])
\ ? a:patterns
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
for pat in list
if a:string =~ pat | return 1 | endif
endfor
endfunction
function! s:SavePosition()
let [ _b, l, c, _o ] = getpos(".")
let b = bufnr("%")
return [b, l, c]
endfunction
function! s:RestorePosition(value)
let [b, l, c] = a:value
if bufnr("%") != b
execute b "buffer!"
endif
call setpos(".", [0, l, c, 0])
endfunction
function! s:MatchPairs(open, close, stopat)
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
" comments.
if a:stopat == 0
let stopat = max([line(".") - g:clojure_maxlines, 0])
else
let stopat = a:stopat
endif
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
return [pos[0], virtcol(pos)]
endfunction
function! s:ClojureCheckForStringWorker()
" Check whether there is the last character of the previous line is
" highlighted as a string. If so, we check whether it's a ". In this
" case we have to check also the previous character. The " might be the
" closing one. In case the we are still in the string, we search for the
" opening ". If this is not found we take the indent of the line.
let nb = prevnonblank(v:lnum - 1)
if nb == 0
return -1
endif
call cursor(nb, 0)
call cursor(0, col("$") - 1)
if s:SynIdName() !~? "string"
return -1
endif
" This will not work for a " in the first column...
if s:CurrentChar() == '"'
call cursor(0, col("$") - 2)
if s:SynIdName() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
return -1
endif
call cursor(0, col("$") - 1)
endif
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
if p != [0, 0]
return p[1] - 1
endif
return indent(".")
endfunction
function! s:CheckForString()
let pos = s:SavePosition()
try
let val = s:ClojureCheckForStringWorker()
finally
call s:RestorePosition(pos)
endtry
return val
endfunction
function! s:ClojureIsMethodSpecialCaseWorker(position)
" Find the next enclosing form.
call search('\S', 'Wb')
" Special case: we are at a '(('.
if s:CurrentChar() == '('
return 0
endif
call cursor(a:position)
let nextParen = s:MatchPairs('(', ')', 0)
" Special case: we are now at toplevel.
if nextParen == [0, 0]
return 0
endif
call cursor(nextParen)
call search('\S', 'W')
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
return 1
endif
return 0
endfunction
function! s:IsMethodSpecialCase(position)
let pos = s:SavePosition()
try
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
finally
call s:RestorePosition(pos)
endtry
return val
endfunction
function! GetClojureIndent()
" Get rid of special case.
if line(".") == 1
return 0
endif
" We have to apply some heuristics here to figure out, whether to use
" normal lisp indenting or not.
let i = s:CheckForString()
if i > -1
return i + !!g:clojure_align_multiline_strings
endif
call cursor(0, 1)
" Find the next enclosing [ or {. We can limit the second search
" to the line, where the [ was found. If no [ was there this is
" zero and we search for an enclosing {.
let paren = s:MatchPairs('(', ')', 0)
let bracket = s:MatchPairs('\[', '\]', paren[0])
let curly = s:MatchPairs('{', '}', bracket[0])
" 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
" If the curly was not chosen, we take the bracket indent - if
" there was one.
if bracket[0] > paren[0] || bracket[1] > paren[1]
return bracket[1]
endif
" There are neither { nor [ nor (, ie. we are at the toplevel.
if paren == [0, 0]
return 0
endif
" Now we have to reimplement lispindent. This is surprisingly easy, as
" soon as one has access to syntax items.
"
" - Check whether we are in a special position after a word in
" 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)
return paren[1] + &shiftwidth - 1
endif
" In case we are at the last character, we use the paren position.
if col("$") - 1 == paren[1]
return paren[1]
endif
" In case after the paren is a whitespace, we search for the next word.
normal! l
if s:CurrentChar() == ' '
normal! w
endif
" If we moved to another line, there is no word after the (. We
" use the ( position for indent.
if line(".") > paren[0]
return paren[1]
endif
" We still have to check, whether the keyword starts with a (, [ or {.
" In that case we use the ( position for indent.
let w = s:CurrentWord()
if stridx('([{', w[0]) > -1
return paren[1]
endif
" Test words without namespace qualifiers and leading reader macro
" metacharacters.
"
" e.g. clojure.core/defn and #'defn should both indent like defn.
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
if &lispwords =~ '\V\<' . ww . '\>'
return paren[1] + &shiftwidth - 1
endif
if g:clojure_fuzzy_indent
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
return paren[1] + &shiftwidth - 1
endif
normal! W
if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
endif
normal! ge
return virtcol(".") + 1
endfunction
setlocal indentexpr=GetClojureIndent()
if !exists('g:clojure_maxlines')
let g:clojure_maxlines = 100
endif
if !exists('g:clojure_fuzzy_indent')
let g:clojure_fuzzy_indent = 1
endif
if !exists('g:clojure_fuzzy_indent_patterns')
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
endif
if !exists('g:clojure_fuzzy_indent_blacklist')
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
endif
if !exists('g:clojure_special_indent_words')
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
endif
if !exists('g:clojure_align_multiline_strings')
let g:clojure_align_multiline_strings = 0
endif
function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
function! s:CurrentChar()
return getline('.')[col('.')-1]
endfunction
function! s:CurrentWord()
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
endfunction
function! s:IsParen()
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
\ s:SynIdName() !~? '\vstring|regex|comment|character'
endfunction
" Returns 1 if string matches a pattern in 'patterns', which may be a
" list of patterns, or a comma-delimited string of implicitly anchored
" patterns.
function! s:MatchesOne(patterns, string)
let list = type(a:patterns) == type([])
\ ? a:patterns
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
for pat in list
if a:string =~ pat | return 1 | endif
endfor
endfunction
function! s:MatchPairs(open, close, stopat)
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
" comments.
if a:stopat == 0
let stopat = max([line(".") - g:clojure_maxlines, 0])
else
let stopat = a:stopat
endif
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
return [pos[0], virtcol(pos)]
endfunction
function! s:ClojureCheckForStringWorker()
" Check whether there is the last character of the previous line is
" highlighted as a string. If so, we check whether it's a ". In this
" case we have to check also the previous character. The " might be the
" closing one. In case the we are still in the string, we search for the
" opening ". If this is not found we take the indent of the line.
let nb = prevnonblank(v:lnum - 1)
if nb == 0
return -1
endif
call cursor(nb, 0)
call cursor(0, col("$") - 1)
if s:SynIdName() !~? "string"
return -1
endif
" This will not work for a " in the first column...
if s:CurrentChar() == '"'
call cursor(0, col("$") - 2)
if s:SynIdName() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
return -1
endif
call cursor(0, col("$") - 1)
endif
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
if p != [0, 0]
return p[1] - 1
endif
return indent(".")
endfunction
function! s:CheckForString()
let pos = getpos('.')
try
let val = s:ClojureCheckForStringWorker()
finally
call setpos('.', pos)
endtry
return val
endfunction
function! s:ClojureIsMethodSpecialCaseWorker(position)
" Find the next enclosing form.
call search('\S', 'Wb')
" Special case: we are at a '(('.
if s:CurrentChar() == '('
return 0
endif
call cursor(a:position)
let nextParen = s:MatchPairs('(', ')', 0)
" Special case: we are now at toplevel.
if nextParen == [0, 0]
return 0
endif
call cursor(nextParen)
call search('\S', 'W')
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
return 1
endif
return 0
endfunction
function! s:IsMethodSpecialCase(position)
let pos = getpos('.')
try
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
finally
call setpos('.', pos)
endtry
return val
endfunction
function! GetClojureIndent()
" Get rid of special case.
if line(".") == 1
return 0
endif
" We have to apply some heuristics here to figure out, whether to use
" normal lisp indenting or not.
let i = s:CheckForString()
if i > -1
return i + !!g:clojure_align_multiline_strings
endif
call cursor(0, 1)
" Find the next enclosing [ or {. We can limit the second search
" to the line, where the [ was found. If no [ was there this is
" zero and we search for an enclosing {.
let paren = s:MatchPairs('(', ')', 0)
let bracket = s:MatchPairs('\[', '\]', paren[0])
let curly = s:MatchPairs('{', '}', bracket[0])
" 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
" If the curly was not chosen, we take the bracket indent - if
" there was one.
if bracket[0] > paren[0] || bracket[1] > paren[1]
return bracket[1]
endif
" There are neither { nor [ nor (, ie. we are at the toplevel.
if paren == [0, 0]
return 0
endif
" Now we have to reimplement lispindent. This is surprisingly easy, as
" soon as one has access to syntax items.
"
" - Check whether we are in a special position after a word in
" 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)
return paren[1] + &shiftwidth - 1
endif
" In case we are at the last character, we use the paren position.
if col("$") - 1 == paren[1]
return paren[1]
endif
" In case after the paren is a whitespace, we search for the next word.
call cursor(0, col('.') + 1)
if s:CurrentChar() == ' '
call search('\v\S', 'W')
endif
" If we moved to another line, there is no word after the (. We
" use the ( position for indent.
if line(".") > paren[0]
return paren[1]
endif
" We still have to check, whether the keyword starts with a (, [ or {.
" In that case we use the ( position for indent.
let w = s:CurrentWord()
if stridx('([{', w[0]) > -1
return paren[1]
endif
" Test words without namespace qualifiers and leading reader macro
" metacharacters.
"
" e.g. clojure.core/defn and #'defn should both indent like defn.
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
if &lispwords =~ '\V\<' . ww . '\>'
return paren[1] + &shiftwidth - 1
endif
if g:clojure_fuzzy_indent
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
return paren[1] + &shiftwidth - 1
endif
call search('\v\_s', 'cW')
call search('\v\S', 'W')
if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
endif
call search('\v\S', 'bW')
return virtcol(".") + 1
endfunction
setlocal indentexpr=GetClojureIndent()
else
" In case we have searchpairpos not available we fall back to
" normal lisp indenting.
setlocal indentexpr=
setlocal lisp
let b:undo_indent .= '| setlocal lisp<'
" In case we have searchpairpos not available we fall back to
" normal lisp indenting.
setlocal indentexpr=
setlocal lisp
let b:undo_indent .= '| setlocal lisp<'
endif
......@@ -390,9 +381,8 @@ setlocal lispwords+=while
" Exception handling
setlocal lispwords+=catch
setlocal lispwords+=try " For aesthetics when enclosing single line
let &cpo = s:save_cpo
unlet! s:save_cpo
" vim:sts=4 sw=4 et:
" vim:sts=8:sw=8:ts=8:noet
" 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
" 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)
" 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
" as Vim itself.
" Last Change: 2006-12-13
" URL: http://trific.ath.cx/Ftp/vim/syntax/apache.vim
" Last Change: 2013-09-16
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
" TODO: see particular FIXME's scattered through the file
" make it really linewise?
......@@ -30,7 +28,10 @@ syn keyword apacheFixme FIXME TODO XXX NOT
syn case ignore
syn match apacheAnything "\s[^>]*" 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
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
......
" Vim syntax file
" Language: Clojure
" Authors: Toralf Wittner <toralf.wittner@gmail.com>
" modified by Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
" Language: Clojure
" Authors: Toralf Wittner <toralf.wittner@gmail.com>
" modified by Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 05 February 2013
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Contributors: Joel Holdbrooks <cjholdbrooks@gmail.com> (Regexp support, bug fixes)
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 08 September 2013
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
if exists("b:current_syntax")
finish
endif
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-002/vim_clojure_static.clj
" Clojure 1.5.0-RC6
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-005/clj/src/vim_clojure_static/generate.clj
" Clojure version 1.5.1
syntax keyword clojureConstant nil
syntax keyword clojureBoolean false true
syntax keyword clojureSpecial . catch clojure.core/fn clojure.core/let clojure.core/loop def do finally fn if let loop monitor-enter monitor-exit new quote recur set! throw try var
......@@ -28,7 +26,7 @@ syntax keyword clojureRepeat clojure.core/doall clojure.core/dorun clojure.core/
syntax keyword clojureDefine clojure.core/definline clojure.core/definterface clojure.core/defmacro clojure.core/defmethod clojure.core/defmulti clojure.core/defn clojure.core/defn- clojure.core/defonce clojure.core/defprotocol clojure.core/defrecord clojure.core/defstruct clojure.core/deftype definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype
syntax keyword clojureMacro -> ->> .. amap and areduce as-> assert binding bound-fn clojure.core/-> clojure.core/->> clojure.core/.. clojure.core/amap clojure.core/and clojure.core/areduce clojure.core/as-> clojure.core/assert clojure.core/binding clojure.core/bound-fn clojure.core/comment clojure.core/declare clojure.core/delay clojure.core/dosync clojure.core/doto clojure.core/extend-protocol clojure.core/extend-type clojure.core/for clojure.core/future clojure.core/gen-class clojure.core/gen-interface clojure.core/import clojure.core/io! clojure.core/lazy-cat clojure.core/lazy-seq clojure.core/letfn clojure.core/locking clojure.core/memfn clojure.core/ns clojure.core/or clojure.core/proxy clojure.core/proxy-super clojure.core/pvalues clojure.core/refer-clojure clojure.core/reify clojure.core/some-> clojure.core/some->> clojure.core/sync clojure.core/time clojure.core/with-bindings clojure.core/with-in-str clojure.core/with-loading-context clojure.core/with-local-vars clojure.core/with-open clojure.core/with-out-str clojure.core/with-precision clojure.core/with-redefs comment declare delay dosync doto extend-protocol extend-type for future gen-class gen-interface import io! lazy-cat lazy-seq letfn locking memfn ns or proxy proxy-super pvalues refer-clojure reify some-> some->> sync time with-bindings with-in-str with-loading-context with-local-vars with-open with-out-str with-precision with-redefs
syntax keyword clojureFunc * *' + +' - -' ->ArrayChunk ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods / < <= = == > >= accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root ancestors apply array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint biginteger bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn* bound? butlast byte byte-array bytes cast char char-array char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version clojure.core/* clojure.core/*' clojure.core/+ clojure.core/+' clojure.core/- clojure.core/-' clojure.core/->ArrayChunk clojure.core/->Vec clojure.core/->VecNode clojure.core/->VecSeq clojure.core/-cache-protocol-fn clojure.core/-reset-methods clojure.core// clojure.core/< clojure.core/<= clojure.core/= clojure.core/== clojure.core/> clojure.core/>= clojure.core/accessor clojure.core/aclone clojure.core/add-classpath clojure.core/add-watch clojure.core/agent clojure.core/agent-error clojure.core/agent-errors clojure.core/aget clojure.core/alength clojure.core/alias clojure.core/all-ns clojure.core/alter clojure.core/alter-meta! clojure.core/alter-var-root clojure.core/ancestors clojure.core/apply clojure.core/array-map clojure.core/aset clojure.core/aset-boolean clojure.core/aset-byte clojure.core/aset-char clojure.core/aset-double clojure.core/aset-float clojure.core/aset-int clojure.core/aset-long clojure.core/aset-short clojure.core/assoc clojure.core/assoc! clojure.core/assoc-in clojure.core/associative? clojure.core/atom clojure.core/await clojure.core/await-for clojure.core/await1 clojure.core/bases clojure.core/bean clojure.core/bigdec clojure.core/bigint clojure.core/biginteger clojure.core/bit-and clojure.core/bit-and-not clojure.core/bit-clear clojure.core/bit-flip clojure.core/bit-not clojure.core/bit-or clojure.core/bit-set clojure.core/bit-shift-left clojure.core/bit-shift-right clojure.core/bit-test clojure.core/bit-xor clojure.core/boolean clojure.core/boolean-array clojure.core/booleans clojure.core/bound-fn* clojure.core/bound? clojure.core/butlast clojure.core/byte clojure.core/byte-array clojure.core/bytes clojure.core/cast clojure.core/char clojure.core/char-array clojure.core/char? clojure.core/chars clojure.core/chunk clojure.core/chunk-append clojure.core/chunk-buffer clojure.core/chunk-cons clojure.core/chunk-first clojure.core/chunk-next clojure.core/chunk-rest clojure.core/chunked-seq? clojure.core/class clojure.core/class? clojure.core/clear-agent-errors clojure.core/clojure-version clojure.core/coll? clojure.core/commute clojure.core/comp clojure.core/comparator clojure.core/compare clojure.core/compare-and-set! clojure.core/compile clojure.core/complement clojure.core/concat clojure.core/conj clojure.core/conj! clojure.core/cons clojure.core/constantly clojure.core/construct-proxy clojure.core/contains? clojure.core/count clojure.core/counted? clojure.core/create-ns clojure.core/create-struct clojure.core/cycle clojure.core/dec clojure.core/dec' clojure.core/decimal? clojure.core/delay? clojure.core/deliver clojure.core/denominator clojure.core/deref clojure.core/derive clojure.core/descendants clojure.core/destructure clojure.core/disj clojure.core/disj! clojure.core/dissoc clojure.core/dissoc! clojure.core/distinct clojure.core/distinct? clojure.core/double clojure.core/double-array clojure.core/doubles clojure.core/drop clojure.core/drop-last clojure.core/drop-while clojure.core/empty clojure.core/empty? clojure.core/ensure clojure.core/enumeration-seq clojure.core/error-handler clojure.core/error-mode clojure.core/eval clojure.core/even? clojure.core/every-pred clojure.core/every? clojure.core/ex-data clojure.core/ex-info clojure.core/extend clojure.core/extenders clojure.core/extends? clojure.core/false? clojure.core/ffirst clojure.core/file-seq clojure.core/filter clojure.core/filterv clojure.core/find clojure.core/find-keyword clojure.core/find-ns clojure.core/find-protocol-impl clojure.core/find-protocol-method clojure.core/find-var clojure.core/first clojure.core/flatten clojure.core/float clojure.core/float-array clojure.core/float? clojure.core/floats clojure.core/flush clojure.core/fn? clojure.core/fnext clojure.core/fnil clojure.core/force clojure.core/format clojure.core/frequencies clojure.core/future-call clojure.core/future-cancel clojure.core/future-cancelled? clojure.core/future-done? clojure.core/future? clojure.core/gensym clojure.core/get clojure.core/get-in clojure.core/get-method clojure.core/get-proxy-class clojure.core/get-thread-bindings clojure.core/get-validator clojure.core/group-by clojure.core/hash clojure.core/hash-combine clojure.core/hash-map clojure.core/hash-set clojure.core/identical? clojure.core/identity clojure.core/ifn? clojure.core/in-ns clojure.core/inc clojure.core/inc' clojure.core/init-proxy clojure.core/instance? clojure.core/int clojure.core/int-array clojure.core/integer? clojure.core/interleave clojure.core/intern clojure.core/interpose clojure.core/into clojure.core/into-array clojure.core/ints clojure.core/isa? clojure.core/iterate clojure.core/iterator-seq clojure.core/juxt clojure.core/keep clojure.core/keep-indexed clojure.core/key clojure.core/keys clojure.core/keyword clojure.core/keyword? clojure.core/last clojure.core/line-seq clojure.core/list clojure.core/list* clojure.core/list? clojure.core/load clojure.core/load-file clojure.core/load-reader clojure.core/load-string clojure.core/loaded-libs clojure.core/long clojure.core/long-array clojure.core/longs clojure.core/macroexpand clojure.core/macroexpand-1 clojure.core/make-array clojure.core/make-hierarchy clojure.core/map clojure.core/map-indexed clojure.core/map? clojure.core/mapcat clojure.core/mapv clojure.core/max clojure.core/max-key clojure.core/memoize clojure.core/merge clojure.core/merge-with clojure.core/meta clojure.core/method-sig clojure.core/methods clojure.core/min clojure.core/min-key clojure.core/mod clojure.core/munge clojure.core/name clojure.core/namespace clojure.core/namespace-munge clojure.core/neg? clojure.core/newline clojure.core/next clojure.core/nfirst clojure.core/nil? clojure.core/nnext clojure.core/not clojure.core/not-any? clojure.core/not-empty clojure.core/not-every? clojure.core/not= clojure.core/ns-aliases clojure.core/ns-imports clojure.core/ns-interns clojure.core/ns-map clojure.core/ns-name clojure.core/ns-publics clojure.core/ns-refers clojure.core/ns-resolve clojure.core/ns-unalias clojure.core/ns-unmap clojure.core/nth clojure.core/nthnext clojure.core/nthrest clojure.core/num clojure.core/number? clojure.core/numerator clojure.core/object-array clojure.core/odd? clojure.core/parents clojure.core/partial clojure.core/partition clojure.core/partition-all clojure.core/partition-by clojure.core/pcalls clojure.core/peek clojure.core/persistent! clojure.core/pmap clojure.core/pop clojure.core/pop! clojure.core/pop-thread-bindings clojure.core/pos? clojure.core/pr clojure.core/pr-str clojure.core/prefer-method clojure.core/prefers clojure.core/print clojure.core/print-ctor clojure.core/print-simple clojure.core/print-str clojure.core/printf clojure.core/println clojure.core/println-str clojure.core/prn clojure.core/prn-str clojure.core/promise clojure.core/proxy-call-with-super clojure.core/proxy-mappings clojure.core/proxy-name clojure.core/push-thread-bindings clojure.core/quot clojure.core/rand clojure.core/rand-int clojure.core/rand-nth clojure.core/range clojure.core/ratio? clojure.core/rational? clojure.core/rationalize clojure.core/re-find clojure.core/re-groups clojure.core/re-matcher clojure.core/re-matches clojure.core/re-pattern clojure.core/re-seq clojure.core/read clojure.core/read-line clojure.core/read-string clojure.core/realized? clojure.core/reduce clojure.core/reduce-kv clojure.core/reduced clojure.core/reduced? clojure.core/reductions clojure.core/ref clojure.core/ref-history-count clojure.core/ref-max-history clojure.core/ref-min-history clojure.core/ref-set clojure.core/refer clojure.core/release-pending-sends clojure.core/rem clojure.core/remove clojure.core/remove-all-methods clojure.core/remove-method clojure.core/remove-ns clojure.core/remove-watch clojure.core/repeat clojure.core/repeatedly clojure.core/replace clojure.core/replicate clojure.core/require clojure.core/reset! clojure.core/reset-meta! clojure.core/resolve clojure.core/rest clojure.core/restart-agent clojure.core/resultset-seq clojure.core/reverse clojure.core/reversible? clojure.core/rseq clojure.core/rsubseq clojure.core/satisfies? clojure.core/second clojure.core/select-keys clojure.core/send clojure.core/send-off clojure.core/send-via clojure.core/seq clojure.core/seq? clojure.core/seque clojure.core/sequence clojure.core/sequential? clojure.core/set clojure.core/set-agent-send-executor! clojure.core/set-agent-send-off-executor! clojure.core/set-error-handler! clojure.core/set-error-mode! clojure.core/set-validator! clojure.core/set? clojure.core/short clojure.core/short-array clojure.core/shorts clojure.core/shuffle clojure.core/shutdown-agents clojure.core/slurp clojure.core/some clojure.core/some-fn clojure.core/sort clojure.core/sort-by clojure.core/sorted-map clojure.core/sorted-map-by clojure.core/sorted-set clojure.core/sorted-set-by clojure.core/sorted? clojure.core/special-symbol? clojure.core/spit clojure.core/split-at clojure.core/split-with clojure.core/str clojure.core/string? clojure.core/struct clojure.core/struct-map clojure.core/subs clojure.core/subseq clojure.core/subvec clojure.core/supers clojure.core/swap! clojure.core/symbol clojure.core/symbol? clojure.core/take clojure.core/take-last clojure.core/take-nth clojure.core/take-while clojure.core/test clojure.core/the-ns clojure.core/thread-bound? clojure.core/to-array clojure.core/to-array-2d clojure.core/trampoline clojure.core/transient clojure.core/tree-seq clojure.core/true? clojure.core/type clojure.core/unchecked-add clojure.core/unchecked-add-int clojure.core/unchecked-byte clojure.core/unchecked-char clojure.core/unchecked-dec clojure.core/unchecked-dec-int clojure.core/unchecked-divide-int clojure.core/unchecked-double clojure.core/unchecked-float clojure.core/unchecked-inc clojure.core/unchecked-inc-int clojure.core/unchecked-int clojure.core/unchecked-long clojure.core/unchecked-multiply clojure.core/unchecked-multiply-int clojure.core/unchecked-negate clojure.core/unchecked-negate-int clojure.core/unchecked-remainder-int clojure.core/unchecked-short clojure.core/unchecked-subtract clojure.core/unchecked-subtract-int clojure.core/underive clojure.core/update-in clojure.core/update-proxy clojure.core/use clojure.core/val clojure.core/vals clojure.core/var-get clojure.core/var-set clojure.core/var? clojure.core/vary-meta clojure.core/vec clojure.core/vector clojure.core/vector-of clojure.core/vector? clojure.core/with-bindings* clojure.core/with-meta clojure.core/with-redefs-fn clojure.core/xml-seq clojure.core/zero? clojure.core/zipmap coll? commute comp comparator compare compare-and-set! compile complement concat conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? delay? deliver denominator deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extenders extends? false? ffirst file-seq filter filterv find find-keyword find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn? fnext fnil force format frequencies future-call future-cancel future-cancelled? future-done? future? gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by hash hash-combine hash-map hash-set identical? identity ifn? in-ns inc inc' init-proxy instance? int int-array integer? interleave intern interpose into into-array ints isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last line-seq list list* list? load load-file load-reader load-string loaded-libs long long-array longs macroexpand macroexpand-1 make-array make-hierarchy map map-indexed map? mapcat mapv max max-key memoize merge merge-with meta method-sig methods min min-key mod munge name namespace namespace-munge neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers print print-ctor print-simple print-str printf println println-str prn prn-str promise proxy-call-with-super proxy-mappings proxy-name push-thread-bindings quot rand rand-int rand-nth range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string realized? reduce reduce-kv reduced reduced? reductions ref ref-history-count ref-max-history ref-min-history ref-set refer release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off send-via seq seq? seque sequence sequential? set set-agent-send-executor! set-agent-send-off-executor! set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents slurp some some-fn sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! symbol symbol? take take-last take-nth take-while test the-ns thread-bound? to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector-of vector? with-bindings* with-meta with-redefs-fn xml-seq zero? zipmap
syntax keyword clojureVariable *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *default-data-reader-fn* *e *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *read-whitelist* *source-path* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* EMPTY-NODE char-escape-string char-name-string clojure.core/*1 clojure.core/*2 clojure.core/*3 clojure.core/*agent* clojure.core/*allow-unresolved-vars* clojure.core/*assert* clojure.core/*clojure-version* clojure.core/*command-line-args* clojure.core/*compile-files* clojure.core/*compile-path* clojure.core/*compiler-options* clojure.core/*data-readers* clojure.core/*default-data-reader-fn* clojure.core/*e clojure.core/*err* clojure.core/*file* clojure.core/*flush-on-newline* clojure.core/*fn-loader* clojure.core/*in* clojure.core/*math-context* clojure.core/*ns* clojure.core/*out* clojure.core/*print-dup* clojure.core/*print-length* clojure.core/*print-level* clojure.core/*print-meta* clojure.core/*print-readably* clojure.core/*read-eval* clojure.core/*read-whitelist* clojure.core/*source-path* clojure.core/*unchecked-math* clojure.core/*use-context-classloader* clojure.core/*verbose-defrecords* clojure.core/*warn-on-reflection* clojure.core/EMPTY-NODE clojure.core/char-escape-string clojure.core/char-name-string clojure.core/default-data-readers clojure.core/primitives-classnames clojure.core/print-dup clojure.core/print-method clojure.core/unquote clojure.core/unquote-splicing default-data-readers primitives-classnames print-dup print-method unquote unquote-splicing
syntax keyword clojureVariable *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *default-data-reader-fn* *e *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* EMPTY-NODE char-escape-string char-name-string clojure.core/*1 clojure.core/*2 clojure.core/*3 clojure.core/*agent* clojure.core/*allow-unresolved-vars* clojure.core/*assert* clojure.core/*clojure-version* clojure.core/*command-line-args* clojure.core/*compile-files* clojure.core/*compile-path* clojure.core/*compiler-options* clojure.core/*data-readers* clojure.core/*default-data-reader-fn* clojure.core/*e clojure.core/*err* clojure.core/*file* clojure.core/*flush-on-newline* clojure.core/*fn-loader* clojure.core/*in* clojure.core/*math-context* clojure.core/*ns* clojure.core/*out* clojure.core/*print-dup* clojure.core/*print-length* clojure.core/*print-level* clojure.core/*print-meta* clojure.core/*print-readably* clojure.core/*read-eval* clojure.core/*source-path* clojure.core/*unchecked-math* clojure.core/*use-context-classloader* clojure.core/*verbose-defrecords* clojure.core/*warn-on-reflection* clojure.core/EMPTY-NODE clojure.core/char-escape-string clojure.core/char-name-string clojure.core/default-data-readers clojure.core/primitives-classnames clojure.core/print-dup clojure.core/print-method clojure.core/unquote clojure.core/unquote-splicing default-data-readers primitives-classnames print-dup print-method unquote unquote-splicing
" Keywords are symbols:
" static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)");
......@@ -36,13 +34,15 @@ syntax keyword clojureVariable *1 *2 *3 *agent* *allow-unresolved-vars* *assert*
" * Must not end in a : or /
" * Must not have two adjacent colons except at the beginning
" * Must not contain any reader metacharacters except for ' and #
syntax match clojureKeyword "\v:{1,2}%([^ \n\r\t()\[\]{}";@^`~\\%/]+/)*[^ \n\r\t()\[\]{}";@^`~\\%/]+:@<!"
syntax match clojureKeyword "\v<:{1,2}%([^ \n\r\t()\[\]{}";@^`~\\%/]+/)*[^ \n\r\t()\[\]{}";@^`~\\%/]+:@<!>"
syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained
syntax region clojureString start=/L\="/ skip=/\\\\\|\\"/ end=/"/
syntax region clojureString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape
syntax match clojureCharacter "\\."
syntax match clojureCharacter "\\o[0-7]\{3\}"
syntax match clojureCharacter "\\u[0-9]\{4\}"
syntax match clojureCharacter "\\o\%([0-3]\o\{2\}\|\o\{1,2\}\)"
syntax match clojureCharacter "\\u\x\{4\}"
syntax match clojureCharacter "\\space"
syntax match clojureCharacter "\\tab"
syntax match clojureCharacter "\\newline"
......@@ -50,16 +50,17 @@ syntax match clojureCharacter "\\return"
syntax match clojureCharacter "\\backspace"
syntax match clojureCharacter "\\formfeed"
let s:radixChars = "0123456789abcdefghijklmnopqrstuvwxyz"
syntax match clojureSymbol "\v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@<!"
let s:radix_chars = "0123456789abcdefghijklmnopqrstuvwxyz"
for s:radix in range(2, 36)
execute 'syntax match clojureNumber "\c\<-\?' . s:radix . 'r[' . strpart(s:radixChars, 0, s:radix) . ']\+\>"'
execute 'syntax match clojureNumber "\v\c<[-+]?' . s:radix . 'r[' . strpart(s:radix_chars, 0, s:radix) . ']+>"'
endfor
unlet! s:radixChars s:radix
unlet! s:radix_chars s:radix
syntax match clojureNumber "\<-\=[0-9]\+\(\.[0-9]*\)\=\(M\|\([eE][-+]\?[0-9]\+\)\)\?\>"
syntax match clojureNumber "\<-\=[0-9]\+N\?\>"
syntax match clojureNumber "\<-\=0x[0-9a-fA-F]\+\>"
syntax match clojureNumber "\<-\=[0-9]\+/[0-9]\+\>"
syntax match clojureNumber "\v<[-+]?%(0\o*|0x\x+|[1-9]\d*)N?>"
syntax match clojureNumber "\v<[-+]?%(0|[1-9]\d*|%(0|[1-9]\d*)\.\d*)%(M|[eE][-+]?\d+)?>"
syntax match clojureNumber "\v<[-+]?%(0|[1-9]\d*)/%(0|[1-9]\d*)>"
syntax match clojureVarArg "&"
......@@ -69,66 +70,110 @@ syntax match clojureUnquote "\~"
syntax match clojureUnquote "\~@"
syntax match clojureMeta "\^"
syntax match clojureDeref "@"
syntax match clojureAnonArg "%\(\d\|&\)\?"
syntax match clojureDispatch "\v#[\^\'\=\<]?"
syntax region clojureRegexp start=/L\=\#"/ skip=/\\\\\|\\"/ end=/"/
syntax match clojureComment ";.*$" contains=clojureTodo,@Spell
syntax match clojureDispatch "\v#[\^'=<_]?"
" Clojure permits no more than 20 params.
syntax match clojureAnonArg "%\(20\|1\d\|[1-9]\|&\)\?"
syntax match clojureRegexpEscape "\v\\%([\\tnrfae()\[\]{}^$*?+]|c\u|0[0-3]?\o{1,2}|x%(\x{2}|\{\x{1,6}\})|u\x{4})" contained display
syntax region clojureRegexpQuoted start=/\\Q/ms=e+1 skip=/\\\\\|\\"/ end=/\\E/me=s-1 end=/"/me=s-1 contained
syntax region clojureRegexpQuote start=/\\Q/ skip=/\\\\\|\\"/ end=/\\E/ end=/"/me=s-1 contains=clojureRegexpQuoted keepend contained
" Character property classes
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-005/clj/src/vim_clojure_static/generate.clj
" Java version 1.7.0_40
syntax match clojureRegexpPosixCharClass "\v\\[pP]\{%(Blank|P%(unct|rint)|Digit|Graph|A%(l%(pha|num)|SCII)|XDigit|Space|Upper|Lower|Cntrl)\}" contained display
syntax match clojureRegexpJavaCharClass "\v\\[pP]\{java%(U%(pperCase|nicodeIdentifier%(Start|Part))|Mirrored|Alphabetic|SpaceChar|D%(efined|igit)|Whitespace|L%(etter%(OrDigit)?|owerCase)|TitleCase|I%(de%(ographic|ntifierIgnorable)|SOControl)|JavaIdentifier%(Start|Part))\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\cIs%(blank|hex%(digit|_digit)|uppercase|digit|control|a%(ssigned|l%(phabetic|num))|graph|ideographic|p%(rint|unctuation)|titlecase|w%(hite%(_space|space)|ord)|l%(owercase|etter)|noncharacter%(codepoint|_code_point))\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP][MLNPSZC]" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(C[fonsc]?|L[DmloutC]?|S[kmoc]?|P[edfiosc]?|M[enc]?|Z[lps]?|N[dlo]?)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(Is|gc\=|general_category\=)?%(C[fonsc]?|L[DmloutC]?|S[kmoc]?|P[edfiosc]?|M[enc]?|Z[lps]?|N[dlo]?)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(Is|sc\=|script\=)%(h%(ira%(gana)?|an%([io]|g%(ul)?|unoo)?|ebr%(ew)?)|yi%(ii)?|java%(nese)?|c%(prt|y%(r%(illic|l)|priot)|h%(er%(okee)?|am)|uneiform|o%(mmon|pt%(ic)?)|a%(n%(adian_aboriginal|s)|ri%(an)?))|i%(mperial_aramaic|tal|n%(herited|scriptional_pa%(rthian|hlavi)))|a%(r%(ab%(ic)?|m%([in]|enian))|v%(st|estan))|g%(oth%(ic)?|u%(j%(arati|r)|r%(mukhi|u))|lag%(olitic)?|eor%(gian)?|re%(k|ek))|b%(u%(gi%(nese)?|h%(d|id))|ra%(i%(lle)?|h%(mi)?)|a%(mum?|t%(k|ak)|li%(nese)?)|opo%(mofo)?|eng%(ali)?)|s%(ha%(w|vian)|und%(anese)?|y%(r%(iac|c)|lo%(ti_nagri)?)|inh%(ala)?|a%(ur%(ashtra)?|rb|m%(r|aritan)))|d%(srt|e%(va%(nagari)?|seret))|l%(a%(na|oo?|t%(n|in))|epc%(ha)?|i%(n%(ear_b|b)|mbu?|su)|y%([dc]i%(an)?))|p%(h%(oenician|nx|li|ag%(s_pa)?)|rti)|e%(gyp%(tian_hieroglyphs)?|thi%(opic)?)|r%(jng|un%(ic|r)|ejang)|u%(nknown|gar%(itic)?)|vaii?|n%(koo?|ew_tai_lue)|m%(y%(mr|anmar)|tei|a%(nd%(aic)?|layalam)|ong%(olian)?|eetei_mayek|lym)|z%(inh|yyy|zzz)|t%(glg|fng|i%(finagh|b%(t|etan))|ha%(i|a%(na)?)|elu%(gu)?|a%(i_%(viet|le|tham)|l[eu]|g%(alog|b%(anwa)?)|vt|m%(l|il)))|x%(sux|peo)|o%(r%(iya|kh|ya)|sma%(nya)?|g%(am|ham)|l%(ck|d_%(south_arabian|turkic|italic|persian)|_chiki))|k%(a%(takana|yah_li|n%(nada|a)|li|ithi)|h%(m%(r|er)|ar%(oshthi)?)|thi|nda))\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(In|blk\=|block\=)%(s%(a%(maritan|urashtra)|mall%(_form_variants| form variants|formvariants)|inhala|y%(loti%(nagri|[_ ]nagri)|riac)|havian|p%(ecials|acing%(modifierletters|_modifier_letters| modifier letters))|u%(p%(erscripts%(andsubscripts|_and_subscripts| and subscripts)|plementa%(ry%( private use area-[ab]|_private_use_area_[ab]|privateusearea-[ab])|l%( %(arrows-[ab]|punctuation|mathematical operators)|arrows-[ab]|_%(punctuation|mathematical_operators|arrows_[ab])|punctuation|mathematicaloperators)))|ndanese|rrogates_area))|l%(a%(o|tin%(_%(extended_%(a%(dditional)?|[dcb])|1_supplement)| extended%(-[dacb]| additional)|-1%( supplement|supplement)|extended%(additional|-[dacb])))|e%(pcha|tterlike%(symbols|[_ ]symbols))|y[cd]ian|i%(su|mbu|near%(b%(ideograms|syllabary)|_b_%(ideograms|syllabary)| b %(ideograms|syllabary)))|ow%([_ ]surrogates|surrogates))|b%(a%(sic%(latin|[_ ]latin)|tak|linese|mum%([_ ]supplement|supplement)?)|yzantine%(_musical_symbols| musical symbols|musicalsymbols)|engali|u%(ginese|hid)|lock%(elements|[_ ]elements)|ra%(hmi|ille%([ _]patterns|patterns))|o%(x%(drawing|[_ ]drawing)|pomofo%([ _]extended|extended)?))|t%(a%(g%(s|alog|banwa)|mil|i%( %(viet|xuan jing symbols|le|tham)|viet|le|_%(xuan_jing_symbols|viet|le|tham)|tham|xuanjingsymbols))|ha%(i|ana)|elugu|i%(finagh|betan)|ransport%(_and_map_symbols| and map symbols|andmapsymbols))|n%(ew%(_tai_lue| tai lue|tailue)|umber%([ _]forms|forms)|ko)|m%(iscellaneous%(_%(mathematical_symbols_[ab]|symbols%(_and_%(arrows|pictographs))?|technical)|mathematicalsymbols-[ab]|technical| %(symbols%( and %(arrows|pictographs))?|mathematical symbols-[ab]|technical)|symbols%(and%(arrows|pictographs))?)|eetei%(mayek|[_ ]mayek)|a%(ndaic|thematical%(alphanumericsymbols|operators|_%(alphanumeric_symbols|operators)| %(operators|alphanumeric symbols))|hjong%(tiles|[_ ]tiles)|layalam)|yanmar%(_extended_a|extended-a| extended-a)?|o%(difier%( tone letters|toneletters|_tone_letters)|ngolian)|usical%(symbols|[_ ]symbols))|p%(h%(a%(gs[-_]pa|istos%(disc|[_ ]disc))|o%(netic%(_extensions%(_supplement)?| extensions%( supplement)?|extensions%(supplement)?)|enician))|rivate%(usearea|_use_area| use area)|laying%(cards|[_ ]cards))|javanese|u%(garitic|nified%(_canadian_aboriginal_syllabics%(_extended)?| canadian aboriginal syllabics%( extended)?|canadianaboriginalsyllabics%(extended)?))|o%(riya|gham|l%([ _]chiki|d%(turkic|_%(south_arabian|turkic|italic|persian)|italic|persian| %(south arabian|turkic|italic|persian)|southarabian)|chiki)|smanya|ptical%(_character_recognition| character recognition|characterrecognition))|v%(e%(dic%(extensions|[_ ]extensions)|rtical%([ _]forms|forms))|a%(i|riation%(_selectors%(_supplement)?| selectors%( supplement)?|selectors%(supplement)?)))|a%(vestan|l%(phabetic%(_presentation_forms| presentation forms|presentationforms)|chemical%(symbols|[_ ]symbols))|ncient%( %(symbols|greek %(musical notation|numbers))|symbols|greek%(musicalnotation|numbers)|_%(symbols|greek_%(musical_notation|numbers)))|egean%([ _]numbers|numbers)|r%(menian|rows|abic%( %(presentation forms-[ab]|supplement)|_%(presentation_forms_[ab]|supplement)|presentationforms-[ab]|supplement)?))|i%(nscriptional%(pa%(rthian|hlavi)|%([_ ]pa%(rthian|hlavi)))|deographic%( description characters|descriptioncharacters|_description_characters)|pa%(extensions|[_ ]extensions)|mperial%(aramaic|[_ ]aramaic))|yi%(%([_ ]%(radicals|syllables))|radicals|syllables|jing%(hexagramsymbols|_hexagram_symbols| hexagram symbols))|k%(a%(yah%(li|[_ ]li)|n%(nada|bun|a%([_ ]supplement|supplement)|gxi%(radicals|[_ ]radicals))|ithi|takana%(phoneticextensions|_phonetic_extensions| phonetic extensions)?)|h%(aroshthi|mer%(symbols|[_ ]symbols)?))|d%(e%(vanagari%([ _]extended|extended)?|seret)|omino%(tiles|[_ ]tiles)|ingbats)|g%(lagolitic|othic|reek%(andcoptic| %(and coptic|extended)|extended|_extended)?|u%(rmukhi|jarati)|e%(o%(metric%([_ ]shapes|shapes)|rgian%([_ ]supplement|supplement)?)|neral%(punctuation|[_ ]punctuation)))|e%(nclosed%( %(ideographic supplement|cjk letters and months|alphanumeric%( supplement|s))|cjklettersandmonths|_%(ideographic_supplement|alphanumeric%(_supplement|s)|cjk_letters_and_months)|alphanumerics%(upplement)?|ideographicsupplement)|moticons|thiopic%(extended%(-a)?| %(extended%(-a)?|supplement)|_%(extended%(_a)?|supplement)|supplement)?|gyptian%(hieroglyphs|[_ ]hieroglyphs))|r%(ejang|u%(nic|mi%(numeralsymbols|_numeral_symbols| numeral symbols)))|c%(jk%(_%(compatibility%(_%(ideographs%(_supplement)?|forms))?|radicals_supplement|unified_ideographs%(_extension_[dacb])?|s%(trokes|ymbols_and_punctuation))|compatibility%(ideographs%(supplement)?|forms)?|unifiedideographs%(extension[dacb])?|radicalssupplement|s%(ymbolsandpunctuation|trokes)| %(unified ideographs%( extension [dacb])?|s%(trokes|ymbols and punctuation)|radicals supplement|compatibility%( %(forms|ideographs%( supplement)?))?))|h%(am|erokee)|u%(neiform%(_numbers_and_punctuation| numbers and punctuation|numbersandpunctuation)?|rrency%(symbols|[_ ]symbols))|y%(rillic%(_%(extended_[ab]|supplementary)| %(extended-[ab]|supplement%(ary)?)|extended-[ab]|supplement%(ary)?)?|priot%([_ ]syllabary|syllabary))|o%(ntrol%(pictures|[_ ]pictures)|unting%(rodnumerals|_rod_numerals| rod numerals)|m%(bining%(halfmarks|diacriticalmarks%(forsymbols|supplement)?| %(marks for symbols|half marks|diacritical marks%( %(for symbols|supplement))?)|marksforsymbols|_%(marks_for_symbols|half_marks|diacritical_marks%(_supplement)?))|mon%( indic number forms|indicnumberforms|_indic_number_forms))|ptic)|arian)|h%(i%(ragana|gh%(_%(private_use_surrogates|surrogates)| %(private use surrogates|surrogates)|surrogates|privateusesurrogates))|ebrew|a%(n%(unoo|gul%(jamo%(extended-[ab])?| %(jamo%( extended-[ab])?|syllables|compatibility jamo)|_%(syllables|jamo%(_extended_[ab])?|compatibility_jamo)|syllables|compatibilityjamo))|lfwidth%( and fullwidth forms|andfullwidthforms|_and_fullwidth_forms))))\}" contained display
syntax match clojureRegexpPredefinedCharClass "\v%(\\[dDsSwW]|\.)" contained display
syntax cluster clojureRegexpCharPropertyClasses contains=clojureRegexpPosixCharClass,clojureRegexpJavaCharClass,clojureRegexpUnicodeCharClass
syntax cluster clojureRegexpCharClasses contains=clojureRegexpPredefinedCharClass,clojureRegexpCharClass,@clojureRegexpCharPropertyClasses
syntax region clojureRegexpCharClass start="\[" skip=/\\\\\|\\]/ end="]" contained contains=clojureRegexpPredefinedCharClass,@clojureRegexpCharPropertyClasses
syntax match clojureRegexpBoundary "\\[bBAGZz]" contained display
syntax match clojureRegexpBoundary "[$^]" contained display
syntax match clojureRegexpQuantifier "[?*+][?+]\=" contained display
syntax match clojureRegexpQuantifier "\v\{\d+%(,|,\d+)?}\??" contained display
syntax match clojureRegexpOr "|" contained display
syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-z]+\>)" contained display
" Mode modifiers, mode-modified spans, lookaround, regular and atomic
" grouping, and named-capturing.
syntax match clojureRegexpMod "\v\(@<=\?:" contained display
syntax match clojureRegexpMod "\v\(@<=\?[xdsmiuU]*-?[xdsmiuU]+:?" contained display
syntax match clojureRegexpMod "\v\(@<=\?%(\<?[=!]|\>)" contained display
syntax match clojureRegexpMod "\v\(@<=\?\<[a-zA-Z]+\>" contained display
syntax region clojureRegexpGroup start="(" skip=/\\\\\|\\)/ end=")" matchgroup=clojureRegexpGroup contained contains=clojureRegexpMod,clojureRegexpQuantifier,clojureRegexpBoundary,clojureRegexpEscape,@clojureRegexpCharClasses
syntax region clojureRegexp start=/\#"/ skip=/\\\\\|\\"/ end=/"/ contains=@clojureRegexpCharClasses,clojureRegexpEscape,clojureRegexpQuote,clojureRegexpBoundary,clojureRegexpQuantifier,clojureRegexpOr,clojureRegexpBackRef,clojureRegexpGroup keepend
syntax keyword clojureCommentTodo contained FIXME XXX TODO FIXME: XXX: TODO:
syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell
syntax match clojureComment "#!.*$"
syntax match clojureComment "#_"
syntax keyword clojureTodo contained FIXME XXX TODO FIXME: XXX: TODO:
syntax region clojureSexp matchgroup=clojureParen start="(" matchgroup=clojureParen end=")" contains=TOP,@Spell
syntax region clojureVector matchgroup=clojureParen start="\[" matchgroup=clojureParen end="\]" contains=TOP,@Spell
syntax region clojureMap matchgroup=clojureParen start="{" matchgroup=clojureParen end="}" contains=TOP,@Spell
syntax region clojureSexp matchgroup=clojureParen start="(" matchgroup=clojureParen end=")" contains=TOP,@Spell
syntax region clojureVector matchgroup=clojureParen start="\[" matchgroup=clojureParen end="]" contains=TOP,@Spell
syntax region clojureMap matchgroup=clojureParen start="{" matchgroup=clojureParen end="}" contains=TOP,@Spell
" Highlight superfluous closing parens, brackets and braces.
syntax match clojureError "]\|}\|)"
syntax sync fromstart
if version >= 600
command -nargs=+ HiLink highlight default link <args>
else
command -nargs=+ HiLink highlight link <args>
endif
HiLink clojureConstant Constant
HiLink clojureBoolean Boolean
HiLink clojureCharacter Character
HiLink clojureKeyword Keyword
HiLink clojureNumber Number
HiLink clojureString String
HiLink clojureRegexp Constant
HiLink clojureVariable Identifier
HiLink clojureCond Conditional
HiLink clojureDefine Define
HiLink clojureException Exception
HiLink clojureFunc Function
HiLink clojureMacro Macro
HiLink clojureRepeat Repeat
HiLink clojureSpecial Special
HiLink clojureVarArg Special
HiLink clojureQuote SpecialChar
HiLink clojureUnquote SpecialChar
HiLink clojureMeta SpecialChar
HiLink clojureDeref SpecialChar
HiLink clojureAnonArg SpecialChar
HiLink clojureDispatch SpecialChar
HiLink clojureComment Comment
HiLink clojureTodo Todo
HiLink clojureError Error
HiLink clojureParen Delimiter
delcommand HiLink
highlight default link clojureConstant Constant
highlight default link clojureBoolean Boolean
highlight default link clojureCharacter Character
highlight default link clojureKeyword Keyword
highlight default link clojureNumber Number
highlight default link clojureString String
highlight default link clojureStringEscape Character
highlight default link clojureRegexp Constant
highlight default link clojureRegexpEscape Character
highlight default link clojureRegexpCharClass SpecialChar
highlight default link clojureRegexpPosixCharClass clojureRegexpCharClass
highlight default link clojureRegexpJavaCharClass clojureRegexpCharClass
highlight default link clojureRegexpUnicodeCharClass clojureRegexpCharClass
highlight default link clojureRegexpPredefinedCharClass clojureRegexpCharClass
highlight default link clojureRegexpBoundary SpecialChar
highlight default link clojureRegexpQuantifier SpecialChar
highlight default link clojureRegexpMod SpecialChar
highlight default link clojureRegexpOr SpecialChar
highlight default link clojureRegexpBackRef SpecialChar
highlight default link clojureRegexpGroup clojureRegexp
highlight default link clojureRegexpQuoted clojureString
highlight default link clojureRegexpQuote clojureRegexpBoundary
highlight default link clojureVariable Identifier
highlight default link clojureCond Conditional
highlight default link clojureDefine Define
highlight default link clojureException Exception
highlight default link clojureFunc Function
highlight default link clojureMacro Macro
highlight default link clojureRepeat Repeat
highlight default link clojureSpecial Special
highlight default link clojureVarArg Special
highlight default link clojureQuote SpecialChar
highlight default link clojureUnquote SpecialChar
highlight default link clojureMeta SpecialChar
highlight default link clojureDeref SpecialChar
highlight default link clojureAnonArg SpecialChar
highlight default link clojureDispatch SpecialChar
highlight default link clojureComment Comment
highlight default link clojureCommentTodo Todo
highlight default link clojureError Error
highlight default link clojureParen Delimiter
let b:current_syntax = "clojure"
" vim:sts=4 sw=4 et:
" vim:sts=8:sw=8:ts=8:noet:smc=0
......@@ -6,7 +6,7 @@
" Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" 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 6.x: Quit when a syntax file was already loaded
......@@ -21,6 +21,9 @@ elseif exists("b:current_syntax") && b:current_syntax == "css"
finish
endif
" Required for cssHacks
setlocal iskeyword-=_
let s:cpo_save = &cpo
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 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 object
syn keyword cssTagName object svg
" HTML5 new tags 5*6=30
syn keyword cssTagName article aside audio bdi canvas command
syn keyword cssTagName datalist details embed figcaption figure footer
syn keyword cssTagName header hgroup keygen mark meter nav
" 34 HTML5 tags
syn keyword cssTagName article aside audio bdi canvas command data
syn keyword cssTagName datalist details dialog embed figcaption figure footer
syn keyword cssTagName header hgroup keygen main mark menuitem meter nav
syn keyword cssTagName output progress rt rp ruby section
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 font frame frameset noframes strike tt
"syn match cssTagName "\<table\>"
syn match cssTagName "\*"
" selectors
syn match cssSelectorOp "[,>+]"
syn match cssSelectorOp "[,>+~]"
syn match cssSelectorOp2 "[~|^$*]\?=" contained
" FIXME: add HTML5 attribute
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
" .class and #id
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_@-]*"
endtry
syn match cssTagName "@page\>" nextgroup=cssDefinition
" FIXME: use cssVendor here
syn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
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\+"
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
" digits
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
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
" @media
syn match cssMedia "@media\>" nextgroup=cssMediaType,cssMediaFeature,cssMediaBlock,cssMediaComma,cssMediaKeyword2 skipwhite skipnl
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv all contained skipwhite skipnl nextgroup=cssMediaFeature,cssMediaBlock
syn match cssMediaFeature /\(and\)\=\s*(.\{-})/ contained skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor nextgroup=cssMediaFeature,cssMediaBlock,cssMediaComma
syn keyword cssMediaKeyword and contained
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 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 keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
"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
syn match cssFontDescriptorProp contained "\<unicode-range\>"
syn keyword cssFontDescriptorAttr contained all
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?]\+"
......@@ -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 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
" all situations
syn case match
......@@ -135,48 +167,73 @@ syn match cssImportant contained "!\s*important\>"
syn match cssColor contained "\<transparent\>"
syn match cssColor contained "\<white\>"
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
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="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\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 keepend
" Prop and Attr
" Reference: http://www.w3schools.com/cssref/default.asp
syn keyword cssCommonAttr contained auto none inherit all
syn keyword cssCommonAttr contained top bottom
syn keyword cssCommonAttr contained medium normal
syn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators
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\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
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 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 contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
syn match cssFunctionComma contained ","
" Common Prop and Attr
syn keyword cssCommonAttr contained auto none inherit all default normal
syn keyword cssCommonAttr contained top bottom center stretch hidden visible
"------------------------------------------------
" 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\>"
" 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
" background-position attributes
syn keyword cssBackgroundAttr contained left center right top bottom
" background-repeat attributes
syn match cssBackgroundAttr contained "\<no-repeat\>"
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
syn keyword cssBackgroundAttr contained space round
" background-size attributes
syn keyword cssBackgroundAttr contained cover contain
syn keyword cssAnimationAttr contained infinite alternate paused running
" bugfix: escape linear-gradient
syn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
syn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
syn match cssBorderProp contained "\<box-decoration-break\>"
syn match cssBorderProp contained "\<box-shadow\>"
syn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
syn keyword cssBackgroundAttr contained center fixed over contain
syn match cssBackgroundAttr contained "\<no-repeat\>"
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
syn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
" 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
syn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
syn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
syn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
syn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
syn match cssBorderOutlineProp contained "\<border-radius\>"
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-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 "\<rotation\(-point\)=\>"
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
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 normal reverse
syn keyword cssFlexibleBoxAttr contained start end baseline
syn keyword cssFlexibleBoxAttr contained reverse
syn keyword cssFlexibleBoxAttr contained single mulitple
syn keyword cssFlexibleBoxAttr contained horizontal
" bugfix: escape vertial-align
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align
syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
" CSS Fonts Module Level 3
" http://www.w3.org/TR/css-fonts-3/
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\)\)\=\>"
" font attributes
syn keyword cssFontAttr contained icon menu caption
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
syn match cssFontAttr contained "\<message-box\>"
syn match cssFontAttr contained "\<status-bar\>"
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
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
syn keyword cssFontAttr contained larger smaller
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
" 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
" font-feature-settings attributes
syn keyword cssFontAttr contained on off
" font-stretch attributes
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
syn keyword cssGeneratedContentProp contained content quotes crop
" 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 "\<move-to\>"
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 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 cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
syn keyword cssPositioningProp contained bottom clear clip display float left
syn keyword cssPositioningProp contained position right top visibility
syn match cssPositioningProp contained "\<z-index\>"
syn keyword cssPositioningAttr contained block inline compact
syn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
syn keyword cssPositioningAttr contained block compact
syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
syn keyword cssPositioningAttr contained left right both
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 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 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 "\<white-space\>"
syn match cssTextProp contained "\<hanging-punctuation\>"
syn match cssTextProp contained "\<punctuation-trim\>"
syn match cssTextAttr contained "\<line-through\>"
syn match cssTextAttr contained "\<text-indent\>"
syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
syn keyword cssTextAttr contained ltr rtl embed nowrap
syn keyword cssTextAttr contained underline overline blink sub super middle
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 "\<\(allow\|force\)-end\>"
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-word\>"
syn keyword cssTextAttr contained hyphenate
syn match cssTextAttr contained "\<bidi-override\>"
syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
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 cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
syn match cssUIProp contained "\<outline-offset\>"
" transition-time-function attributes
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 keyword cssUIProp contained appearance icon resize
syn keyword cssUIAttr contained window button menu field
syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
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 "\<\(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 match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
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 "\<\(far\|center\)-\(left\|center\|right\)\>"
syn keyword cssAuralAttr contained leftwards rightwards behind
syn keyword cssAuralAttr contained below level above higher
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
syn keyword cssAuralAttr contained below level above lower higher
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
syn keyword cssAuralAttr contained faster slower
syn keyword cssAuralAttr contained male female child code digits continuous
syn match cssAuralAttr contained "\<lower\>"
" cursor
syn keyword cssUIProp contained cursor
syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
syn keyword cssUIAttr contained crosshair default help move pointer
syn keyword cssUIAttr contained progress wait
" mobile text
syn match cssMobileTextProp contained "\<text-size-adjust\>"
" 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 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 cssAttrComma ","
" Pseudo class
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
syn keyword cssPseudoClassId link visited active hover focus before after left right lang
syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
" FIXME: handle functions.
"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
syn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
syn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
syn keyword cssPseudoClassId root empty target enable disabled checked not invalid
syn match cssPseudoClassId contained "::\(-moz-\)\=selection"
" http://www.w3.org/TR/css3-selectors/
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
syn keyword cssPseudoClassId contained link visited active hover before after left right
syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")"
" ------------------------------------
" Vendor specific properties
syn match cssPseudoClassId contained "\<selection\>"
syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
" Comment
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 cssSpecialCharQQ +\\"+ contained
......@@ -359,6 +469,26 @@ syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEsca
" Vendor Prefix
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"
syn sync minlines=10
......@@ -377,73 +507,76 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssComment Comment
HiLink cssVendor Comment
HiLink cssHacks Comment
HiLink cssTagName Statement
HiLink cssDeprecated Error
HiLink cssSelectorOp Special
HiLink cssSelectorOp2 Special
HiLink cssAnimationProp StorageClass
HiLink cssBackgroundProp StorageClass
HiLink cssBorderOutlineProp StorageClass
HiLink cssBoxProp StorageClass
HiLink cssColorProp StorageClass
HiLink cssContentForPagedMediaProp StorageClass
HiLink cssDimensionProp StorageClass
HiLink cssFlexibleBoxProp StorageClass
HiLink cssFontProp StorageClass
HiLink cssGeneratedContentProp StorageClass
HiLink cssGridProp StorageClass
HiLink cssHyerlinkProp StorageClass
HiLink cssLineboxProp StorageClass
HiLink cssListProp StorageClass
HiLink cssMarginProp StorageClass
HiLink cssMarqueeProp StorageClass
HiLink cssMultiColumnProp StorageClass
HiLink cssPaddingProp StorageClass
HiLink cssPagedMediaProp StorageClass
HiLink cssPositioningProp StorageClass
HiLink cssPrintProp StorageClass
HiLink cssRubyProp StorageClass
HiLink cssSpeechProp StorageClass
HiLink cssTableProp StorageClass
HiLink cssTextProp StorageClass
HiLink cssTransformProp StorageClass
HiLink cssTransitionProp StorageClass
HiLink cssUIProp StorageClass
HiLink cssAuralProp StorageClass
HiLink cssRenderProp StorageClass
HiLink cssAnimationAttr Type
HiLink cssBackgroundAttr Type
HiLink cssBorderOutlineAttr Type
HiLink cssBoxAttr Type
HiLink cssColorAttr Type
HiLink cssContentForPagedMediaAttr Type
HiLink cssDimensionAttr Type
HiLink cssFlexibleBoxAttr Type
HiLink cssFontAttr Type
HiLink cssGeneratedContentAttr Type
HiLink cssGridAttr Type
HiLink cssHyerlinkAttr Type
HiLink cssLineboxAttr Type
HiLink cssListAttr Type
HiLink cssMarginAttr Type
HiLink cssMarqueeAttr Type
HiLink cssMultiColumnAttr Type
HiLink cssPaddingAttr Type
HiLink cssPagedMediaAttr Type
HiLink cssPositioningAttr Type
HiLink cssPrintAttr Type
HiLink cssRubyAttr Type
HiLink cssSpeechAttr Type
HiLink cssTableAttr Type
HiLink cssTextAttr Type
HiLink cssTransformAttr Type
HiLink cssTransitionAttr Type
HiLink cssUIAttr Type
HiLink cssAuralAttr Type
HiLink cssRenderAttr Type
HiLink cssCommonAttr Type
HiLink cssAttrComma Special
HiLink cssAnimationProp cssProp
HiLink cssBackgroundProp cssProp
HiLink cssBorderProp cssProp
HiLink cssBoxProp cssProp
HiLink cssColorProp cssProp
HiLink cssContentForPagedMediaProp cssProp
HiLink cssDimensionProp cssProp
HiLink cssFlexibleBoxProp cssProp
HiLink cssFontProp cssProp
HiLink cssGeneratedContentProp cssProp
HiLink cssGridProp cssProp
HiLink cssHyerlinkProp cssProp
HiLink cssLineboxProp cssProp
HiLink cssListProp cssProp
HiLink cssMarqueeProp cssProp
HiLink cssMultiColumnProp cssProp
HiLink cssPagedMediaProp cssProp
HiLink cssPositioningProp cssProp
HiLink cssPrintProp cssProp
HiLink cssRubyProp cssProp
HiLink cssSpeechProp cssProp
HiLink cssTableProp cssProp
HiLink cssTextProp cssProp
HiLink cssTransformProp cssProp
HiLink cssTransitionProp cssProp
HiLink cssUIProp cssProp
HiLink cssIEUIProp cssProp
HiLink cssAuralProp cssProp
HiLink cssRenderProp cssProp
HiLink cssMobileTextProp cssProp
HiLink cssAnimationAttr cssAttr
HiLink cssBackgroundAttr cssAttr
HiLink cssBorderAttr cssAttr
HiLink cssBoxAttr cssAttr
HiLink cssContentForPagedMediaAttr cssAttr
HiLink cssDimensionAttr cssAttr
HiLink cssFlexibleBoxAttr cssAttr
HiLink cssFontAttr cssAttr
HiLink cssGeneratedContentAttr cssAttr
HiLink cssGridAttr cssAttr
HiLink cssHyerlinkAttr cssAttr
HiLink cssLineboxAttr cssAttr
HiLink cssListAttr cssAttr
HiLink cssMarginAttr cssAttr
HiLink cssMarqueeAttr cssAttr
HiLink cssMultiColumnAttr cssAttr
HiLink cssPaddingAttr cssAttr
HiLink cssPagedMediaAttr cssAttr
HiLink cssPositioningAttr cssAttr
HiLink cssGradientAttr cssAttr
HiLink cssPrintAttr cssAttr
HiLink cssRubyAttr cssAttr
HiLink cssSpeechAttr cssAttr
HiLink cssTableAttr cssAttr
HiLink cssTextAttr cssAttr
HiLink cssTransformAttr cssAttr
HiLink cssTransitionAttr cssAttr
HiLink cssUIAttr cssAttr
HiLink cssIEUIAttr cssAttr
HiLink cssAuralAttr cssAttr
HiLink cssRenderAttr cssAttr
HiLink cssCommonAttr cssAttr
HiLink cssPseudoClassId PreProc
HiLink cssPseudoClassLang Constant
......@@ -456,6 +589,7 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssFunction Constant
HiLink cssURL String
HiLink cssFunctionName Function
HiLink cssFunctionComma Function
HiLink cssColor Constant
HiLink cssIdentifier Function
HiLink cssInclude Include
......@@ -467,15 +601,31 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssUnicodeEscape Special
HiLink cssStringQQ String
HiLink cssStringQ String
HiLink cssAttributeSelector String
HiLink cssMedia Special
HiLink cssMediaType Special
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 cssFontDescriptorFunction Constant
HiLink cssFontDescriptorProp StorageClass
HiLink cssFontDescriptorAttr Type
HiLink cssFontDescriptorProp cssProp
HiLink cssFontDescriptorAttr cssAttr
HiLink cssUnicodeRange Constant
HiLink cssClassName Function
HiLink cssProp StorageClass
HiLink cssAttr Constant
HiLink cssUnitDecorators Number
HiLink cssNoise Noise
delcommand HiLink
endif
......
" Vim syntax file
" Language: dircolors(1) input file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2012-04-25
" Language: dircolors(1) input file
" Maintainer: Jan Larres <jan@majutsushi.net>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2013-08-17
if exists("b:current_syntax")
finish
finish
endif
let s:cpo_save = &cpo
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
\ RESET MULTIHARDLINK CAPABILITY SETUID SETGID
\ STICKY STICKY_OTHER_WRITABLE OTHER_WRITABLE
\ MISSING FIFO PIPE SOCK BLK BLOCK CHR CHAR
\ DOOR EXEC
\ nextgroup=@dircolorsColors skipwhite
syntax keyword dircolorsKeyword NORMAL NORM FILE RESET DIR LNK LINK SYMLINK
\ MULTIHARDLINK FIFO SOCK DOOR BLK CHR ORPHAN
\ MISSING PIPE BLOCK CHR EXEC SETUID SETGID
\ CAPABILITY STICKY_OTHER_WRITABLE
\ OTHER_WRITABLE STICKY
if exists("dircolors_is_slackware")
syn keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
" Slackware only, ignored by GNU dircolors.
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
syn match dircolorsExtension '^\s*\zs[.*]\S\+'
\ nextgroup=dircolorsColorPair skipwhite
syn match dircolorsColorPair contained '.*$'
\ transparent contains=@dircolorsColors
if &t_Co == 8 || &t_Co == 16
syn cluster dircolorsColors contains=dircolorsBold,dircolorsUnderline,
\ dircolorsBlink,dircolorsReverse,
\ dircolorsInvisible,dircolorsBlack,
\ dircolorsRed,dircolorsGreen,dircolorsYellow,
\ dircolorsBlue,dircolorsMagenta,dircolorsCyan,
\ dircolorsWhite,dircolorsBGBlack,
\ dircolorsBGRed,dircolorsBGGreen,
\ dircolorsBGYellow,dircolorsBGBlue,
\ dircolorsBGMagenta,dircolorsBGCyan,
\ dircolorsBGWhite
syn match dircolorsBold contained '\<0\=1\>'
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\>'
syn match dircolorsColor1 contained '\<0\=1\>'
syn match dircolorsColor2 contained '\<0\=2\>'
syn match dircolorsColor3 contained '\<0\=3\>'
syn match dircolorsColor4 contained '\<0\=4\>'
syn match dircolorsColor5 contained '\<0\=5\>'
syn match dircolorsColor6 contained '\<0\=6\>'
syn match dircolorsColor7 contained '\<0\=7\>'
syn match dircolorsColor8 contained '\<0\=8\>'
syn match dircolorsColor9 contained '\<0\=9\>'
syn match dircolorsColor10 contained '\<10\>'
syn match dircolorsColor11 contained '\<11\>'
syn match dircolorsColor12 contained '\<12\>'
syn match dircolorsColor13 contained '\<13\>'
syn match dircolorsColor14 contained '\<14\>'
syn match dircolorsColor15 contained '\<15\>'
syn match dircolorsColor16 contained '\<16\>'
syn match dircolorsColor17 contained '\<17\>'
syn match dircolorsColor18 contained '\<18\>'
syn match dircolorsColor19 contained '\<19\>'
syn match dircolorsColor20 contained '\<20\>'
syn match dircolorsColor21 contained '\<21\>'
syn match dircolorsColor22 contained '\<22\>'
syn match dircolorsColor23 contained '\<23\>'
syn match dircolorsColor24 contained '\<24\>'
syn match dircolorsColor25 contained '\<25\>'
syn match dircolorsColor26 contained '\<26\>'
syn match dircolorsColor27 contained '\<27\>'
syn match dircolorsColor28 contained '\<28\>'
syn match dircolorsColor29 contained '\<29\>'
syn match dircolorsColor30 contained '\<30\>'
syn match dircolorsColor31 contained '\<31\>'
syn match dircolorsColor32 contained '\<32\>'
syn match dircolorsColor33 contained '\<33\>'
syn match dircolorsColor34 contained '\<34\>'
syn match dircolorsColor35 contained '\<35\>'
syn match dircolorsColor36 contained '\<36\>'
syn match dircolorsColor37 contained '\<37\>'
syn match dircolorsColor38 contained '\<38\>'
syn match dircolorsColor39 contained '\<39\>'
syn match dircolorsColor40 contained '\<40\>'
syn match dircolorsColor41 contained '\<41\>'
syn match dircolorsColor42 contained '\<42\>'
syn match dircolorsColor43 contained '\<43\>'
syn match dircolorsColor44 contained '\<44\>'
syn match dircolorsColor45 contained '\<45\>'
syn match dircolorsColor46 contained '\<46\>'
syn match dircolorsColor47 contained '\<47\>'
syn match dircolorsColor48 contained '\<48\>'
syn match dircolorsColor49 contained '\<49\>'
syn match dircolorsColor50 contained '\<50\>'
syn match dircolorsColor51 contained '\<51\>'
syn match dircolorsColor52 contained '\<52\>'
syn match dircolorsColor53 contained '\<53\>'
syn match dircolorsColor54 contained '\<54\>'
syn match dircolorsColor55 contained '\<55\>'
syn match dircolorsColor56 contained '\<56\>'
syn match dircolorsColor57 contained '\<57\>'
syn match dircolorsColor58 contained '\<58\>'
syn match dircolorsColor59 contained '\<59\>'
syn match dircolorsColor60 contained '\<60\>'
syn match dircolorsColor61 contained '\<61\>'
syn match dircolorsColor62 contained '\<62\>'
syn match dircolorsColor63 contained '\<63\>'
syn match dircolorsColor64 contained '\<64\>'
syn match dircolorsColor65 contained '\<65\>'
syn match dircolorsColor66 contained '\<66\>'
syn match dircolorsColor67 contained '\<67\>'
syn match dircolorsColor68 contained '\<68\>'
syn match dircolorsColor69 contained '\<69\>'
syn match dircolorsColor70 contained '\<70\>'
syn match dircolorsColor71 contained '\<71\>'
syn match dircolorsColor72 contained '\<72\>'
syn match dircolorsColor73 contained '\<73\>'
syn match dircolorsColor74 contained '\<74\>'
syn match dircolorsColor75 contained '\<75\>'
syn match dircolorsColor76 contained '\<76\>'
syn match dircolorsColor77 contained '\<77\>'
syn match dircolorsColor78 contained '\<78\>'
syn match dircolorsColor79 contained '\<79\>'
syn match dircolorsColor80 contained '\<80\>'
syn match dircolorsColor81 contained '\<81\>'
syn match dircolorsColor82 contained '\<82\>'
syn match dircolorsColor83 contained '\<83\>'
syn match dircolorsColor84 contained '\<84\>'
syn match dircolorsColor85 contained '\<85\>'
syn match dircolorsColor86 contained '\<86\>'
syn match dircolorsColor87 contained '\<87\>'
syn match dircolorsColor88 contained '\<88\>'
syn match dircolorsColor89 contained '\<89\>'
syn match dircolorsColor90 contained '\<90\>'
syn match dircolorsColor91 contained '\<91\>'
syn match dircolorsColor92 contained '\<92\>'
syn match dircolorsColor93 contained '\<93\>'
syn match dircolorsColor94 contained '\<94\>'
syn match dircolorsColor95 contained '\<95\>'
syn match dircolorsColor96 contained '\<96\>'
syn match dircolorsColor97 contained '\<97\>'
syn match dircolorsColor98 contained '\<98\>'
syn match dircolorsColor99 contained '\<99\>'
syn match dircolorsColor100 contained '\<100\>'
syn match dircolorsColor101 contained '\<101\>'
syn match dircolorsColor102 contained '\<102\>'
syn match dircolorsColor103 contained '\<103\>'
syn match dircolorsColor104 contained '\<104\>'
syn match dircolorsColor105 contained '\<105\>'
syn match dircolorsColor106 contained '\<106\>'
syn match dircolorsColor107 contained '\<107\>'
syn match dircolorsColor108 contained '\<108\>'
syn match dircolorsColor109 contained '\<109\>'
syn match dircolorsColor110 contained '\<110\>'
syn match dircolorsColor111 contained '\<111\>'
syn match dircolorsColor112 contained '\<112\>'
syn match dircolorsColor113 contained '\<113\>'
syn match dircolorsColor114 contained '\<114\>'
syn match dircolorsColor115 contained '\<115\>'
syn match dircolorsColor116 contained '\<116\>'
syn match dircolorsColor117 contained '\<117\>'
syn match dircolorsColor118 contained '\<118\>'
syn match dircolorsColor119 contained '\<119\>'
syn match dircolorsColor120 contained '\<120\>'
syn match dircolorsColor121 contained '\<121\>'
syn match dircolorsColor122 contained '\<122\>'
syn match dircolorsColor123 contained '\<123\>'
syn match dircolorsColor124 contained '\<124\>'
syn match dircolorsColor125 contained '\<125\>'
syn match dircolorsColor126 contained '\<126\>'
syn match dircolorsColor127 contained '\<127\>'
syn match dircolorsColor128 contained '\<128\>'
syn match dircolorsColor129 contained '\<129\>'
syn match dircolorsColor130 contained '\<130\>'
syn match dircolorsColor131 contained '\<131\>'
syn match dircolorsColor132 contained '\<132\>'
syn match dircolorsColor133 contained '\<133\>'
syn match dircolorsColor134 contained '\<134\>'
syn match dircolorsColor135 contained '\<135\>'
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\+\>'
highlight default link dircolorsTodo Todo
highlight default link dircolorsComment Comment
highlight default link dircolorsKeyword Keyword
highlight default link dircolorsExtension Identifier
highlight default link dircolorsEscape Special
function! s:set_guicolors() abort
let s:guicolors = {}
let s:guicolors[0] = "Black"
let s:guicolors[1] = "DarkRed"
let s:guicolors[2] = "DarkGreen"
let s:guicolors[3] = "DarkYellow"
let s:guicolors[4] = "DarkBlue"
let s:guicolors[5] = "DarkMagenta"
let s:guicolors[6] = "DarkCyan"
let s:guicolors[7] = "Gray"
let s:guicolors[8] = "DarkGray"
let s:guicolors[9] = "Red"
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"
let xterm_palette = ["00", "5f", "87", "af", "d7", "ff"]
let cur_col = 16
for r in xterm_palette
for g in xterm_palette
for b in xterm_palette
let s:guicolors[cur_col] = '#' . r . g . b
let cur_col += 1
endfor
endfor
endfor
for i in range(24)
let g = i * 0xa + 8
let s:guicolors[i + 232] = '#' . g . g . g
endfor
endfunction
function! s:get_hi_str(color, place) abort
if a:color >= 0 && a:color <= 255
if has('gui_running')
return ' gui' . a:place . '=' . s:guicolors[a:color]
elseif a:color <= 7 || &t_Co == 256 || &t_Co == 88
return ' cterm' . a:place . '=' . a:color
endif
endif
return ''
endfunction
function! s:get_256color(colors) abort
if len(a:colors) >= 2 " May be fewer while editing
let [_five, color] = remove(a:colors, 0, 1)
if _five != '5' || color == ''
return -1
else
return str2nr(color)
endif
else
return -1
endif
endfunction
function! s:preview_color(linenr) abort
let line = getline(a:linenr)
let defline = matchlist(line, '^\v([A-Z_]+|[*.]\S+)\s+([0-9;]+)')
if empty(defline)
return
endif
let colordef = defline[2]
let colors = split(colordef, ';')
let hi_str = ''
let hi_attrs = []
while len(colors) > 0
let item = str2nr(remove(colors, 0))
if item == 1
call add(hi_attrs, 'bold')
elseif item == 3
call add(hi_attrs, 'italic')
elseif item == 4
call add(hi_attrs, 'underline')
elseif item == 7
call add(hi_attrs, 'inverse')
elseif item >= 30 && item <= 37
" ANSI SGR foreground color
let hi_str .= s:get_hi_str(item - 30, 'fg')
elseif item >= 40 && item <= 47
" ANSI SGR background color
let hi_str .= s:get_hi_str(item - 40, 'bg')
elseif item == 38
" Foreground for terminals with 88/256 color support
let color = s:get_256color(colors)
if color == -1
break
endif
let hi_str .= s:get_hi_str(color, 'fg')
elseif item == 48
" Background for terminals with 88/256 color support
let color = s:get_256color(colors)
if color == -1
break
endif
let hi_str .= s:get_hi_str(color, 'bg')
endif
endwhile
if hi_str == '' && empty(hi_attrs)
return
endif
" Check whether we have already defined this color
redir => s:currentmatch
silent! execute 'syntax list'
redir END
if s:currentmatch !~# '\/\\_s\\zs' . colordef . '\\ze\\_s\/'
" Append the buffer number to avoid problems with other dircolors
" buffers interfering
let bufnr = bufnr('%')
execute 'syntax match dircolorsColor' . b:dc_next_index . '_' . bufnr .
\ ' "\_s\zs' . colordef . '\ze\_s"'
let hi_attrs_str = ''
if !empty(hi_attrs)
if has('gui_running')
let hi_attrs_str = ' gui=' . join(hi_attrs, ',')
else
let hi_attrs_str = ' cterm=' . join(hi_attrs, ',')
endif
endif
execute 'highlight default dircolorsColor' . b:dc_next_index . '_' .
\ bufnr . hi_str . hi_attrs_str
let b:dc_next_index += 1
endif
endfunction
" Avoid accumulating too many definitions while editing
function! s:reset_colors() abort
if b:dc_next_index > 0
let bufnr = bufnr('%')
for i in range(b:dc_next_index)
execute 'syntax clear dircolorsColor' . i . '_' . bufnr
execute 'highlight clear dircolorsColor' . i . '_' . bufnr
endfor
let b:dc_next_index = 0
endif
for linenr in range(1, line('$'))
call s:preview_color(linenr)
endfor
endfunction
let b:dc_next_index = 0
if has('gui_running')
call s:set_guicolors()
endif
hi def link dircolorsTodo Todo
hi def link dircolorsComment Comment
hi def link dircolorsKeyword Keyword
hi def link dircolorsExtension Keyword
if &t_Co == 8 || &t_Co == 16
hi def dircolorsBold term=bold cterm=bold gui=bold
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
if has('gui_running') || &t_Co != ''
call s:reset_colors()
autocmd CursorMoved,CursorMovedI <buffer> call s:preview_color('.')
autocmd CursorHold,CursorHoldI <buffer> call s:reset_colors()
endif
let b:current_syntax = "dircolors"
......
" 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"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment