diff options
| -rw-r--r-- | runtime/autoload/clojurecomplete.vim | 16 | ||||
| -rw-r--r-- | runtime/doc/mbyte.txt | 3 | ||||
| -rw-r--r-- | runtime/doc/repeat.txt | 6 | ||||
| -rw-r--r-- | runtime/doc/syntax.txt | 15 | ||||
| -rw-r--r-- | runtime/doc/usr_41.txt | 4 | ||||
| -rw-r--r-- | runtime/doc/vim_diff.txt | 26 | ||||
| -rw-r--r-- | runtime/filetype.vim | 4 | ||||
| -rw-r--r-- | runtime/ftplugin/clojure.vim | 20 | ||||
| -rw-r--r-- | runtime/indent/clojure.vim | 206 | ||||
| -rw-r--r-- | runtime/keymap/armenian-eastern_utf-8.vim | 108 | ||||
| -rw-r--r-- | runtime/keymap/armenian-western_utf-8.vim | 108 | ||||
| -rw-r--r-- | runtime/syntax/clojure.vim | 217 | ||||
| -rw-r--r-- | runtime/syntax/python.vim | 4 | ||||
| -rw-r--r-- | runtime/syntax/sqloracle.vim | 20 | ||||
| -rw-r--r-- | src/nvim/eval.c | 8 | ||||
| -rw-r--r-- | src/nvim/eval.lua | 1 | ||||
| -rw-r--r-- | src/nvim/ex_cmds.c | 8 | ||||
| -rw-r--r-- | src/nvim/testdir/Makefile | 2 | ||||
| -rw-r--r-- | src/nvim/version.c | 4 | ||||
| -rw-r--r-- | test/functional/helpers.lua | 7 | ||||
| -rw-r--r-- | test/functional/legacy/autochdir_spec.lua | 26 | 
21 files changed, 609 insertions, 204 deletions
| diff --git a/runtime/autoload/clojurecomplete.vim b/runtime/autoload/clojurecomplete.vim index 708bb31104..030785e901 100644 --- a/runtime/autoload/clojurecomplete.vim +++ b/runtime/autoload/clojurecomplete.vim @@ -1,14 +1,14 @@  " 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:	27 March 2014 +" Language:     Clojure +" Maintainer:   Sung Pae <self@sungpae.com> +" URL:          https://github.com/guns/vim-clojure-static +" License:      Same as Vim +" Last Change:  18 July 2016  " -*- COMPLETION WORDS -*- -" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-010/clj/src/vim_clojure_static/generate.clj -" Clojure version 1.6.0 -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-ordered-coll","hash-set","hash-unordered-coll","identical?","identity","if","if-let","if-not","if-some","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","mix-collection-hash","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?","record?","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","some?","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","unsigned-bit-shift-right","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","when-some","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-011/clj/src/vim_clojure_static/generate.clj +" Clojure version 1.8.0 +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*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods",".","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Throwable->map","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","cat","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","completing","concat","cond","cond->","cond->>","condp","conj!","conj","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","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","eduction","empty","empty?","ensure","ensure-reduced","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-ordered-coll","hash-set","hash-unordered-coll","identical?","identity","if","if-let","if-not","if-some","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-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","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","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","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","run!","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","some?","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","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","throw","time","to-array","to-array-2d","trampoline","transduce","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","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","use","val","vals","var","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","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 for special forms and public vars in clojure.core  function! clojurecomplete#Complete(findstart, base) diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt index 3bdb682a31..355a1da423 100644 --- a/runtime/doc/mbyte.txt +++ b/runtime/doc/mbyte.txt @@ -1,4 +1,4 @@ -*mbyte.txt*     For Vim version 7.4.  Last change: 2013 May 18 +*mbyte.txt*     For Vim version 7.4.  Last change: 2016 Jul 21  		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al. @@ -849,6 +849,7 @@ text, you can use the 'keymap' option.  This will translate one or more  (English) characters to another (non-English) character.  This only happens  when typing text, not when typing Vim commands.  This avoids having to switch  between two keyboard settings. +{only available when compiled with the |+keymap| feature}  The value of the 'keymap' option specifies a keymap file to use.  The name of  this file is one of these two: diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index b44761cdb5..6cd2ada513 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -1,4 +1,4 @@ -*repeat.txt*    For Vim version 7.4.  Last change: 2016 Apr 05 +*repeat.txt*    For Vim version 7.4.  Last change: 2016 Jul 21  		  VIM REFERENCE MANUAL    by Bram Moolenaar @@ -286,7 +286,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.  				... not converted ...  <			When conversion isn't supported by the system, there -			is no error message and no conversion is done. +			is no error message and no conversion is done.  When a +			line can't be converted there is no error and the +			original line is kept.  			Don't use "ucs-2" or "ucs-4", scripts cannot be in  			these encodings (they would contain NUL bytes). diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 4886828c82..6194a636b3 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1040,6 +1040,21 @@ This works immediately.  CLOJURE							*ft-clojure-syntax* +The default syntax groups can be augmented through the +*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The +value should be a |Dictionary| of syntax group names to a |List| of custom +identifiers: +> +	let g:clojure_syntax_keywords = { +	    \ 'clojureMacro': ["defproject", "defcustom"], +	    \ 'clojureFunc': ["string/join", "string/replace"] +	    \ } +< +Refer to the Clojure syntax script for valid syntax group names. + +If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only +language constants and special forms are matched. +  Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.  Any list, vector, or map that extends over more than one line can be folded  using the standard Vim |fold-commands|. diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index 49fcdf0bb7..bf8d31fef9 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -592,7 +592,7 @@ String manipulation:					*string-functions*  	match()			position where a pattern matches in a string  	matchend()		position where a pattern match ends in a string  	matchstr()		match of a pattern in a string -	matchstrpos()		match and postions of a pattern in a string +	matchstrpos()		match and positions of a pattern in a string  	matchlist()		like matchstr() and also return submatches  	stridx()		first index of a short string in a long string  	strridx()		last index of a short string in a long string @@ -799,6 +799,7 @@ Command line:					*command-line-functions*  	setcmdpos()		set position of the cursor in the command line  	getcmdtype()		return the current command-line type  	getcmdwintype()		return the current command-line window type +	getcompletion()		list of command-line completion matches  Quickfix and location lists:			*quickfix-functions*  	getqflist()		list of quickfix errors @@ -896,6 +897,7 @@ Mappings:				    *mapping-functions*  Testing:				    *test-functions*  	assert_equal()		assert that two expressions values are equal  	assert_notequal()	assert that two expressions values are not equal +	assert_inrange()	assert that an expression is inside a range  	assert_match()		assert that a pattern matches the value  	assert_notmatch()	assert that a pattern does not match the value  	assert_false()		assert that an expression is false diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index cdd616b6c1..7c9d383a01 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -77,12 +77,15 @@ Clipboard integration		|provider-clipboard|  USER EXPERIENCE  ~ -A major goal of Nvim is to work intuitively and consistently. For example, -Nvim does not have `-X`, a platform-specific option available in some Vim -builds (with potential surprises: http://stackoverflow.com/q/14635295). Nvim -avoids features that cannot be provided on all platforms--instead that is -delegated to external plugins/extensions. +Working intuitively and consistently is a major goal of Nvim. Examples: +- Nvim does not have `-X`, a platform-specific option "sometimes" available in +  Vim (with potential surprises: http://stackoverflow.com/q/14635295). Nvim +  avoids features that cannot be provided on all platforms--instead that is +  delegated to external plugins/extensions. + +- Test-only globals and functions such as test_autochdir(), test_settime(), +  etc., are not exposed (because they don't exist).  ARCHITECTURE ~ @@ -271,6 +274,19 @@ MS-DOS support:  Highlight groups:    |hl-VisualNOS| +Test functions: +  test_alloc_fail() +  test_autochdir() +  test_disable_char_avail() +  test_garbagecollect_now() +  test_null_channel() +  test_null_dict() +  test_null_job() +  test_null_list() +  test_null_partial() +  test_null_string() +  test_settime() +  Other options:    'antialias'    'cpoptions' ("g", "w", "H", "*", "-", "j", and all POSIX flags were removed) diff --git a/runtime/filetype.vim b/runtime/filetype.vim index bfb45a3720..e3447670f4 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@  " Vim support file to detect file types  "  " Maintainer:	Bram Moolenaar <Bram@vim.org> -" Last Change:	2016 Jul 12 +" Last Change:	2016 Jul 21  " Listen very carefully, I will say this only once  if exists("did_load_filetypes") @@ -530,7 +530,7 @@ au BufNewFile,BufRead configure.in,configure.ac setf config  au BufNewFile,BufRead *.cu			setf cuda  " Dockerfile -au BufNewFile,BufRead Dockerfile		setf dockerfile +au BufNewFile,BufRead Dockerfile,*.Dockerfile	setf dockerfile  " WildPackets EtherPeek Decoder  au BufNewFile,BufRead *.dcd			setf dcd diff --git a/runtime/ftplugin/clojure.vim b/runtime/ftplugin/clojure.vim index 10fcb9f205..217711f26e 100644 --- a/runtime/ftplugin/clojure.vim +++ b/runtime/ftplugin/clojure.vim @@ -1,11 +1,11 @@  " 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:	27 March 2014 +" Maintainer:   Sung Pae <self@sungpae.com> +" URL:          https://github.com/guns/vim-clojure-static +" License:      Same as Vim +" Last Change:  18 July 2016  if exists("b:did_ftplugin")  	finish @@ -43,7 +43,7 @@ setlocal commentstring=;\ %s  " specially and hence are not indented specially.  "  " -*- LISPWORDS -*- -" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-010/clj/src/vim_clojure_static/generate.clj +" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj  setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test  " Provide insert mode completions for special forms and clojure.core. As @@ -82,9 +82,9 @@ 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" +	                   \ "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 diff --git a/runtime/indent/clojure.vim b/runtime/indent/clojure.vim index 476ac1de1c..7592b10d7d 100644 --- a/runtime/indent/clojure.vim +++ b/runtime/indent/clojure.vim @@ -1,17 +1,12 @@  " 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:	27 March 2014 - -" TODO: Indenting after multibyte characters is broken: -"       (let [Δ (if foo -"                bar    ; Indent error -"                baz)]) +" Maintainer:   Sung Pae <self@sungpae.com> +" URL:          https://github.com/guns/vim-clojure-static +" License:      Same as Vim +" Last Change:  18 July 2016  if exists("b:did_indent")  	finish @@ -57,36 +52,39 @@ if exists("*searchpairpos")  		let g:clojure_align_subforms = 0  	endif -	function! s:SynIdName() +	function! s:syn_id_name()  		return synIDattr(synID(line("."), col("."), 0), "name")  	endfunction -	function! s:CurrentChar() +	function! s:ignored_region() +		return s:syn_id_name() =~? '\vstring|regex|comment|character' +	endfunction + +	function! s:current_char()  		return getline('.')[col('.')-1]  	endfunction -	function! s:CurrentWord() +	function! s:current_word()  		return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]  	endfunction -	function! s:IsParen() -		return s:CurrentChar() =~# '\v[\(\)\[\]\{\}]' && -		     \ s:SynIdName() !~? '\vstring|regex|comment|character' +	function! s:is_paren() +		return s:current_char() =~# '\v[\(\)\[\]\{\}]' && !s:ignored_region()  	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) +	function! s:match_one(patterns, string)  		let list = type(a:patterns) == type([]) -			   \ ? a:patterns -			   \ : map(split(a:patterns, ','), '"^" . v:val . "$"') +		           \ ? 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) +	function! s:match_pairs(open, close, stopat)  		" Stop only on vector and map [ resp. {. Ignore the ones in strings and  		" comments.  		if a:stopat == 0 @@ -95,11 +93,11 @@ if exists("*searchpairpos")  			let stopat = a:stopat  		endif -		let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat) -		return [pos[0], virtcol(pos)] +		let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:is_paren()", stopat) +		return [pos[0], col(pos)]  	endfunction -	function! s:ClojureCheckForStringWorker() +	function! s:clojure_check_for_string_worker()  		" 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 @@ -113,17 +111,17 @@ if exists("*searchpairpos")  		call cursor(nb, 0)  		call cursor(0, col("$") - 1) -		if s:SynIdName() !~? "string" +		if s:syn_id_name() !~? "string"  			return -1  		endif  		" This will not work for a " in the first column... -		if s:CurrentChar() == '"' +		if s:current_char() == '"'  			call cursor(0, col("$") - 2) -			if s:SynIdName() !~? "string" +			if s:syn_id_name() !~? "string"  				return -1  			endif -			if s:CurrentChar() != '\\' +			if s:current_char() != '\\'  				return -1  			endif  			call cursor(0, col("$") - 1) @@ -138,40 +136,40 @@ if exists("*searchpairpos")  		return indent(".")  	endfunction -	function! s:CheckForString() +	function! s:check_for_string()  		let pos = getpos('.')  		try -			let val = s:ClojureCheckForStringWorker() +			let val = s:clojure_check_for_string_worker()  		finally  			call setpos('.', pos)  		endtry  		return val  	endfunction -	function! s:StripNamespaceAndMacroChars(word) +	function! s:strip_namespace_and_macro_chars(word)  		return substitute(a:word, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')  	endfunction -	function! s:ClojureIsMethodSpecialCaseWorker(position) +	function! s:clojure_is_method_special_case_worker(position)  		" Find the next enclosing form.  		call search('\S', 'Wb')  		" Special case: we are at a '(('. -		if s:CurrentChar() == '(' +		if s:current_char() == '('  			return 0  		endif  		call cursor(a:position) -		let nextParen = s:MatchPairs('(', ')', 0) +		let next_paren = s:match_pairs('(', ')', 0)  		" Special case: we are now at toplevel. -		if nextParen == [0, 0] +		if next_paren == [0, 0]  			return 0  		endif -		call cursor(nextParen) +		call cursor(next_paren)  		call search('\S', 'W') -		let w = s:StripNamespaceAndMacroChars(s:CurrentWord()) +		let w = s:strip_namespace_and_macro_chars(s:current_word())  		if g:clojure_special_indent_words =~# '\V\<' . w . '\>'  			return 1  		endif @@ -179,27 +177,43 @@ if exists("*searchpairpos")  		return 0  	endfunction -	function! s:IsMethodSpecialCase(position) +	function! s:is_method_special_case(position)  		let pos = getpos('.')  		try -			let val = s:ClojureIsMethodSpecialCaseWorker(a:position) +			let val = s:clojure_is_method_special_case_worker(a:position)  		finally  			call setpos('.', pos)  		endtry  		return val  	endfunction -	function! GetClojureIndent() +	" Check if form is a reader conditional, that is, it is prefixed by #? +	" or @#? +	function! s:is_reader_conditional_special_case(position) +		if getline(a:position[0])[a:position[1] - 3 : a:position[1] - 2] == "#?" +			return 1 +		endif + +		return 0 +	endfunction + +	" Returns 1 for opening brackets, -1 for _anything else_. +	function! s:bracket_type(char) +		return stridx('([{', a:char) > -1 ? 1 : -1 +	endfunction + +	" Returns: [opening-bracket-lnum, indent] +	function! s:clojure_indent_pos()  		" Get rid of special case.  		if line(".") == 1 -			return 0 +			return [0, 0]  		endif  		" We have to apply some heuristics here to figure out, whether to use  		" normal lisp indenting or not. -		let i = s:CheckForString() +		let i = s:check_for_string()  		if i > -1 -			return i + !!g:clojure_align_multiline_strings +			return [0, i + !!g:clojure_align_multiline_strings]  		endif  		call cursor(0, 1) @@ -207,28 +221,28 @@ if exists("*searchpairpos")  		" 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]) +		let paren = s:match_pairs('(', ')', 0) +		let bracket = s:match_pairs('\[', '\]', paren[0]) +		let curly = s:match_pairs('{', '}', 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] +				return curly  			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] +			return bracket  		endif  		" There are neither { nor [ nor (, ie. we are at the toplevel.  		if paren == [0, 0] -			return 0 +			return paren  		endif  		" Now we have to reimplement lispindent. This is surprisingly easy, as @@ -246,58 +260,120 @@ if exists("*searchpairpos")  		" - 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 +		if s:is_method_special_case(paren) +			return [paren[0], paren[1] + &shiftwidth - 1] +		endif + +		if s:is_reader_conditional_special_case(paren) +			return paren  		endif  		" In case we are at the last character, we use the paren position.  		if col("$") - 1 == paren[1] -			return paren[1] +			return paren  		endif  		" In case after the paren is a whitespace, we search for the next word.  		call cursor(0, col('.') + 1) -		if s:CurrentChar() == ' ' +		if s:current_char() == ' '  			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] +			return paren  		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] +		let w = s:current_word() +		if s:bracket_type(w[0]) == 1 +			return paren  		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 = s:StripNamespaceAndMacroChars(w) +		let ww = s:strip_namespace_and_macro_chars(w)  		if &lispwords =~# '\V\<' . ww . '\>' -			return paren[1] + &shiftwidth - 1 +			return [paren[0], 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 +			\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww) +			\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww) +			return [paren[0], paren[1] + &shiftwidth - 1]  		endif  		call search('\v\_s', 'cW')  		call search('\v\S', 'W')  		if paren[0] < line(".") -			return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1) +			return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)]  		endif  		call search('\v\S', 'bW') -		return virtcol(".") + 1 +		return [line('.'), col('.') + 1] +	endfunction + +	function! GetClojureIndent() +		let lnum = line('.') +		let orig_lnum = lnum +		let orig_col = col('.') +		let [opening_lnum, indent] = s:clojure_indent_pos() + +		" Account for multibyte characters +		if opening_lnum > 0 +			let indent -= indent - virtcol([opening_lnum, indent]) +		endif + +		" Return if there are no previous lines to inherit from +		if opening_lnum < 1 || opening_lnum >= lnum - 1 +			call cursor(orig_lnum, orig_col) +			return indent +		endif + +		let bracket_count = 0 + +		" Take the indent of the first previous non-white line that is +		" at the same sexp level. cf. src/misc1.c:get_lisp_indent() +		while 1 +			let lnum = prevnonblank(lnum - 1) +			let col = 1 + +			if lnum <= opening_lnum +				break +			endif + +			call cursor(lnum, col) + +			" Handle bracket counting edge case +			if s:is_paren() +				let bracket_count += s:bracket_type(s:current_char()) +			endif + +			while 1 +				if search('\v[(\[{}\])]', '', lnum) < 1 +					break +				elseif !s:ignored_region() +					let bracket_count += s:bracket_type(s:current_char()) +				endif +			endwhile + +			if bracket_count == 0 +				" Check if this is part of a multiline string +				call cursor(lnum, 1) +				if s:syn_id_name() !~? '\vstring|regex' +					call cursor(orig_lnum, orig_col) +					return indent(lnum) +				endif +			endif +		endwhile + +		call cursor(orig_lnum, orig_col) +		return indent  	endfunction  	setlocal indentexpr=GetClojureIndent() diff --git a/runtime/keymap/armenian-eastern_utf-8.vim b/runtime/keymap/armenian-eastern_utf-8.vim new file mode 100644 index 0000000000..7b03c5ac73 --- /dev/null +++ b/runtime/keymap/armenian-eastern_utf-8.vim @@ -0,0 +1,108 @@ +" Maintainer: Benjamin Linskey <vim@benlinskey.com> +" Last Changed: 2016 July 20 +" URL: https://github.com/blinskey/vim-armenian-keymaps + +let b:keymap_name = "hy" + +loadkeymap + +" Capital letters +A   Ա +B   Բ +C   Գ +D   Դ +Y   Ե +Z   Զ +E   Է +U   Ը +:   Թ ++   Ժ +I   Ի +L   Լ +Q   Խ +?   Ծ +K   Կ +H   Հ +@   Ձ +>   Ղ +J   Ճ +M   Մ +#   Յ +N   Ն +<   Շ +O   Ո +{   Չ +P   Պ +}   Ջ +_   Ռ +S   Ս +V   Վ +T   Տ +R   Ր +X   Ց +W   Ւ +\"  Փ +G   Ք +)   Օ +F   Ֆ + +" Lowercase letters +a   ա +b   բ +c   գ +d   դ +y   ե +z   զ +e   է +u   ը +;   թ +=   ժ +i   ի +l   լ +q   խ +/   ծ +k   կ +h   հ +2   ձ +.   ղ +j   ճ +m   մ +3   յ +n   ն +,   շ +o   ո +[   չ +p   պ +]   ջ +-   ռ +s   ս +v   վ +t   տ +r   ր +x   ց +w   ւ +'   փ +g   ք +0   օ +f   ֆ + +&   և + +" Punctuation +`   ՝ +~   ՜ +1   ։ +4   ՛ +5   , +6   - +7   . +8   « +9   » +\\  ' +|   ՞ + +" Numbers +!   1 +$   3 +%   4 +^   9 diff --git a/runtime/keymap/armenian-western_utf-8.vim b/runtime/keymap/armenian-western_utf-8.vim new file mode 100644 index 0000000000..e02485ed8c --- /dev/null +++ b/runtime/keymap/armenian-western_utf-8.vim @@ -0,0 +1,108 @@ +" Maintainer: Benjamin Linskey <vim@benlinskey.com> +" Last Changed: 2016 July 20 +" URL: https://github.com/blinskey/vim-armenian-keymaps + +let b:keymap_name = "hy" + +loadkeymap + +" Capital letters +A   Ա +P   Բ +C   Գ +T   Դ +Y   Ե +Z   Զ +E   Է +U   Ը +:   Թ ++   Ժ +I   Ի +L   Լ +Q   Խ +?   Ծ +G   Կ +H   Հ +@   Ձ +>   Ղ +J   Ճ +M   Մ +#   Յ +N   Ն +<   Շ +O   Ո +{   Չ +B   Պ +}   Ջ +_   Ռ +S   Ս +W   Վ +D   Տ +R   Ր +X   Ց +V   Ւ +\"  Փ +K   Ք +)   Օ +F   Ֆ + +" Lowercase letters +a   ա +p   բ +c   գ +t   դ +y   ե +z   զ +e   է +u   ը +;   թ +=   ժ +i   ի +l   լ +q   խ +/   ծ +g   կ +h   հ +2   ձ +.   ղ +j   ճ +m   մ +3   յ +n   ն +,   շ +o   ո +[   չ +b   պ +]   ջ +-   ռ +s   ս +w   վ +d   տ +r   ր +x   ց +v   ւ +'   փ +k   ք +0   օ +f   ֆ + +&   և + +" Punctuation +`   ՝ +~   ՜ +1   ։ +4   ՛ +5   , +6   - +7   . +8   « +9   » +\\  ' +|   ՞ + +" Numbers +!   1 +$   3 +%   4 +^   9 diff --git a/runtime/syntax/clojure.vim b/runtime/syntax/clojure.vim index 4dc1cde05c..2b48146b5a 100644 --- a/runtime/syntax/clojure.vim +++ b/runtime/syntax/clojure.vim @@ -1,37 +1,68 @@  " 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  " -" Contributors:	Joel Holdbrooks <cjholdbrooks@gmail.com> (Regexp support, bug fixes) +" 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:	27 March 2014 +" Maintainer:   Sung Pae <self@sungpae.com> +" URL:          https://github.com/guns/vim-clojure-static +" License:      Same as Vim +" Last Change:  18 July 2016  if exists("b:current_syntax")  	finish  endif +let s:cpo_sav = &cpo +set cpo&vim +  if has("folding") && exists("g:clojure_fold") && g:clojure_fold > 0  	setlocal foldmethod=syntax  endif  " -*- KEYWORDS -*- -" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-010/clj/src/vim_clojure_static/generate.clj -" Clojure version 1.6.0 -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 -syntax keyword clojureException catch finally throw try -syntax keyword clojureCond case clojure.core/case clojure.core/cond clojure.core/cond-> clojure.core/cond->> clojure.core/condp clojure.core/if-let clojure.core/if-not clojure.core/if-some clojure.core/when clojure.core/when-first clojure.core/when-let clojure.core/when-not clojure.core/when-some cond cond-> cond->> condp if-let if-not if-some when when-first when-let when-not when-some -syntax keyword clojureRepeat clojure.core/doseq clojure.core/dotimes clojure.core/while doseq dotimes while -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/doall clojure.core/dorun 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-ordered-coll clojure.core/hash-set clojure.core/hash-unordered-coll 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/mix-collection-hash 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-dup clojure.core/print-method 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/record? 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/some? 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/unsigned-bit-shift-right 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? doall dorun 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-ordered-coll hash-set hash-unordered-coll 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 mix-collection-hash 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-dup print-method 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? record? 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 some? 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 unsigned-bit-shift-right 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* *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/unquote clojure.core/unquote-splicing default-data-readers primitives-classnames unquote unquote-splicing +" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj +" Clojure version 1.8.0 +let s:clojure_syntax_keywords = { +    \   'clojureBoolean': ["false","true"] +    \ , 'clojureCond': ["case","clojure.core/case","clojure.core/cond","clojure.core/cond->","clojure.core/cond->>","clojure.core/condp","clojure.core/if-let","clojure.core/if-not","clojure.core/if-some","clojure.core/when","clojure.core/when-first","clojure.core/when-let","clojure.core/when-not","clojure.core/when-some","cond","cond->","cond->>","condp","if-let","if-not","if-some","when","when-first","when-let","when-not","when-some"] +    \ , 'clojureConstant': ["nil"] +    \ , '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"] +    \ , 'clojureException': ["catch","finally","throw","try"] +    \ , 'clojureFunc': ["*","*'","+","+'","-","-'","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","/","<","<=","=","==",">",">=","Throwable->map","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","cat","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/->Eduction","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/Throwable->map","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/cat","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/completing","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/dedupe","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/doall","clojure.core/dorun","clojure.core/double","clojure.core/double-array","clojure.core/doubles","clojure.core/drop","clojure.core/drop-last","clojure.core/drop-while","clojure.core/eduction","clojure.core/empty","clojure.core/empty?","clojure.core/ensure","clojure.core/ensure-reduced","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-ordered-coll","clojure.core/hash-set","clojure.core/hash-unordered-coll","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-entry?","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/mix-collection-hash","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-dup","clojure.core/print-method","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/random-sample","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/reader-conditional","clojure.core/reader-conditional?","clojure.core/realized?","clojure.core/record?","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/run!","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/some?","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/tagged-literal","clojure.core/tagged-literal?","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/transduce","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/unreduced","clojure.core/unsigned-bit-shift-right","clojure.core/update","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/volatile!","clojure.core/volatile?","clojure.core/vreset!","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","completing","concat","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","dedupe","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","double","double-array","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","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-ordered-coll","hash-set","hash-unordered-coll","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-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","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-dup","print-method","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","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","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","run!","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","some?","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?","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","to-array","to-array-2d","trampoline","transduce","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","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","use","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","with-bindings*","with-meta","with-redefs-fn","xml-seq","zero?","zipmap"] +    \ , '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/vswap!","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","vswap!","with-bindings","with-in-str","with-loading-context","with-local-vars","with-open","with-out-str","with-precision","with-redefs"] +    \ , 'clojureRepeat': ["clojure.core/doseq","clojure.core/dotimes","clojure.core/while","doseq","dotimes","while"] +    \ , 'clojureSpecial': [".","clojure.core/fn","clojure.core/let","clojure.core/loop","def","do","fn","if","let","loop","monitor-enter","monitor-exit","new","quote","recur","set!","var"] +    \ , '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*","*suppress-read*","*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/*suppress-read*","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/unquote","clojure.core/unquote-splicing","default-data-readers","primitives-classnames","unquote","unquote-splicing"] +    \ } + +function! s:syntax_keyword(dict) +	for key in keys(a:dict) +		execute 'syntax keyword' key join(a:dict[key], ' ') +	endfor +endfunction + +if exists('b:clojure_syntax_without_core_keywords') && b:clojure_syntax_without_core_keywords +	" Only match language specials and primitives +	for s:key in ['clojureBoolean', 'clojureConstant', 'clojureException', 'clojureSpecial'] +		execute 'syntax keyword' s:key join(s:clojure_syntax_keywords[s:key], ' ') +	endfor +else +	call s:syntax_keyword(s:clojure_syntax_keywords) +endif + +if exists('g:clojure_syntax_keywords') +	call s:syntax_keyword(g:clojure_syntax_keywords) +endif + +if exists('b:clojure_syntax_keywords') +	call s:syntax_keyword(b:clojure_syntax_keywords) +endif + +unlet! s:key +delfunction s:syntax_keyword  " Keywords are symbols:  "   static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)"); @@ -43,7 +74,7 @@ syntax match clojureKeyword "\v<:{1,2}%([^ \n\r\t()\[\]{}";@^`~\\%/]+/)*[^ \n\r\  syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained -syntax region clojureString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell +syntax region clojureString matchgroup=clojureStringDelimiter start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell  syntax match clojureCharacter "\\."  syntax match clojureCharacter "\\o\%([0-3]\o\{2\}\|\o\{1,2\}\)" @@ -77,7 +108,7 @@ syntax match clojureMeta "\^"  syntax match clojureDeref "@"  syntax match clojureDispatch "\v#[\^'=<_]?" -" Clojure permits no more than 20 params. +" Clojure permits no more than 20 anonymous 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 @@ -85,27 +116,27 @@ syntax region clojureRegexpQuoted start=/\\Q/ms=e+1 skip=/\\\\\|\\"/ end=/\\E/me  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-010/clj/src/vim_clojure_static/generate.clj -" Java version 1.7.0_51 +" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj +" Java version 1.8.0_92  syntax match clojureRegexpPosixCharClass "\v\\[pP]\{%(Cntrl|A%(l%(pha|num)|SCII)|Space|Graph|Upper|P%(rint|unct)|Blank|XDigit|Digit|Lower)\}" contained display  syntax match clojureRegexpJavaCharClass "\v\\[pP]\{java%(Whitespace|JavaIdentifier%(Part|Start)|SpaceChar|Mirrored|TitleCase|I%(SOControl|de%(ographic|ntifierIgnorable))|D%(efined|igit)|U%(pperCase|nicodeIdentifier%(Part|Start))|L%(etter%(OrDigit)?|owerCase)|Alphabetic)\}" contained display -syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\cIs%(l%(owercase|etter)|hex%(digit|_digit)|w%(hite%(_space|space)|ord)|noncharacter%(_code_point|codepoint)|p%(rint|unctuation)|ideographic|graph|a%(l%(num|phabetic)|ssigned)|uppercase|titlecase|blank|digit|control)\}" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\cIs%(l%(owercase|etter)|hex%(digit|_digit)|w%(hite%(_space|space)|ord)|noncharacter%(_code_point|codepoint)|p%(rint|unctuation)|ideographic|graph|a%(l%(num|phabetic)|ssigned)|uppercase|join%(control|_control)|titlecase|blank|digit|control)\}" contained display  syntax match clojureRegexpUnicodeCharClass "\v\\[pP][NSCMZPL]" contained display  syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display  syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(Is|gc\=|general_category\=)?%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display -syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(Is|sc\=|script\=)%(l%(epc%(ha)?|y%([dc]i%(an)?)|a%(t%(n|in)|na|oo?)|i%(n%(b|ear_b)|mbu?|su))|vaii?|d%(srt|e%(seret|va%(nagari)?))|g%(lag%(olitic)?|eor%(gian)?|oth%(ic)?|re%(k|ek)|u%(j%(arati|r)|r%(u|mukhi)))|u%(gar%(itic)?|nknown)|a%(r%(ab%(ic)?|m%([ni]|enian))|v%(st|estan))|e%(thi%(opic)?|gyp%(tian_hieroglyphs)?)|z%(inh|yyy|zzz)|r%(un%(ic|r)|ejang|jng)|m%(a%(nd%(aic)?|layalam)|lym|y%(anmar|mr)|tei|ong%(olian)?|eetei_mayek)|c%(a%(n%(adian_aboriginal|s)|ri%(an)?)|y%(priot|r%(l|illic))|prt|uneiform|o%(pt%(ic)?|mmon)|h%(er%(okee)?|am))|i%(n%(scriptional_pa%(rthian|hlavi)|herited)|mperial_aramaic|tal)|b%(eng%(ali)?|a%(t%(ak|k)|li%(nese)?|mum?)|ra%(i%(lle)?|h%(mi)?)|opo%(mofo)?|u%(gi%(nese)?|h%(d|id)))|o%(g%(am|ham)|r%(iya|kh|ya)|sma%(nya)?|l%(d_%(south_arabian|persian|italic|turkic)|ck|_chiki))|p%(rti|h%(oenician|li|ag%(s_pa)?|nx))|k%(h%(m%(r|er)|ar%(oshthi)?)|nda|a%(li|n%(a|nada)|takana|yah_li|ithi)|thi)|yi%(ii)?|t%(elu%(gu)?|i%(finagh|b%(t|etan))|ha%(i|a%(na)?)|a%(i_%(le|tham|viet)|g%(alog|b%(anwa)?)|vt|l[ue]|m%(il|l))|fng|glg)|x%(peo|sux)|n%(ew_tai_lue|koo?)|h%(ira%(gana)?|an%([io]|unoo|g%(ul)?)?|ebr%(ew)?)|java%(nese)?|s%(inh%(ala)?|ha%(vian|w)|a%(ur%(ashtra)?|m%(r|aritan)|rb)|y%(r%(c|iac)|lo%(ti_nagri)?)|und%(anese)?))\}" contained display -syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(In|blk\=|block\=)%(javanese|h%(a%(lfwidth%( and fullwidth forms|andfullwidthforms|_and_fullwidth_forms)|n%(unoo|gul%(compatibilityjamo|syllables|jamo%(extended\-[ab])?|_%(syllables|jamo%(_extended_[ab])?|compatibility_jamo)| %(syllables|compatibility jamo|jamo%( extended\-[ab])?))))|i%(ragana|gh%( %(private use surrogates|surrogates)|_%(private_use_surrogates|surrogates)|surrogates|privateusesurrogates))|ebrew)|i%(pa%([ _]extensions|extensions)|deographic%( description characters|_description_characters|descriptioncharacters)|nscriptional%(%([ _]pa%(rthian|hlavi))|pa%(rthian|hlavi))|mperial%(aramaic|[_ ]aramaic))|l%(e%(tterlike%([_ ]symbols|symbols)|pcha)|ow%([_ ]surrogates|surrogates)|i%(mbu|near%(_b_%(ideograms|syllabary)|b%(ideograms|syllabary)| b %(ideograms|syllabary))|su)|a%(tin%(extended%(additional|\-[dacb])| extended%( additional|\-[dacb])|\-1%(supplement| supplement)|_%(extended_%([dcb]|a%(dditional)?)|1_supplement))|o)|y[cd]ian)|b%(u%(ginese|hid)|ra%(hmi|ille%(patterns|[_ ]patterns))|o%(x%([ _]drawing|drawing)|pomofo%([ _]extended|extended)?)|lock%([ _]elements|elements)|yzantine%( musical symbols|musicalsymbols|_musical_symbols)|engali|a%(linese|mum%(supplement|[ _]supplement)?|tak|sic%([ _]latin|latin)))|e%(gyptian%([ _]hieroglyphs|hieroglyphs)|moticons|nclosed%( %(cjk letters and months|ideographic supplement|alphanumeric%( supplement|s))|cjklettersandmonths|_%(ideographic_supplement|alphanumeric%(_supplement|s)|cjk_letters_and_months)|alphanumerics%(upplement)?|ideographicsupplement)|thiopic%(supplement|_%(supplement|extended%(_a)?)| %(supplement|extended%(\-a)?)|extended%(\-a)?)?)|k%(h%(aroshthi|mer%([_ ]symbols|symbols)?)|a%(takana%(_phonetic_extensions|phoneticextensions| phonetic extensions)?|n%(gxi%([_ ]radicals|radicals)|a%(supplement|[ _]supplement)|bun|nada)|ithi|yah%([ _]li|li)))|r%(u%(nic|mi%(numeralsymbols| numeral symbols|_numeral_symbols))|ejang)|n%(umber%(forms|[ _]forms)|ko|ew%(_tai_lue|tailue| tai lue))|m%(iscellaneous%(technical|symbols%(and%(pictographs|arrows))?|mathematicalsymbols\-[ab]| %(technical|mathematical symbols\-[ab]|symbols%( and %(pictographs|arrows))?)|_%(technical|symbols%(_and_%(pictographs|arrows))?|mathematical_symbols_[ab]))|usical%([_ ]symbols|symbols)|eetei%(mayek|[_ ]mayek)|a%(ndaic|hjong%([ _]tiles|tiles)|layalam|thematical%(alphanumericsymbols| %(alphanumeric symbols|operators)|_%(alphanumeric_symbols|operators)|operators))|yanmar%(extended\-a|_extended_a| extended\-a)?|o%(difier%(_tone_letters| tone letters|toneletters)|ngolian))|d%(e%(seret|vanagari%([ _]extended|extended)?)|ingbats|omino%([ _]tiles|tiles))|yi%(syllables|%([_ ]%(syllables|radicals))|radicals|jing%(hexagramsymbols| hexagram symbols|_hexagram_symbols))|s%(havian|mall%( form variants|formvariants|_form_variants)|p%(acing%(_modifier_letters| modifier letters|modifierletters)|ecials)|a%(maritan|urashtra)|u%(p%(erscripts%(_and_subscripts|andsubscripts| and subscripts)|plementa%(ry%(_private_use_area_[ab]|privateusearea\-[ab]| private use area\-[ab])|l%(_%(arrows_[ab]|mathematical_operators|punctuation)| %(mathematical operators|punctuation|arrows\-[ab])|mathematicaloperators|punctuation|arrows\-[ab])))|rrogates_area|ndanese)|inhala|y%(riac|loti%([_ ]nagri|nagri)))|p%(h%(o%(enician|netic%( extensions%( supplement)?|extensions%(supplement)?|_extensions%(_supplement)?))|a%(istos%([ _]disc|disc)|gs[_\-]pa))|laying%(cards|[_ ]cards)|rivate%(usearea| use area|_use_area))|o%(smanya|l%([ _]chiki|d%( %(south arabian|persian|italic|turkic)|southarabian|_%(south_arabian|persian|italic|turkic)|persian|italic|turkic)|chiki)|riya|ptical%( character recognition|_character_recognition|characterrecognition)|gham)|g%(u%(jarati|rmukhi)|othic|lagolitic|e%(o%(rgian%(supplement|[ _]supplement)?|metric%(shapes|[ _]shapes))|neral%([_ ]punctuation|punctuation))|reek%( %(and coptic|extended)|andcoptic|_extended|extended)?)|c%(o%(ntrol%(pictures|[ _]pictures)|m%(bining%(diacriticalmarks%(supplement|forsymbols)?|halfmarks| %(diacritical marks%( %(supplement|for symbols))?|half marks|marks for symbols)|marksforsymbols|_%(marks_for_symbols|half_marks|diacritical_marks%(_supplement)?))|mon%(_indic_number_forms|indicnumberforms| indic number forms))|ptic|unting%( rod numerals|_rod_numerals|rodnumerals))|y%(rillic%(extended\-[ab]|_%(extended_[ab]|supplementary)|supplement%(ary)?| %(extended\-[ab]|supplement%(ary)?))?|priot%(syllabary|[ _]syllabary))|u%(rrency%([_ ]symbols|symbols)|neiform%(_numbers_and_punctuation|numbersandpunctuation| numbers and punctuation)?)|arian|h%(erokee|am)|jk%(s%(ymbolsandpunctuation|trokes)|compatibility%(forms|ideographs%(supplement)?)?|radicalssupplement| %(compatibility%( %(ideographs%( supplement)?|forms))?|radicals supplement|unified ideographs%( extension [dacb])?|s%(ymbols and punctuation|trokes))|_%(s%(trokes|ymbols_and_punctuation)|radicals_supplement|compatibility%(_%(forms|ideographs%(_supplement)?))?|unified_ideographs%(_extension_[dacb])?)|unifiedideographs%(extension[dacb])?))|t%(i%(betan|finagh)|elugu|a%(mil|i%(xuanjingsymbols|_%(le|xuan_jing_symbols|tham|viet)|le| %(xuan jing symbols|le|tham|viet)|tham|viet)|g%(alog|s|banwa))|ransport%( and map symbols|_and_map_symbols|andmapsymbols)|ha%(i|ana))|a%(l%(chemical%([_ ]symbols|symbols)|phabetic%( presentation forms|_presentation_forms|presentationforms))|ncient%(_%(greek_%(musical_notation|numbers)|symbols)|greek%(numbers|musicalnotation)| %(greek %(numbers|musical notation)|symbols)|symbols)|egean%(numbers|[ _]numbers)|vestan|r%(abic%( %(supplement|presentation forms\-[ab])|supplement|_%(presentation_forms_[ab]|supplement)|presentationforms\-[ab])?|menian|rows))|u%(garitic|nified%(canadianaboriginalsyllabics%(extended)?|_canadian_aboriginal_syllabics%(_extended)?| canadian aboriginal syllabics%( extended)?))|v%(a%(i|riation%( selectors%( supplement)?|selectors%(supplement)?|_selectors%(_supplement)?))|e%(rtical%(forms|[ _]forms)|dic%([ _]extensions|extensions))))\}" 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 +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(Is|sc\=|script\=)%(l%(epc%(ha)?|y%([dc]i%(an)?)|a%(t%(n|in)|na|oo?)|i%(n%(b|ear_b)|mbu?|su))|p%(rti|lrd|h%(oenician|li|ag%(s_pa)?|nx))|vaii?|d%(srt|e%(seret|va%(nagari)?))|g%(lag%(olitic)?|eor%(gian)?|oth%(ic)?|re%(k|ek)|u%(j%(arati|r)|r%(u|mukhi)))|u%(gar%(itic)?|nknown)|a%(r%(ab%(ic)?|m%([ni]|enian))|v%(st|estan))|e%(thi%(opic)?|gyp%(tian_hieroglyphs)?)|z%(inh|yyy|zzz)|r%(un%(ic|r)|ejang|jng)|s%(inh%(ala)?|h%(rd|a%(vian|rada|w))|a%(ur%(ashtra)?|m%(r|aritan)|rb)|y%(r%(c|iac)|lo%(ti_nagri)?)|und%(anese)?|ora%(_sompeng)?)|i%(n%(scriptional_pa%(rthian|hlavi)|herited)|mperial_aramaic|tal)|b%(eng%(ali)?|a%(t%(ak|k)|li%(nese)?|mum?)|ra%(i%(lle)?|h%(mi)?)|opo%(mofo)?|u%(gi%(nese)?|h%(d|id)))|o%(g%(am|ham)|r%(iya|kh|ya)|sma%(nya)?|l%(d_%(south_arabian|persian|italic|turkic)|ck|_chiki))|k%(h%(m%(r|er)|ar%(oshthi)?)|nda|a%(li|n%(a|nada)|takana|yah_li|ithi)|thi)|m%(a%(nd%(aic)?|layalam)|lym|y%(anmar|mr)|tei|e%(r%(c|o%(itic_%(hieroglyphs|cursive))?)|etei_mayek)|ong%(olian)?|iao)|yi%(ii)?|x%(peo|sux)|n%(ew_tai_lue|koo?)|h%(ira%(gana)?|an%([io]|unoo|g%(ul)?)?|ebr%(ew)?)|c%(y%(priot|r%(l|illic))|a%(km|n%(adian_aboriginal|s)|ri%(an)?)|prt|h%(er%(okee)?|a%(m|kma))|uneiform|o%(pt%(ic)?|mmon))|t%(elu%(gu)?|i%(finagh|b%(t|etan))|ha%(i|a%(na)?)|a%(i_%(le|tham|viet)|g%(alog|b%(anwa)?)|vt|kri?|l[ue]|m%(il|l))|fng|glg)|java%(nese)?)\}" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(In|blk\=|block\=)%(javanese|h%(a%(lfwidth%( and fullwidth forms|andfullwidthforms|_and_fullwidth_forms)|n%(unoo|gul%(compatibilityjamo|syllables|jamo%(extended\-[ab])?|_%(syllables|jamo%(_extended_[ab])?|compatibility_jamo)| %(syllables|compatibility jamo|jamo%( extended\-[ab])?))))|i%(ragana|gh%( %(private use surrogates|surrogates)|_%(private_use_surrogates|surrogates)|surrogates|privateusesurrogates))|ebrew)|i%(pa%([ _]extensions|extensions)|deographic%( description characters|_description_characters|descriptioncharacters)|nscriptional%(%([ _]pa%(rthian|hlavi))|pa%(rthian|hlavi))|mperial%(aramaic|[_ ]aramaic))|l%(e%(tterlike%([_ ]symbols|symbols)|pcha)|ow%([_ ]surrogates|surrogates)|i%(mbu|near%(_b_%(ideograms|syllabary)|b%(ideograms|syllabary)| b %(ideograms|syllabary))|su)|a%(tin%(extended%(additional|\-[dacb])| extended%( additional|\-[dacb])|\-1%(supplement| supplement)|_%(extended_%([dcb]|a%(dditional)?)|1_supplement))|o)|y[cd]ian)|b%(u%(ginese|hid)|ra%(hmi|ille%(patterns|[_ ]patterns))|o%(x%([ _]drawing|drawing)|pomofo%([ _]extended|extended)?)|lock%([ _]elements|elements)|yzantine%( musical symbols|musicalsymbols|_musical_symbols)|engali|a%(linese|mum%(supplement|[ _]supplement)?|tak|sic%([ _]latin|latin)))|e%(gyptian%([ _]hieroglyphs|hieroglyphs)|moticons|nclosed%( %(cjk letters and months|ideographic supplement|alphanumeric%( supplement|s))|cjklettersandmonths|_%(ideographic_supplement|alphanumeric%(_supplement|s)|cjk_letters_and_months)|alphanumerics%(upplement)?|ideographicsupplement)|thiopic%(supplement|_%(supplement|extended%(_a)?)| %(supplement|extended%(\-a)?)|extended%(\-a)?)?)|k%(h%(aroshthi|mer%([_ ]symbols|symbols)?)|a%(takana%(_phonetic_extensions|phoneticextensions| phonetic extensions)?|n%(gxi%([_ ]radicals|radicals)|a%(supplement|[ _]supplement)|bun|nada)|ithi|yah%([ _]li|li)))|m%(i%(ao|scellaneous%(technical|symbols%(and%(pictographs|arrows))?|mathematicalsymbols\-[ab]| %(technical|mathematical symbols\-[ab]|symbols%( and %(pictographs|arrows))?)|_%(technical|symbols%(_and_%(pictographs|arrows))?|mathematical_symbols_[ab])))|usical%([_ ]symbols|symbols)|e%(etei%(mayek%(extensions)?|_mayek%(_extensions)?| mayek%( extensions)?)|roitic%(hieroglyphs|%([_ ]%(hieroglyphs|cursive))|cursive))|a%(ndaic|hjong%([ _]tiles|tiles)|layalam|thematical%(alphanumericsymbols| %(alphanumeric symbols|operators)|_%(alphanumeric_symbols|operators)|operators))|yanmar%(extended\-a|_extended_a| extended\-a)?|o%(difier%(_tone_letters| tone letters|toneletters)|ngolian))|r%(u%(nic|mi%(numeralsymbols| numeral symbols|_numeral_symbols))|ejang)|n%(umber%(forms|[ _]forms)|ko|ew%(_tai_lue|tailue| tai lue))|c%(o%(ntrol%(pictures|[ _]pictures)|m%(bining%(diacriticalmarks%(supplement|forsymbols)?|halfmarks| %(diacritical marks%( %(supplement|for symbols))?|half marks|marks for symbols)|marksforsymbols|_%(marks_for_symbols|half_marks|diacritical_marks%(_supplement)?))|mon%(_indic_number_forms|indicnumberforms| indic number forms))|ptic|unting%( rod numerals|_rod_numerals|rodnumerals))|y%(rillic%(extended\-[ab]|_%(extended_[ab]|supplementary)|supplement%(ary)?| %(extended\-[ab]|supplement%(ary)?))?|priot%(syllabary|[ _]syllabary))|u%(rrency%([_ ]symbols|symbols)|neiform%(_numbers_and_punctuation|numbersandpunctuation| numbers and punctuation)?)|h%(a%(m|kma)|erokee)|arian|jk%(s%(ymbolsandpunctuation|trokes)|compatibility%(forms|ideographs%(supplement)?)?|radicalssupplement| %(compatibility%( %(ideographs%( supplement)?|forms))?|radicals supplement|unified ideographs%( extension [dacb])?|s%(ymbols and punctuation|trokes))|_%(s%(trokes|ymbols_and_punctuation)|radicals_supplement|compatibility%(_%(forms|ideographs%(_supplement)?))?|unified_ideographs%(_extension_[dacb])?)|unifiedideographs%(extension[dacb])?))|d%(e%(seret|vanagari%([ _]extended|extended)?)|ingbats|omino%([ _]tiles|tiles))|yi%(syllables|%([_ ]%(syllables|radicals))|radicals|jing%(hexagramsymbols| hexagram symbols|_hexagram_symbols))|s%(mall%( form variants|formvariants|_form_variants)|p%(acing%(_modifier_letters| modifier letters|modifierletters)|ecials)|ora%(sompeng|[ _]sompeng)|ha%(vian|rada)|a%(maritan|urashtra)|inhala|y%(riac|loti%([_ ]nagri|nagri))|u%(ndanese%(supplement|[ _]supplement)?|p%(erscripts%(_and_subscripts|andsubscripts| and subscripts)|plementa%(ry%(_private_use_area_[ab]|privateusearea\-[ab]| private use area\-[ab])|l%(_%(arrows_[ab]|mathematical_operators|punctuation)| %(mathematical operators|punctuation|arrows\-[ab])|mathematicaloperators|punctuation|arrows\-[ab])))|rrogates_area))|p%(h%(o%(enician|netic%( extensions%( supplement)?|extensions%(supplement)?|_extensions%(_supplement)?))|a%(istos%([ _]disc|disc)|gs[_\-]pa))|laying%(cards|[_ ]cards)|rivate%(usearea| use area|_use_area))|o%(smanya|l%([ _]chiki|d%( %(south arabian|persian|italic|turkic)|southarabian|_%(south_arabian|persian|italic|turkic)|persian|italic|turkic)|chiki)|riya|ptical%( character recognition|_character_recognition|characterrecognition)|gham)|g%(u%(jarati|rmukhi)|othic|lagolitic|e%(o%(rgian%(supplement|[ _]supplement)?|metric%(shapes|[ _]shapes))|neral%([_ ]punctuation|punctuation))|reek%( %(and coptic|extended)|andcoptic|_extended|extended)?)|t%(i%(betan|finagh)|elugu|ransport%( and map symbols|_and_map_symbols|andmapsymbols)|a%(mil|kri|i%(xuanjingsymbols|_%(le|xuan_jing_symbols|tham|viet)|le| %(xuan jing symbols|le|tham|viet)|tham|viet)|g%(alog|s|banwa))|ha%(i|ana))|a%(l%(chemical%([_ ]symbols|symbols)|phabetic%( presentation forms|_presentation_forms|presentationforms))|r%(menian|abic%(extended\-a|mathematicalalphabeticsymbols|supplement|_%(presentation_forms_[ab]|supplement|extended_a|mathematical_alphabetic_symbols)| %(extended\-a|mathematical alphabetic symbols|supplement|presentation forms\-[ab])|presentationforms\-[ab])?|rows)|ncient%(_%(greek_%(musical_notation|numbers)|symbols)|greek%(numbers|musicalnotation)| %(greek %(numbers|musical notation)|symbols)|symbols)|egean%(numbers|[ _]numbers)|vestan)|u%(garitic|nified%(canadianaboriginalsyllabics%(extended)?|_canadian_aboriginal_syllabics%(_extended)?| canadian aboriginal syllabics%( extended)?))|v%(a%(i|riation%( selectors%( supplement)?|selectors%(supplement)?|_selectors%(_supplement)?))|e%(rtical%(forms|[ _]forms)|dic%([ _]extensions|extensions))))\}" 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. @@ -123,66 +154,70 @@ syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell  syntax match clojureComment "#!.*$"  " -*- TOP CLUSTER -*- -" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-010/clj/src/vim_clojure_static/generate.clj +" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj  syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVarArg,clojureVariable,clojureVector -syntax region clojureSexp   matchgroup=clojureParen start="("  matchgroup=clojureParen end=")" contains=@clojureTop fold -syntax region clojureVector matchgroup=clojureParen start="\[" matchgroup=clojureParen end="]" contains=@clojureTop fold -syntax region clojureMap    matchgroup=clojureParen start="{"  matchgroup=clojureParen end="}" contains=@clojureTop fold +syntax region clojureSexp   matchgroup=clojureParen start="("  end=")" contains=@clojureTop fold +syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold +syntax region clojureMap    matchgroup=clojureParen start="{"  end="}" contains=@clojureTop fold  " Highlight superfluous closing parens, brackets and braces.  syntax match clojureError "]\|}\|)"  syntax sync fromstart -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 +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 clojureStringDelimiter           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=8:sw=8:ts=8:noet:smc=0 +let &cpo = s:cpo_sav +unlet! s:cpo_sav + +" vim:sts=8:sw=8:ts=8:noet diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim index 2a0ea5de2b..fa42b3e2d2 100644 --- a/runtime/syntax/python.vim +++ b/runtime/syntax/python.vim @@ -1,7 +1,7 @@  " Vim syntax file  " Language:	Python  " Maintainer:	Zvezdan Petkovic <zpetkovic@acm.org> -" Last Change:	2016 Feb 20 +" Last Change:	2016 Jul 21  " Credits:	Neil Schemenauer <nas@python.ca>  "		Dmitry Vasiliev  " @@ -72,7 +72,7 @@ set cpo&vim  "   built-in below (use 'from __future__ import print_function' in 2)  " - async and await were added in Python 3.5 and are soft keywords.  " -syn keyword pythonStatement	False, None, True +syn keyword pythonStatement	False None True  syn keyword pythonStatement	as assert break continue del exec global  syn keyword pythonStatement	lambda nonlocal pass print return with yield  syn keyword pythonStatement	class def nextgroup=pythonFunction skipwhite diff --git a/runtime/syntax/sqloracle.vim b/runtime/syntax/sqloracle.vim index 8afe2686bf..f9e24af98c 100644 --- a/runtime/syntax/sqloracle.vim +++ b/runtime/syntax/sqloracle.vim @@ -4,7 +4,12 @@  " Repository:   https://github.com/chrisbra/vim-sqloracle-syntax  " License:      Vim  " Previous Maintainer:	Paul Moore -" Last Change:	2015 Nov 24 +" Last Change:	2016 Jul 22 + +" Changes: +" 02.04.2016: Support for when keyword +" 03.04.2016: Support for join related keywords +" 22.07.2016: Support Oracle Q-Quote-Syntax  if exists("b:current_syntax")    finish @@ -24,10 +29,11 @@ syn keyword sqlKeyword	index initial initrans into is level link logging loop  syn keyword sqlKeyword	maxextents maxtrans mode modify monitoring  syn keyword sqlKeyword	nocache nocompress nologging noparallel nowait of offline on online start  syn keyword sqlKeyword	parallel successful synonym table tablespace then to trigger uid -syn keyword sqlKeyword	unique user validate values view whenever +syn keyword sqlKeyword	unique user validate values view when whenever  syn keyword sqlKeyword	where with option order pctfree pctused privileges procedure  syn keyword sqlKeyword	public resource return row rowlabel rownum rows  syn keyword sqlKeyword	session share size smallint type using +syn keyword sqlKeyword	join cross inner outer left right  syn keyword sqlOperator	not and or  syn keyword sqlOperator	in any some all between exists @@ -47,8 +53,13 @@ syn keyword sqlType	boolean char character date float integer long  syn keyword sqlType	mlslabel number raw rowid varchar varchar2 varray  " Strings: -syn region sqlString	start=+"+  skip=+\\\\\|\\"+  end=+"+ -syn region sqlString	start=+'+  skip=+\\\\\|\\'+  end=+'+ +syn region sqlString	matchgroup=Quote start=+"+  skip=+\\\\\|\\"+  end=+"+ +syn region sqlString	matchgroup=Quote start=+'+  skip=+\\\\\|\\'+  end=+'+ +syn region sqlString	matchgroup=Quote start=+n\?q'\z([^[(<{]\)+    end=+\z1'+ +syn region sqlString	matchgroup=Quote start=+n\?q'<+   end=+>'+ +syn region sqlString	matchgroup=Quote start=+n\?q'{+   end=+}'+ +syn region sqlString	matchgroup=Quote start=+n\?q'(+   end=+)'+ +syn region sqlString	matchgroup=Quote start=+n\?q'\[+  end=+]'+  " Numbers:  syn match sqlNumber	"-\=\<\d*\.\=[0-9_]\>" @@ -118,6 +129,7 @@ syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained  " Define the default highlighting.  command -nargs=+ HiLink hi def link <args> +HiLink Quote            Special  HiLink sqlComment	Comment  HiLink sqlFunction	Function  HiLink sqlKeyword	sqlSpecial diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 2e0b67593c..2ca621ad22 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -17265,14 +17265,6 @@ static void f_termopen(typval_T *argvars, typval_T *rettv, FunPtr fptr)    return;  } -/* - * "test(list)" function: Just checking the walls... - */ -static void f_test(typval_T *argvars, typval_T *rettv, FunPtr fptr) -{ -  /* Used for unit testing.  Change the code below to your liking. */ -} -  static bool callback_from_typval(Callback *callback, typval_T *arg)  {    if (arg->v_type == VAR_PARTIAL && arg->vval.v_partial != NULL) { diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 980a8d2326..5fb99fecc6 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -302,7 +302,6 @@ return {      tanh={args=1, func="float_op_wrapper", data="&tanh"},      tempname={},      termopen={args={1, 2}}, -    test={args=1},      timer_start={args={2,3}},      timer_stop={args=1},      tolower={args=1}, diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index fcaf17a0fc..b1a17e8c44 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -1611,6 +1611,7 @@ int do_write(exarg_T *eap)    int retval = FAIL;    char_u      *free_fname = NULL;    buf_T       *alt_buf = NULL; +  int          name_was_missing;    if (not_writing())            /* check 'write' option */      return FAIL; @@ -1734,6 +1735,7 @@ int do_write(exarg_T *eap)        fname = curbuf->b_sfname;      } +    name_was_missing = curbuf->b_ffname == NULL;      retval = buf_write(curbuf, ffname, fname, eap->line1, eap->line2,          eap, eap->append, eap->forceit, TRUE, FALSE); @@ -1743,7 +1745,11 @@ int do_write(exarg_T *eap)          curbuf->b_p_ro = FALSE;          redraw_tabline = TRUE;        } -      /* Change directories when the 'acd' option is set. */ +    } + +    // Change directories when the 'acd' option is set and the file name +    // got changed or set. +    if (eap->cmdidx == CMD_saveas || name_was_missing) {        do_autochdir();      }    } diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 84a0c0b889..612071e2e2 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -43,8 +43,8 @@ NEW_TESTS = \  	    test_quickfix.res \  	    test_signs.res \  	    test_syntax.res \ -	    test_usercommands.res \  	    test_timers.res \ +	    test_usercommands.res \  	    test_viml.res \  	    test_visual.res \  	    test_window_id.res \ diff --git a/src/nvim/version.c b/src/nvim/version.c index 678183107a..6914cd9409 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -425,7 +425,7 @@ static int included_patches[] = {    // 2018,    // 2017,    // 2016 NA -  // 2015, +  2015,    2014,    2013,    2012, @@ -602,7 +602,7 @@ static int included_patches[] = {    1841,    1840,    1839, -  // 1838 NA +  1838,    1837,    1836,    1835, diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index d67f225ed1..ed153182ca 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -14,6 +14,7 @@ local neq = global_helpers.neq  local eq = global_helpers.eq  local ok = global_helpers.ok +local start_dir = lfs.currentdir()  local nvim_prog = os.getenv('NVIM_PROG') or 'build/bin/nvim'  local nvim_argv = {nvim_prog, '-u', 'NONE', '-i', 'NONE', '-N',                     '--cmd', 'set shortmess+=I background=light noswapfile noautoindent laststatus=1 undodir=. directory=. viewdir=. backupdir=.', @@ -440,6 +441,12 @@ end  local function rmdir(path)    local ret, _ = pcall(do_rmdir, path) +  if not ret and os_name() == "windows" then +    -- Maybe "Permission denied"; try again after changing the nvim +    -- process to the top-level directory. +    nvim_command([[exe 'cd '.fnameescape(']]..start_dir.."')") +    ret, _ = pcall(do_rmdir, path) +  end    -- During teardown, the nvim process may not exit quickly enough, then rmdir()    -- will fail (on Windows).    if not ret then  -- Try again. diff --git a/test/functional/legacy/autochdir_spec.lua b/test/functional/legacy/autochdir_spec.lua new file mode 100644 index 0000000000..06f7c1dd11 --- /dev/null +++ b/test/functional/legacy/autochdir_spec.lua @@ -0,0 +1,26 @@ +local lfs = require('lfs') +local helpers = require('test.functional.helpers')(after_each) +local clear, eq = helpers.clear, helpers.eq +local eval, execute = helpers.eval, helpers.execute + +describe('autochdir behavior', function() +  local dir = 'Xtest-functional-legacy-autochdir' + +  before_each(function() +    lfs.mkdir(dir) +    clear() +  end) + +  after_each(function() +    helpers.rmdir(dir) +  end) + +  -- Tests vim/vim/777 without test_autochdir(). +  it('sets filename', function() +    execute('set acd') +    execute('new') +    execute('w '..dir..'/Xtest') +    eq('Xtest', eval("expand('%')")) +    eq(dir, eval([[substitute(getcwd(), '.*[/\\]\(\k*\)', '\1', '')]])) +  end) +end) | 
