Major update

This commit is contained in:
Adam Stankiewicz
2014-06-08 13:18:33 +02:00
parent e961fa8037
commit 45273d44d4
24 changed files with 755 additions and 424 deletions

View File

@@ -2,15 +2,16 @@
" Language: C++ Additions " Language: C++ Additions
" Maintainer: Jon Haggblad <jon@haeggblad.com> " Maintainer: Jon Haggblad <jon@haeggblad.com>
" URL: http://www.haeggblad.com " URL: http://www.haeggblad.com
" Last Change: 26 Jan 2014 " Last Change: 21 Apr 2014
" Version: 0.2 " Version: 0.3
" Changelog: " Changelog:
" 0.1 - initial version. " 0.1 - initial version.
" 0.2 - C++14 " 0.2 - C++14
" 0.3 - Incorporate lastest changes from Mizuchi/STL-Syntax
" "
" Additional Vim syntax highlighting for C++ (including C++11) " Additional Vim syntax highlighting for C++ (including C++11)
" "
" This file contains additional syntax highlighting that I use for my C++11 " This file contains additional syntax highlighting that I use for my C++11/14
" development in Vim. Compared to the standard syntax highlighting for C++ it " development in Vim. Compared to the standard syntax highlighting for C++ it
" adds highlighting of (user defined) functions and the containers and types " adds highlighting of (user defined) functions and the containers and types
" in the standard library / boost. " in the standard library / boost.
@@ -54,6 +55,10 @@ hi def link cCustomFunc Function
" http://www.vim.org/scripts/script.php?script_id=1640 " http://www.vim.org/scripts/script.php?script_id=1640
" ----------------------------------------------------------------------------- " -----------------------------------------------------------------------------
syntax keyword cppSTLconstant badbit syntax keyword cppSTLconstant badbit
syntax keyword cppSTLconstant cerr
syntax keyword cppSTLconstant cin
syntax keyword cppSTLconstant clog
syntax keyword cppSTLconstant cout
syntax keyword cppSTLconstant digits syntax keyword cppSTLconstant digits
syntax keyword cppSTLconstant digits10 syntax keyword cppSTLconstant digits10
syntax keyword cppSTLconstant eofbit syntax keyword cppSTLconstant eofbit
@@ -82,6 +87,10 @@ syntax keyword cppSTLconstant radix
syntax keyword cppSTLconstant round_style syntax keyword cppSTLconstant round_style
syntax keyword cppSTLconstant tinyness_before syntax keyword cppSTLconstant tinyness_before
syntax keyword cppSTLconstant traps syntax keyword cppSTLconstant traps
syntax keyword cppSTLconstant wcerr
syntax keyword cppSTLconstant wcin
syntax keyword cppSTLconstant wclog
syntax keyword cppSTLconstant wcout
syntax keyword cppSTLexception bad_alloc syntax keyword cppSTLexception bad_alloc
syntax keyword cppSTLexception bad_array_new_length syntax keyword cppSTLexception bad_array_new_length
syntax keyword cppSTLexception bad_exception syntax keyword cppSTLexception bad_exception
@@ -157,12 +166,9 @@ syntax keyword cppSTLfunction bsearch
syntax keyword cppSTLfunction calloc syntax keyword cppSTLfunction calloc
syntax keyword cppSTLfunction capacity syntax keyword cppSTLfunction capacity
syntax keyword cppSTLfunction ceil syntax keyword cppSTLfunction ceil
syntax keyword cppSTLfunction cerr
syntax keyword cppSTLfunction cin
syntax keyword cppSTLfunction clear syntax keyword cppSTLfunction clear
syntax keyword cppSTLfunction clearerr syntax keyword cppSTLfunction clearerr
syntax keyword cppSTLfunction clock syntax keyword cppSTLfunction clock
syntax keyword cppSTLfunction clog
syntax keyword cppSTLfunction close syntax keyword cppSTLfunction close
syntax keyword cppSTLfunction compare syntax keyword cppSTLfunction compare
syntax keyword cppSTLfunction conj syntax keyword cppSTLfunction conj
@@ -173,7 +179,6 @@ syntax keyword cppSTLfunction cos
syntax keyword cppSTLfunction cosh syntax keyword cppSTLfunction cosh
syntax keyword cppSTLfunction count syntax keyword cppSTLfunction count
syntax keyword cppSTLfunction count_if syntax keyword cppSTLfunction count_if
syntax keyword cppSTLfunction cout
syntax keyword cppSTLfunction c_str syntax keyword cppSTLfunction c_str
syntax keyword cppSTLfunction ctime syntax keyword cppSTLfunction ctime
syntax keyword cppSTLfunction data syntax keyword cppSTLfunction data
@@ -314,7 +319,7 @@ syntax keyword cppSTLfunction norm
syntax keyword cppSTLfunction not1 syntax keyword cppSTLfunction not1
syntax keyword cppSTLfunction not2 syntax keyword cppSTLfunction not2
syntax keyword cppSTLfunction nth_element syntax keyword cppSTLfunction nth_element
syntax keyword cppSTLfunction numeric_limits syntax keyword cppSTLtype numeric_limits
syntax keyword cppSTLfunction open syntax keyword cppSTLfunction open
syntax keyword cppSTLfunction partial_sort syntax keyword cppSTLfunction partial_sort
syntax keyword cppSTLfunction partial_sort_copy syntax keyword cppSTLfunction partial_sort_copy
@@ -426,9 +431,9 @@ syntax keyword cppSTLfunction strspn
syntax keyword cppSTLfunction strstr syntax keyword cppSTLfunction strstr
syntax keyword cppSTLfunction strtod syntax keyword cppSTLfunction strtod
syntax keyword cppSTLfunction strtof syntax keyword cppSTLfunction strtof
syntax keyword cppSTLfunction strtold
syntax keyword cppSTLfunction strtok syntax keyword cppSTLfunction strtok
syntax keyword cppSTLfunction strtol syntax keyword cppSTLfunction strtol
syntax keyword cppSTLfunction strtold
syntax keyword cppSTLfunction strtoll syntax keyword cppSTLfunction strtoll
syntax keyword cppSTLfunction strtoul syntax keyword cppSTLfunction strtoul
syntax keyword cppSTLfunction strxfrm syntax keyword cppSTLfunction strxfrm
@@ -466,7 +471,6 @@ syntax keyword cppSTLfunction unique_copy
syntax keyword cppSTLfunction unsetf syntax keyword cppSTLfunction unsetf
syntax keyword cppSTLfunction upper_bound syntax keyword cppSTLfunction upper_bound
syntax keyword cppSTLfunction va_arg syntax keyword cppSTLfunction va_arg
syntax keyword cppSTLfunction va_arg
syntax keyword cppSTLfunction va_copy syntax keyword cppSTLfunction va_copy
syntax keyword cppSTLfunction va_end syntax keyword cppSTLfunction va_end
syntax keyword cppSTLfunction value_comp syntax keyword cppSTLfunction value_comp
@@ -543,12 +547,18 @@ syntax keyword cppSTLnamespace rel_ops
syntax keyword cppSTLnamespace std syntax keyword cppSTLnamespace std
syntax keyword cppSTLtype allocator syntax keyword cppSTLtype allocator
syntax keyword cppSTLtype auto_ptr syntax keyword cppSTLtype auto_ptr
syntax keyword cppSTLtype basic_filebuf
syntax keyword cppSTLtype basic_fstream syntax keyword cppSTLtype basic_fstream
syntax keyword cppSTLtype basic_ifstream syntax keyword cppSTLtype basic_ifstream
syntax keyword cppSTLtype basic_iostream
syntax keyword cppSTLtype basic_istream
syntax keyword cppSTLtype basic_istringstream syntax keyword cppSTLtype basic_istringstream
syntax keyword cppSTLtype basic_ofstream syntax keyword cppSTLtype basic_ofstream
syntax keyword cppSTLtype basic_ostream
syntax keyword cppSTLtype basic_ostringstream syntax keyword cppSTLtype basic_ostringstream
syntax keyword cppSTLtype basic_streambuf
syntax keyword cppSTLtype basic_string syntax keyword cppSTLtype basic_string
syntax keyword cppSTLtype basic_stringbuf
syntax keyword cppSTLtype basic_stringstream syntax keyword cppSTLtype basic_stringstream
syntax keyword cppSTLtype binary_compose syntax keyword cppSTLtype binary_compose
syntax keyword cppSTLtype binder1st syntax keyword cppSTLtype binder1st
@@ -577,7 +587,11 @@ syntax keyword cppSTLtype ifstream
syntax keyword cppSTLtype imaxdiv_t syntax keyword cppSTLtype imaxdiv_t
syntax keyword cppSTLtype indirect_array syntax keyword cppSTLtype indirect_array
syntax keyword cppSTLtype int_type syntax keyword cppSTLtype int_type
syntax keyword cppSTLtype ios_base
syntax keyword cppSTLtype iostream
syntax keyword cppSTLtype istream
syntax keyword cppSTLtype istringstream syntax keyword cppSTLtype istringstream
syntax keyword cppSTLtype istrstream
syntax keyword cppSTLtype iterator_traits syntax keyword cppSTLtype iterator_traits
syntax keyword cppSTLtype key_compare syntax keyword cppSTLtype key_compare
syntax keyword cppSTLtype key_type syntax keyword cppSTLtype key_type
@@ -598,6 +612,7 @@ syntax keyword cppSTLtype off_type
syntax keyword cppSTLtype ofstream syntax keyword cppSTLtype ofstream
syntax keyword cppSTLtype ostream syntax keyword cppSTLtype ostream
syntax keyword cppSTLtype ostringstream syntax keyword cppSTLtype ostringstream
syntax keyword cppSTLtype ostrstream
syntax keyword cppSTLtype pair syntax keyword cppSTLtype pair
syntax keyword cppSTLtype pointer syntax keyword cppSTLtype pointer
syntax keyword cppSTLtype pointer_to_binary_function syntax keyword cppSTLtype pointer_to_binary_function
@@ -614,9 +629,12 @@ syntax keyword cppSTLtype size_type
syntax keyword cppSTLtype slice_array syntax keyword cppSTLtype slice_array
syntax keyword cppSTLtype stack syntax keyword cppSTLtype stack
syntax keyword cppSTLtype stream syntax keyword cppSTLtype stream
syntax keyword cppSTLtype streambuf
syntax keyword cppSTLtype string syntax keyword cppSTLtype string
syntax keyword cppSTLtype stringbuf syntax keyword cppSTLtype stringbuf
syntax keyword cppSTLtype stringstream syntax keyword cppSTLtype stringstream
syntax keyword cppSTLtype strstream
syntax keyword cppSTLtype strstreambuf
syntax keyword cppSTLtype temporary_buffer syntax keyword cppSTLtype temporary_buffer
syntax keyword cppSTLtype test_type syntax keyword cppSTLtype test_type
syntax keyword cppSTLtype time_t syntax keyword cppSTLtype time_t
@@ -631,11 +649,16 @@ syntax keyword cppSTLtype valarray
syntax keyword cppSTLtype value_compare syntax keyword cppSTLtype value_compare
syntax keyword cppSTLtype value_type syntax keyword cppSTLtype value_type
syntax keyword cppSTLtype vector syntax keyword cppSTLtype vector
syntax keyword cppSTLtype wfilebuf
syntax keyword cppSTLtype wfstream syntax keyword cppSTLtype wfstream
syntax keyword cppSTLtype wifstream syntax keyword cppSTLtype wifstream
syntax keyword cppSTLtype wiostream
syntax keyword cppSTLtype wistream
syntax keyword cppSTLtype wistringstream syntax keyword cppSTLtype wistringstream
syntax keyword cppSTLtype wofstream syntax keyword cppSTLtype wofstream
syntax keyword cppSTLtype wostream
syntax keyword cppSTLtype wostringstream syntax keyword cppSTLtype wostringstream
syntax keyword cppSTLtype wstreambuf
syntax keyword cppSTLtype wstring syntax keyword cppSTLtype wstring
syntax keyword cppSTLtype wstringbuf syntax keyword cppSTLtype wstringbuf
syntax keyword cppSTLtype wstringstream syntax keyword cppSTLtype wstringstream
@@ -810,6 +833,10 @@ if !exists("cpp_no_cpp11")
syntax keyword cppSTLtype integral_constant syntax keyword cppSTLtype integral_constant
syntax keyword cppSTLtype true_type syntax keyword cppSTLtype true_type
syntax keyword cppSTLtype false_type syntax keyword cppSTLtype false_type
syntax keyword cppSTLfunction declval
syntax keyword cppSTLconstant piecewise_construct
syntax keyword cppSTLtype piecewise_construct_t
" memory " memory
syntax keyword cppSTLtype unique_ptr syntax keyword cppSTLtype unique_ptr
@@ -834,6 +861,12 @@ if !exists("cpp_no_cpp11")
syntax keyword cppSTLtype pointer_traits syntax keyword cppSTLtype pointer_traits
syntax keyword cppSTLfunction addressof syntax keyword cppSTLfunction addressof
syntax keyword cppSTLfunction align syntax keyword cppSTLfunction align
syntax keyword cppSTLfunction make_shared
syntax keyword cppSTLfunction allocate_shared
syntax keyword cppSTLcast static_pointer_cast
syntax keyword cppSTLcast dynamic_pointer_cast
syntax keyword cppSTLcast const_pointer_cast
syntax keyword cppSTLfunction get_deleter
" function object " function object
syntax keyword cppSTLfunction bind syntax keyword cppSTLfunction bind
@@ -859,6 +892,7 @@ if !exists("cpp_no_cpp11")
syntax keyword cppSTLfunction quick_exit syntax keyword cppSTLfunction quick_exit
syntax keyword cppSTLfunction _Exit syntax keyword cppSTLfunction _Exit
syntax keyword cppSTLfunction at_quick_exit syntax keyword cppSTLfunction at_quick_exit
syntax keyword cppSTLfunction forward
" date and time " date and time
syntax keyword cppSTLnamespace chrono syntax keyword cppSTLnamespace chrono
@@ -867,6 +901,8 @@ if !exists("cpp_no_cpp11")
syntax keyword cppSTLtype steady_clock syntax keyword cppSTLtype steady_clock
syntax keyword cppSTLtype high_resolution_clock syntax keyword cppSTLtype high_resolution_clock
syntax keyword cppSTLtype time_point syntax keyword cppSTLtype time_point
syntax keyword cppSTLcast duration_cast
syntax keyword cppSTLcast time_point_cast
" tuple " tuple
syntax keyword cppSTLtype tuple syntax keyword cppSTLtype tuple
@@ -925,6 +961,7 @@ if !exists("cpp_no_cpp11")
syntax keyword cppSTLfunction copy_if syntax keyword cppSTLfunction copy_if
syntax keyword cppSTLfunction copy_n syntax keyword cppSTLfunction copy_n
syntax keyword cppSTLfunction move syntax keyword cppSTLfunction move
syntax keyword cppSTLfunction move_if_noexcept
syntax keyword cppSTLfunction move_backward syntax keyword cppSTLfunction move_backward
syntax keyword cppSTLfunction shuffle syntax keyword cppSTLfunction shuffle
syntax keyword cppSTLfunction is_partitioned syntax keyword cppSTLfunction is_partitioned
@@ -1148,6 +1185,7 @@ if !exists("cpp_no_cpp11")
" thread " thread
syntax keyword cppSTLtype thread syntax keyword cppSTLtype thread
syntax keyword cppSTLnamespace this_thread
syntax keyword cppSTLfunction yield syntax keyword cppSTLfunction yield
syntax keyword cppSTLfunction get_id syntax keyword cppSTLfunction get_id
syntax keyword cppSTLfunction sleep_for syntax keyword cppSTLfunction sleep_for
@@ -1249,24 +1287,38 @@ if !exists("cpp_no_cpp11")
syntax keyword cppSTLfunction wcstoimax syntax keyword cppSTLfunction wcstoimax
syntax keyword cppSTLfunction wcstoumax syntax keyword cppSTLfunction wcstoumax
syntax keyword cppSTLtype nanoseconds
syntax keyword cppSTLtype microseconds
syntax keyword cppSTLtype milliseconds
syntax keyword cppSTLtype seconds
syntax keyword cppSTLtype minutes
syntax keyword cppSTLtype hours
endif " C++11 endif " C++11
if !exists("cpp_no_cpp14") if !exists("cpp_no_cpp14")
"optional
syntax keyword cppSTLtype optional
"syntax keyword cppSTLfunction value
syntax keyword cppSTLfunction value_or
syntax keyword cppSTLfunction make_optional
"dynarray "dynarray
syntax keyword cppSTLtype dynarray syntax keyword cppSTLtype dynarray
"thread "thread
syntax keyword cppSTLtype shared_mutex syntax keyword cppSTLtype shared_mutex
syntax keyword cppSTLtype shared_lock syntax keyword cppSTLtype shared_lock
"memory
syntax keyword cppSTLfunction make_unique
endif " C++14 endif " C++14
if !exists("cpp_no_boost")
"optional is not a part of C++14 anymore
syntax keyword cppSTLtype optional
"syntax keyword cppSTLfunction value
syntax keyword cppSTLfunction value_or
syntax keyword cppSTLfunction make_optional
syntax keyword cppSTLnamespace boost
syntax keyword cppSTLcast lexical_cast
endif " Boost
" Default highlighting " Default highlighting
if version >= 508 || !exists("did_cpp_syntax_inits") if version >= 508 || !exists("did_cpp_syntax_inits")
if version < 508 if version < 508
@@ -1276,15 +1328,15 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
command -nargs=+ HiLink hi def link <args> command -nargs=+ HiLink hi def link <args>
endif endif
HiLink cppSTLfunction Function HiLink cppSTLfunction Function
HiLink cppSTLfunctional Type HiLink cppSTLfunctional Typedef
HiLink cppSTLconstant Constant HiLink cppSTLconstant Constant
HiLink cppSTLnamespace Constant HiLink cppSTLnamespace Constant
HiLink cppSTLtype Type HiLink cppSTLtype Typedef
HiLink cppSTLexception Type HiLink cppSTLexception Exception
HiLink cppSTLiterator Type HiLink cppSTLiterator Typedef
HiLink cppSTLiterator_tag Type HiLink cppSTLiterator_tag Typedef
HiLink cppSTLenum Type HiLink cppSTLenum Typedef
HiLink cppSTLios Function HiLink cppSTLios Function
HiLink cppSTLcast Statement " be consistent with official syntax
delcommand HiLink delcommand HiLink
endif endif

View File

@@ -5,5 +5,5 @@ syn region texRefZone matchgroup=texStatement start="\\\(label\|\)c\(page\|\)re
" adds support for listings package " adds support for listings package
syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>" syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>"
syn region texZone start="\\lstinputlisting" end="{\s*[a-zA-Z/.0-9_^]\+\s*}" syn match texInputFile "\\lstinputlisting\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputFile "\\lstinline\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt syn match texZone "\\lstinline\s*\(\[.*\]\)\={.\{-}}"

View File

@@ -58,7 +58,7 @@ function! go#complete#Package(ArgLead, CmdLine, CursorPos)
if executable('go') if executable('go')
let goroot = substitute(system('go env GOROOT'), '\n', '', 'g') let goroot = substitute(system('go env GOROOT'), '\n', '', 'g')
if v:shell_error if v:shell_error
echomsg '\'go env GOROOT\' failed' echomsg '''go env GOROOT'' failed'
endif endif
else else
let goroot = $GOROOT let goroot = $GOROOT

View File

@@ -10,6 +10,8 @@ if !exists('g:aria_attributes_complete')
let g:aria_attributes_complete = 1 let g:aria_attributes_complete = 1
endif endif
let b:html_omni_flavor = 'html5'
function! htmlcomplete#CompleteTags(findstart, base) function! htmlcomplete#CompleteTags(findstart, base)
if a:findstart if a:findstart
" locate the start of the word " locate the start of the word
@@ -763,9 +765,9 @@ endfunction
function! htmlcomplete#LoadData() " {{{ function! htmlcomplete#LoadData() " {{{
if !exists("b:html_omni_flavor") if !exists("b:html_omni_flavor")
if &filetype == 'html' if &filetype == 'html'
let b:html_omni_flavor = 'html401t' let b:html_omni_flavor = 'html5'
else else
let b:html_omni_flavor = 'xhtml10s' let b:html_omni_flavor = 'html5'
endif endif
endif endif
" With that if we still have bloated memory but create new buffer " With that if we still have bloated memory but create new buffer

View File

@@ -342,7 +342,7 @@ let abutton_dec = 'details\\|embed\\|iframe\\|keygen\\|label\\|menu\\|select\\|t
let g:xmldata_html5 = { let g:xmldata_html5 = {
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'], \ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
\ 'vimxmlroot': ['html'], \ 'vimxmlroot': ['html', 'head', 'body'] + flow_elements,
\ 'a': [ \ 'a': [
\ filter(copy(flow_elements), "!(v:val =~ '". abutton_dec ."')"), \ filter(copy(flow_elements), "!(v:val =~ '". abutton_dec ."')"),
\ extend(copy(global_attributes), {'name': [], 'href': [], 'target': [], 'rel': linktypes, 'hreflang': lang_tag, 'media': [], 'type': []}) \ extend(copy(global_attributes), {'name': [], 'href': [], 'target': [], 'rel': linktypes, 'hreflang': lang_tag, 'media': [], 'type': []})

View File

@@ -483,7 +483,7 @@ fu! <sid>GetDelimiter(first, last) "{{{3
if !exists("b:csv_fixed_width_cols") if !exists("b:csv_fixed_width_cols")
let _cur = getpos('.') let _cur = getpos('.')
let _s = @/ let _s = @/
let Delim= {0: ';', 1: ',', 2: '|', 3: ' '} let Delim= {0: ';', 1: ',', 2: '|', 3: ' ', 4: '\^'}
let temp = {} let temp = {}
" :silent :s does not work with lazyredraw " :silent :s does not work with lazyredraw
let _lz = &lz let _lz = &lz
@@ -525,13 +525,17 @@ fu! <sid>WColumn(...) "{{{3
let fields=(split(line[0:end],b:col.'\zs')) let fields=(split(line[0:end],b:col.'\zs'))
let ret=len(fields) let ret=len(fields)
if exists("a:1") && a:1 > 0 if exists("a:1") && a:1 > 0
" bang attribute " bang attribute: Try to get the column name
let head = split(getline(1),b:col.'\zs') let head = split(getline(1),b:col.'\zs')
" remove preceeding whitespace " remove preceeding whitespace
if len(head) < ret
call <sid>Warn("Header has no field ". ret)
else
let ret = substitute(head[ret-1], '^\s\+', '', '') let ret = substitute(head[ret-1], '^\s\+', '', '')
" remove delimiter " remove delimiter
let ret = substitute(ret, b:delimiter. '$', '', '') let ret = substitute(ret, b:delimiter. '$', '', '')
endif endif
endif
else else
let temp=getpos('.')[2] let temp=getpos('.')[2]
let j=1 let j=1
@@ -1002,7 +1006,8 @@ fu! <sid>MoveCol(forward, line, ...) "{{{3
elseif a:forward < 0 elseif a:forward < 0
if colnr > 0 || cpos == spos if colnr > 0 || cpos == spos
call search('.\ze'.pat, 'bWe') call search('.\ze'.pat, 'bWe')
while getpos('.')[2] == cpos let stime=localtime()
while getpos('.')[2] == cpos && <sid>Timeout(stime) " make sure loop terminates
" cursor didn't move, move cursor one cell to the left " cursor didn't move, move cursor one cell to the left
norm! h norm! h
if colnr > 0 if colnr > 0
@@ -1208,8 +1213,10 @@ fu! <sid>AddColumn(start, stop, ...) range "{{{3
if exists("a:1") if exists("a:1")
if a:1 == '$' || a:1 >= max if a:1 == '$' || a:1 >= max
let pos = max let pos = max
elseif a:1 <= 0 elseif a:1 < 0
let pos = col let pos = col
else
let pos = a:1
endif endif
else else
let pos = col let pos = col
@@ -1217,7 +1224,7 @@ fu! <sid>AddColumn(start, stop, ...) range "{{{3
let cnt=(exists("a:2") && a:2 > 0 ? a:2 : 1) let cnt=(exists("a:2") && a:2 > 0 ? a:2 : 1)
" translate 1 based columns into zero based list index " translate 1 based columns into zero based list index
let pos -= 1 "let pos -= 1
let col -= 1 let col -= 1
if pos == 0 if pos == 0
@@ -1772,7 +1779,7 @@ endfu
fu! <sid>NewRecord(line1, line2, count) "{{{3 fu! <sid>NewRecord(line1, line2, count) "{{{3
if a:count =~ "\D" if a:count =~ "\D"
call <sid>WarningMsg("Invalid count specified") call <sid>Warn("Invalid count specified")
return return
endif endif
@@ -1848,20 +1855,13 @@ fu! <sid>CSVMappings() "{{{3
call <sid>Map('noremap', 'E', ':<C-U>call <SID>MoveCol(-1, line("."))<CR>') call <sid>Map('noremap', 'E', ':<C-U>call <SID>MoveCol(-1, line("."))<CR>')
call <sid>Map('noremap', '<C-Left>', ':<C-U>call <SID>MoveCol(-1, line("."))<CR>') call <sid>Map('noremap', '<C-Left>', ':<C-U>call <SID>MoveCol(-1, line("."))<CR>')
call <sid>Map('noremap', 'H', ':<C-U>call <SID>MoveCol(-1, line("."), 1)<CR>') call <sid>Map('noremap', 'H', ':<C-U>call <SID>MoveCol(-1, line("."), 1)<CR>')
call <sid>Map('noremap', 'K', ':<C-U>call <SID>MoveCol(0, call <sid>Map('noremap', 'K', ':<C-U>call <SID>MoveCol(0, line(".")-v:count1)<CR>')
\ line(".")-v:count1)<CR>') call <sid>Map('noremap', '<Up>', ':<C-U>call <SID>MoveCol(0, line(".")-v:count1)<CR>')
call <sid>Map('noremap', '<Up>', ':<C-U>call <SID>MoveCol(0, call <sid>Map('noremap', 'J', ':<C-U>call <SID>MoveCol(0, line(".")+v:count1)<CR>')
\ line(".")-v:count1)<CR>') call <sid>Map('noremap', '<Down>', ':<C-U>call <SID>MoveCol(0, line(".")+v:count1)<CR>')
call <sid>Map('noremap', 'J', ':<C-U>call <SID>MoveCol(0, call <sid>Map('nnoremap', '<CR>', ':<C-U>call <SID>PrepareFolding(1, 1)<CR>')
\ line(".")+v:count1)<CR>') call <sid>Map('nnoremap', '<Space>', ':<C-U>call <SID>PrepareFolding(1, 0)<CR>')
call <sid>Map('noremap', '<Down>', ':<C-U>call <SID>MoveCol(0, call <sid>Map('nnoremap', '<BS>', ':<C-U>call <SID>PrepareFolding(0, 1)<CR>')
\ line(".")+v:count1)<CR>')
call <sid>Map('nnoremap', '<CR>', ':<C-U>call <SID>PrepareFolding(1,
\ 1)<CR>')
call <sid>Map('nnoremap', '<Space>', ':<C-U>call <SID>PrepareFolding(1,
\ 0)<CR>')
call <sid>Map('nnoremap', '<BS>', ':<C-U>call <SID>PrepareFolding(0,
\ 1)<CR>')
call <sid>Map('imap', '<CR>', '<sid>ColumnMode()', 'expr') call <sid>Map('imap', '<CR>', '<sid>ColumnMode()', 'expr')
" Text object: Field " Text object: Field
call <sid>Map('vnoremap', 'if', ':<C-U>call <sid>MoveOver(0)<CR>') call <sid>Map('vnoremap', 'if', ':<C-U>call <sid>MoveOver(0)<CR>')
@@ -1937,9 +1937,6 @@ fu! <sid>CommandDefinitions() "{{{3
\ '-nargs=1 -complete=custom,<sid>CompleteColumnNr') \ '-nargs=1 -complete=custom,<sid>CompleteColumnNr')
call <sid>LocalCmd('Transpose', ':call <sid>Transpose(<line1>, <line2>)', call <sid>LocalCmd('Transpose', ':call <sid>Transpose(<line1>, <line2>)',
\ '-range=%') \ '-range=%')
call <sid>LocalCmd('Tabularize', ':call <sid>Tabularize(<bang>0,<line1>,<line2>)',
\ '-bang -range=%')
" Alias for :Tabularize, might be taken by Tabular plugin
call <sid>LocalCmd('CSVTabularize', ':call <sid>Tabularize(<bang>0,<line1>,<line2>)', call <sid>LocalCmd('CSVTabularize', ':call <sid>Tabularize(<bang>0,<line1>,<line2>)',
\ '-bang -range=%') \ '-bang -range=%')
call <sid>LocalCmd("AddColumn", call <sid>LocalCmd("AddColumn",
@@ -2391,6 +2388,9 @@ fu! <sid>ColumnMode() "{{{3
return "\<CR>" return "\<CR>"
endif endif
endfu endfu
fu! <sid>Timeout(start) "{{{3
return localtime()-a:start < 2
endfu
" Global functions "{{{2 " Global functions "{{{2
fu! csv#EvalColumn(nr, func, first, last) range "{{{3 fu! csv#EvalColumn(nr, func, first, last) range "{{{3

View File

@@ -9,9 +9,11 @@ if exists("b:did_ftplugin")
endif endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1
setlocal formatoptions-=t
setlocal comments=s1:/*,mb:*,ex:*/,:// setlocal comments=s1:/*,mb:*,ex:*/,://
setlocal commentstring=//\ %s setlocal commentstring=//\ %s
let b:undo_ftplugin = "setl com< cms<" let b:undo_ftplugin = "setl fo< com< cms<"
" vim:ts=4:sw=4:et " vim:ts=4:sw=4:et

7
ftplugin/html.vim Normal file
View File

@@ -0,0 +1,7 @@
" Maintainer: othree <othree@gmail.com>
" URL: http://github.com/othree/html5.vim
" Last Change: 2014-05-02
" License: MIT
" Changes: Add - to keyword
setlocal iskeyword+=-

View File

@@ -97,6 +97,10 @@ endfunction
" {{{2 TOCFindMatch " {{{2 TOCFindMatch
function! s:TOCFindMatch(strsearch,duplicates,files) function! s:TOCFindMatch(strsearch,duplicates,files)
if len(a:files) == 0
echoerr "Could not find: " . a:strsearch
return
endif
call s:TOCOpenBuf(a:files[0]) call s:TOCOpenBuf(a:files[0])
let dups = a:duplicates let dups = a:duplicates
@@ -116,7 +120,6 @@ function! s:TOCFindMatch(strsearch,duplicates,files)
endif endif
call s:TOCFindMatch(a:strsearch,dups,a:files[1:]) call s:TOCFindMatch(a:strsearch,dups,a:files[1:])
endfunction endfunction
" {{{2 TOCFoldLevel " {{{2 TOCFoldLevel

View File

@@ -59,10 +59,18 @@ xnoremap <silent> <buffer> ]] :<C-U>call <SID>sectionmovement('{{','' ,'v',v:cou
" Operator pending mappings " Operator pending mappings
" Operators are available by default. Set `let g:mustache_operators = 0` in
" your .vimrc to disable them.
if ! exists("g:mustache_operators")
let g:mustache_operators = 1
endif
if exists("g:mustache_operators") && g:mustache_operators
onoremap <silent> <buffer> ie :<C-U>call <SID>wrap_inside()<CR> onoremap <silent> <buffer> ie :<C-U>call <SID>wrap_inside()<CR>
onoremap <silent> <buffer> ae :<C-U>call <SID>wrap_around()<CR> onoremap <silent> <buffer> ae :<C-U>call <SID>wrap_around()<CR>
xnoremap <silent> <buffer> ie :<C-U>call <SID>wrap_inside()<CR> xnoremap <silent> <buffer> ie :<C-U>call <SID>wrap_inside()<CR>
xnoremap <silent> <buffer> ae :<C-U>call <SID>wrap_around()<CR> xnoremap <silent> <buffer> ae :<C-U>call <SID>wrap_around()<CR>
endif
function! s:wrap_around() function! s:wrap_around()
" If the cursor is at the end of the tag element, move back " If the cursor is at the end of the tag element, move back

View File

@@ -8,11 +8,6 @@
" License: Same as Vim " License: Same as Vim
" Last Change: %%RELEASE_DATE%% " Last Change: %%RELEASE_DATE%%
" TODO: Indenting after multibyte characters is broken:
" (let [Δ (if foo
" bar ; Indent error
" baz)])
if exists("b:did_indent") if exists("b:did_indent")
finish finish
endif endif
@@ -99,7 +94,7 @@ if exists("*searchpairpos")
endif endif
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:is_paren()", stopat) let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:is_paren()", stopat)
return [pos[0], virtcol(pos)] return [pos[0], col(pos)]
endfunction endfunction
function! s:clojure_check_for_string_worker() function! s:clojure_check_for_string_worker()
@@ -306,15 +301,23 @@ if exists("*searchpairpos")
endif endif
call search('\v\S', 'bW') call search('\v\S', 'bW')
return [line('.'), virtcol('.') + 1] return [line('.'), col('.') + 1]
endfunction endfunction
function! GetClojureIndent() function! GetClojureIndent()
let lnum = line('.') let lnum = line('.')
let orig_lnum = lnum
let orig_col = col('.')
let [opening_lnum, indent] = s:clojure_indent_pos() 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 " Return if there are no previous lines to inherit from
if opening_lnum < 1 || opening_lnum >= lnum - 1 if opening_lnum < 1 || opening_lnum >= lnum - 1
call cursor(orig_lnum, orig_col)
return indent return indent
endif endif
@@ -349,11 +352,13 @@ if exists("*searchpairpos")
" Check if this is part of a multiline string " Check if this is part of a multiline string
call cursor(lnum, 1) call cursor(lnum, 1)
if s:syn_id_name() !~? '\vstring|regex' if s:syn_id_name() !~? '\vstring|regex'
call cursor(orig_lnum, orig_col)
return indent(lnum) return indent(lnum)
endif endif
endif endif
endwhile endwhile
call cursor(orig_lnum, orig_col)
return indent return indent
endfunction endfunction

View File

@@ -24,6 +24,18 @@ if exists("*GoIndent")
finish finish
endif endif
" The shiftwidth() function is relatively new.
" Don't require it to exist.
if exists('*shiftwidth')
func s:sw()
return shiftwidth()
endfunc
else
func s:sw()
return &shiftwidth
endfunc
endif
function! GoIndent(lnum) function! GoIndent(lnum)
let prevlnum = prevnonblank(a:lnum-1) let prevlnum = prevnonblank(a:lnum-1)
if prevlnum == 0 if prevlnum == 0
@@ -40,17 +52,17 @@ function! GoIndent(lnum)
if prevl =~ '[({]\s*$' if prevl =~ '[({]\s*$'
" previous line opened a block " previous line opened a block
let ind += &sw let ind += s:sw()
endif endif
if prevl =~# '^\s*\(case .*\|default\):$' if prevl =~# '^\s*\(case .*\|default\):$'
" previous line is part of a switch statement " previous line is part of a switch statement
let ind += &sw let ind += s:sw()
endif endif
" TODO: handle if the previous line is a label. " TODO: handle if the previous line is a label.
if thisl =~ '^\s*[)}]' if thisl =~ '^\s*[)}]'
" this line closed a block " this line closed a block
let ind -= &sw let ind -= s:sw()
endif endif
" Colons are tricky. " Colons are tricky.
@@ -58,7 +70,7 @@ function! GoIndent(lnum)
" We ignore trying to deal with jump labels because (a) they're rare, and " We ignore trying to deal with jump labels because (a) they're rare, and
" (b) they're hard to disambiguate from a composite literal key. " (b) they're hard to disambiguate from a composite literal key.
if thisl =~# '^\s*\(case .*\|default\):$' if thisl =~# '^\s*\(case .*\|default\):$'
let ind -= &sw let ind -= s:sw()
endif endif
return ind return ind

View File

@@ -13,7 +13,7 @@ setlocal cindent
setlocal cinoptions=L0,(0,Ws,JN,j1 setlocal cinoptions=L0,(0,Ws,JN,j1
setlocal cinkeys=0{,0},!^F,o,O,0[,0] setlocal cinkeys=0{,0},!^F,o,O,0[,0]
" Don't think cinwords will actually do anything at all... never mind " Don't think cinwords will actually do anything at all... never mind
setlocal cinwords=do,for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,extern setlocal cinwords=for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,extern
" Some preliminary settings " Some preliminary settings
setlocal nolisp " Make sure lisp indenting doesn't supersede us setlocal nolisp " Make sure lisp indenting doesn't supersede us
@@ -30,7 +30,7 @@ endif
" Come here when loading the script the first time. " Come here when loading the script the first time.
function s:get_line_trimmed(lnum) function! s:get_line_trimmed(lnum)
" Get the line and remove a trailing comment. " Get the line and remove a trailing comment.
" Use syntax highlighting attributes when possible. " Use syntax highlighting attributes when possible.
" NOTE: this is not accurate; /* */ or a line continuation could trick it " NOTE: this is not accurate; /* */ or a line continuation could trick it
@@ -40,12 +40,12 @@ function s:get_line_trimmed(lnum)
" If the last character in the line is a comment, do a binary search for " If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take " the start of the comment. synID() is slow, a linear search would take
" too long on a long line. " too long on a long line.
if synIDattr(synID(a:lnum, line_len, 1), "name") =~ "Comment\|Todo" if synIDattr(synID(a:lnum, line_len, 1), "name") =~ 'Comment\|Todo'
let min = 1 let min = 1
let max = line_len let max = line_len
while min < max while min < max
let col = (min + max) / 2 let col = (min + max) / 2
if synIDattr(synID(a:lnum, col, 1), "name") =~ "Comment\|Todo" if synIDattr(synID(a:lnum, col, 1), "name") =~ 'Comment\|Todo'
let max = col let max = col
else else
let min = col + 1 let min = col + 1
@@ -61,6 +61,20 @@ function s:get_line_trimmed(lnum)
endif endif
endfunction endfunction
function! s:is_string_comment(lnum, col)
if has('syntax_items')
for id in synstack(a:lnum, a:col)
let synname = synIDattr(id, "name")
if synname == "rustString" || synname =~ "^rustComment"
return 1
endif
endfor
else
" without syntax, let's not even try
return 0
endif
endfunction
function GetRustIndent(lnum) function GetRustIndent(lnum)
" Starting assumption: cindent (called at the end) will do it right " Starting assumption: cindent (called at the end) will do it right
@@ -73,10 +87,10 @@ function GetRustIndent(lnum)
if synname == "rustString" if synname == "rustString"
" If the start of the line is in a string, don't change the indent " If the start of the line is in a string, don't change the indent
return -1 return -1
elseif synname =~ "\\(Comment\\|Todo\\)" elseif synname =~ '\(Comment\|Todo\)'
\ && line !~ "^\\s*/\\*" " not /* opening line \ && line !~ '^\s*/\*' " not /* opening line
if synname =~ "CommentML" " multi-line if synname =~ "CommentML" " multi-line
if line !~ "^\\s*\\*" && getline(a:lnum - 1) =~ "^\\s*/\\*" if line !~ '^\s*\*' && getline(a:lnum - 1) =~ '^\s*/\*'
" This is (hopefully) the line after a /*, and it has no " This is (hopefully) the line after a /*, and it has no
" leader, so the correct indentation is that of the " leader, so the correct indentation is that of the
" previous line. " previous line.
@@ -101,10 +115,16 @@ function GetRustIndent(lnum)
" }; " };
" Search backwards for the previous non-empty line. " Search backwards for the previous non-empty line.
let prevline = s:get_line_trimmed(prevnonblank(a:lnum - 1)) let prevlinenum = prevnonblank(a:lnum - 1)
let prevline = s:get_line_trimmed(prevlinenum)
while prevlinenum > 1 && prevline !~ '[^[:blank:]]'
let prevlinenum = prevnonblank(prevlinenum - 1)
let prevline = s:get_line_trimmed(prevlinenum)
endwhile
if prevline[len(prevline) - 1] == "," if prevline[len(prevline) - 1] == ","
\ && s:get_line_trimmed(a:lnum) !~ "^\\s*[\\[\\]{}]" \ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]'
\ && prevline !~ "^\\s*fn\\s" \ && prevline !~ '^\s*fn\s'
\ && prevline !~ '([^()]\+,$'
" Oh ho! The previous line ended in a comma! I bet cindent will try to " Oh ho! The previous line ended in a comma! I bet cindent will try to
" take this too far... For now, let's normally use the previous line's " take this too far... For now, let's normally use the previous line's
" indent. " indent.
@@ -119,6 +139,16 @@ function GetRustIndent(lnum)
" fn foo(baz: Baz, " fn foo(baz: Baz,
" baz: Baz) // <-- cindent gets this right by itself " baz: Baz) // <-- cindent gets this right by itself
" "
" Another case is similar to the previous, except calling a function
" instead of defining it, or any conditional expression that leaves
" an open paren:
"
" foo(baz,
" baz);
"
" if baz && (foo ||
" bar) {
"
" There are probably other cases where we don't want to do this as " There are probably other cases where we don't want to do this as
" well. Add them as needed. " well. Add them as needed.
return GetRustIndent(a:lnum - 1) return GetRustIndent(a:lnum - 1)
@@ -141,8 +171,10 @@ function GetRustIndent(lnum)
" column zero) " column zero)
call cursor(a:lnum, 1) call cursor(a:lnum, 1)
if searchpair('{\|(', '', '}\|)', 'nbW') == 0 if searchpair('{\|(', '', '}\|)', 'nbW',
if searchpair('\[', '', '\]', 'nbW') == 0 \ 's:is_string_comment(line("."), col("."))') == 0
if searchpair('\[', '', '\]', 'nbW',
\ 's:is_string_comment(line("."), col("."))') == 0
" Global scope, should be zero " Global scope, should be zero
return 0 return 0
else else

View File

@@ -379,8 +379,13 @@ endif
syn cluster cLabelGroup contains=cUserLabel syn cluster cLabelGroup contains=cUserLabel
syn match cUserCont display "^\s*\I\i*\s*:$" contains=@cLabelGroup syn match cUserCont display "^\s*\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:$" contains=@cLabelGroup syn match cUserCont display ";\s*\I\i*\s*:$" contains=@cLabelGroup
if s:ft ==# 'cpp'
syn match cUserCont display "^\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else
syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
endif
syn match cUserLabel display "\I\i*" contained syn match cUserLabel display "\I\i*" contained

View File

@@ -105,7 +105,7 @@ syntax match clojureMeta "\^"
syntax match clojureDeref "@" syntax match clojureDeref "@"
syntax match clojureDispatch "\v#[\^'=<_]?" 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 clojureAnonArg "%\(20\|1\d\|[1-9]\|&\)\?"
syntax match clojureRegexpEscape "\v\\%([\\tnrfae.()\[\]{}^$*?+]|c\u|0[0-3]?\o{1,2}|x%(\x{2}|\{\x{1,6}\})|u\x{4})" contained display syntax match clojureRegexpEscape "\v\\%([\\tnrfae.()\[\]{}^$*?+]|c\u|0[0-3]?\o{1,2}|x%(\x{2}|\{\x{1,6}\})|u\x{4})" contained display

View File

@@ -2,7 +2,7 @@
" Language: C++ " Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/cpp-vim) " Current Maintainer: vim-jp (https://github.com/vim-jp/cpp-vim)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu> " Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2012 Jun 14 " Last Change: 2014 May 13
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@@ -39,9 +39,7 @@ if !exists("cpp_no_cpp11")
syn keyword cppExceptions noexcept syn keyword cppExceptions noexcept
syn keyword cppStorageClass constexpr decltype syn keyword cppStorageClass constexpr decltype
syn keyword cppConstant nullptr syn keyword cppConstant nullptr
" A C++11 raw-string literal. It tries to follow 2.14.5 and 2.14.5.2 of the syn region cppRawString matchgroup=cppRawDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
" standard.
syn region cppRawString matchgroup=cppRawDelim start=+\%(u8\=\|[LU]\)\=R"\z(\%([ ()\\\d9-\d12]\@![\d0-\d127]\)\{,16}\)(+ end=+)\z1"+ contains=@Spell
endif endif
" The minimum and maximum operators in GNU C++ " The minimum and maximum operators in GNU C++
@@ -65,7 +63,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
HiLink cppStructure Structure HiLink cppStructure Structure
HiLink cppBoolean Boolean HiLink cppBoolean Boolean
HiLink cppConstant Constant HiLink cppConstant Constant
HiLink cppRawDelim cFormat HiLink cppRawDelimiter Delimiter
HiLink cppRawString String HiLink cppRawString String
delcommand HiLink delcommand HiLink
endif endif

View File

@@ -16,31 +16,40 @@ syn match elixirComment '#.*' contains=elixirTodo
syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained
syn keyword elixirKeyword is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_record is_reference is_tuple is_exception syn keyword elixirKeyword is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_record is_reference is_tuple is_exception
syn keyword elixirKeyword case cond bc lc inlist inbits if unless try receive syn keyword elixirKeyword case cond for if unless try receive send
syn keyword elixirKeyword exit raise throw after rescue catch else do end syn keyword elixirKeyword exit raise throw after rescue catch else do end
syn keyword elixirKeyword quote unquote super syn keyword elixirKeyword quote unquote super
syn match elixirKeyword '\<\%(->\)\>\s*'
syn keyword elixirInclude import require alias use syn keyword elixirInclude import require alias use
syn keyword elixirOperator and not or when xor in syn match elixirId '\<[_a-zA-Z]\w*[!?]\?\>'
syn match elixirOperator '%=\|\*=\|\*\*=\|+=\|-=\|\^=\|||='
syn match elixirOperator "\%(<=>\|<\%(<\|=\)\@!\|>\%(<\|=\|>\)\@!\|<=\|>=\|===\|==\|=\~\|!=\|!\~\|\s?[ \t]\@=\)"
syn match elixirOperator "!+[ \t]\@=\|&&\|||\|\^\|\*\|+\|-\|/"
syn match elixirOperator "|\|++\|--\|\*\*\|\/\/\|\\\\\|<-\|<>\|<<\|>>\|=\|\.\|::"
syn match elixirSymbol '\(:\)\@<!:\%([a-zA-Z_]\w*\%([?!]\|=[>=]\@!\)\?\|<>\|===\?\|>=\?\|<=\?\)'
syn match elixirSymbol '\(:\)\@<!:\%(<=>\|&&\?\|%\(()\|\[\]\|{}\)\|++\?\|--\?\|||\?\|!\|//\|[%&`/|]\)'
syn match elixirSymbol "\%([a-zA-Z_]\w*\([?!]\)\?\):\(:\)\@!"
syn keyword elixirName nil
syn match elixirName '\<[A-Z]\w*\>'
" This unfortunately also matches function names in function calls
syn match elixirUnusedVariable '\<_\w*\>' syn match elixirUnusedVariable '\<_\w*\>'
syn keyword elixirBoolean true false syn keyword elixirOperator and not or when xor in
syn match elixirOperator '!==\|!=\|!'
syn match elixirOperator '=\~\|===\|==\|='
syn match elixirOperator '<<<\|<<\|<=\|<-\|<'
syn match elixirOperator '>>>\|>>\|>=\|>'
syn match elixirOperator '->\|--\|-'
syn match elixirOperator '++\|+'
syn match elixirOperator '&&&\|&&\|&'
syn match elixirOperator '|||\|||\||>\||'
syn match elixirOperator '\.\.\|\.'
syn match elixirOperator "\^\^\^\|\^"
syn match elixirOperator '\\\\\|::\|\*\|/\|\~\~\~\|@'
syn match elixirVariable '@[a-zA-Z_]\w*\|&\d' syn match elixirAtom '\(:\)\@<!:\%([a-zA-Z_]\w*\%([?!]\|=[>=]\@!\)\?\|<>\|===\?\|>=\?\|<=\?\)'
syn match elixirAtom '\(:\)\@<!:\%(<=>\|&&\?\|%\(()\|\[\]\|{}\)\|++\?\|--\?\|||\?\|!\|//\|[%&`/|]\)'
syn match elixirAtom "\%([a-zA-Z_]\w*[?!]\?\):\(:\)\@!"
syn match elixirAlias '\<[A-Z]\w*\(\.[A-Z]\w*\)*\>'
syn keyword elixirBoolean true false nil
syn match elixirVariable '@[a-z]\w*'
syn match elixirVariable '&\d\+'
syn keyword elixirPseudoVariable __FILE__ __DIR__ __MODULE__ __ENV__ __CALLER__ syn keyword elixirPseudoVariable __FILE__ __DIR__ __MODULE__ __ENV__ __CALLER__
@@ -68,36 +77,34 @@ syn region elixirDocStringStart matchgroup=elixirDocString start=+'''+ end=+$+ o
syn region elixirDocString start=+\z("""\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend syn region elixirDocString start=+\z("""\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend
syn region elixirDocString start=+\z('''\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend syn region elixirDocString start=+\z('''\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend
syn match elixirSymbolInterpolated ':\("\)\@=' contains=elixirString syn match elixirAtomInterpolated ':\("\)\@=' contains=elixirString
syn match elixirString "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|0[0-7]{0,2}[0-7]\@!\>\|[^x0MC]\)\|(\\[MC]-)+\w\|[^\s\\]\)" syn match elixirString "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|0[0-7]{0,2}[0-7]\@!\>\|[^x0MC]\)\|(\\[MC]-)+\w\|[^\s\\]\)"
syn region elixirBlock matchgroup=elixirKeyword start="\<do\>\(:\)\@!" end="\<end\>" contains=ALLBUT,@elixirNotTop fold syn region elixirBlock matchgroup=elixirKeyword start="\<do\>\(:\)\@!" end="\<end\>" contains=ALLBUT,@elixirNotTop fold
syn region elixirAnonymousFunction matchgroup=elixirKeyword start="\<fn\>" end="\<end\>" contains=ALLBUT,@elixirNotTop fold syn region elixirAnonymousFunction matchgroup=elixirKeyword start="\<fn\>" end="\<end\>" contains=ALLBUT,@elixirNotTop fold
syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirSymbol,elixirPseudoVariable,elixirName,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirSymbolInterpolated,elixirRegex,elixirString,elixirDelimiter syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirAtom,elixirPseudoVariable,elixirAlias,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirAtomInterpolated,elixirRegex,elixirString,elixirDelimiter
syn match elixirDelimEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE syn match elixirDelimEscape "\\[(<{\[)>}\]/\"'|]" transparent display contained contains=NONE
syn region elixirSigil matchgroup=elixirDelimiter start="[%~]\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold syn region elixirSigil matchgroup=elixirDelimiter start="\~\u\z(/\|\"\|'\||\)" end="\z1" skip="\\\\\|\\\z1" contains=elixirDelimEscape fold
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold syn region elixirSigil matchgroup=elixirDelimiter start="\~\u{" end="}" skip="\\\\\|\\}" contains=elixirDelimEscape fold
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\={" end="}" skip="\\\\\|\\}" contains=elixirDelimEscape fold syn region elixirSigil matchgroup=elixirDelimiter start="\~\u<" end=">" skip="\\\\\|\\>" contains=elixirDelimEscape fold
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\=<" end=">" skip="\\\\\|\\>" contains=elixirDelimEscape fold syn region elixirSigil matchgroup=elixirDelimiter start="\~\u\[" end="\]" skip="\\\\\|\\\]" contains=elixirDelimEscape fold
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\=\[" end="\]" skip="\\\\\|\\\]" contains=elixirDelimEscape fold syn region elixirSigil matchgroup=elixirDelimiter start="\~\u(" end=")" skip="\\\\\|\\)" contains=elixirDelimEscape fold
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\=(" end=")" skip="\\\\\|\\)" contains=elixirDelimEscape fold
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold syn region elixirSigil matchgroup=elixirDelimiter start="\~\l\z(/\|\"\|'\||\)" end="\z1" skip="\\\\\|\\\z1" fold
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]{" end="}" skip="\\\\\|\\}" fold contains=@elixirStringContained,elixirRegexEscapePunctuation syn region elixirSigil matchgroup=elixirDelimiter start="\~\l{" end="}" skip="\\\\\|\\}" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]<" end=">" skip="\\\\\|\\>" fold contains=@elixirStringContained,elixirRegexEscapePunctuation syn region elixirSigil matchgroup=elixirDelimiter start="\~\l<" end=">" skip="\\\\\|\\>" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]\[" end="\]" skip="\\\\\|\\\]" fold contains=@elixirStringContained,elixirRegexEscapePunctuation syn region elixirSigil matchgroup=elixirDelimiter start="\~\l\[" end="\]" skip="\\\\\|\\\]" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw](" end=")" skip="\\\\\|\\)" fold contains=@elixirStringContained,elixirRegexEscapePunctuation syn region elixirSigil matchgroup=elixirDelimiter start="\~\l(" end=")" skip="\\\\\|\\)" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
" Sigils surrounded with docString " Sigils surrounded with docString
syn region elixirSigil matchgroup=elixirDelimiter start=+[%~][SCRWscrw]\z("""\)+ end=+^\s*\zs\z1+ skip=+\\"+ fold syn region elixirSigil matchgroup=elixirDelimiter start=+\~\a\z("""\)+ end=+^\s*\zs\z1+ skip=+\\"+ fold
syn region elixirSigil matchgroup=elixirDelimiter start=+[%~][SCRWscrw]\z('''\)+ end=+^\s*\zs\z1+ skip=+\\'+ fold syn region elixirSigil matchgroup=elixirDelimiter start=+\~\a\z('''\)+ end=+^\s*\zs\z1+ skip=+\\'+ fold
" Defines " Defines
syn keyword elixirDefine def nextgroup=elixirFunctionDeclaration skipwhite skipnl syn keyword elixirDefine def nextgroup=elixirFunctionDeclaration skipwhite skipnl
syn keyword elixirDefine def nextgroup=elixirFunctionDeclaration skipwhite skipnl
syn keyword elixirPrivateDefine defp nextgroup=elixirFunctionDeclaration skipwhite skipnl syn keyword elixirPrivateDefine defp nextgroup=elixirFunctionDeclaration skipwhite skipnl
syn keyword elixirModuleDefine defmodule nextgroup=elixirModuleDeclaration skipwhite skipnl syn keyword elixirModuleDefine defmodule nextgroup=elixirModuleDeclaration skipwhite skipnl
syn keyword elixirProtocolDefine defprotocol nextgroup=elixirProtocolDeclaration skipwhite skipnl syn keyword elixirProtocolDefine defprotocol nextgroup=elixirProtocolDeclaration skipwhite skipnl
@@ -110,21 +117,23 @@ syn keyword elixirDelegateDefine defdelegate nextgroup=elixirDelegateDec
syn keyword elixirOverridableDefine defoverridable nextgroup=elixirOverridableDeclaration skipwhite skipnl syn keyword elixirOverridableDefine defoverridable nextgroup=elixirOverridableDeclaration skipwhite skipnl
syn keyword elixirExceptionDefine defexception nextgroup=elixirExceptionDeclaration skipwhite skipnl syn keyword elixirExceptionDefine defexception nextgroup=elixirExceptionDeclaration skipwhite skipnl
syn keyword elixirCallbackDefine defcallback nextgroup=elixirCallbackDeclaration skipwhite skipnl syn keyword elixirCallbackDefine defcallback nextgroup=elixirCallbackDeclaration skipwhite skipnl
syn keyword elixirStructDefine defstruct nextgroup=elixirStructDeclaration skipwhite skipnl
" Declarations " Declarations
syn match elixirModuleDeclaration "[^[:space:];#<]\+" contained contains=elixirName nextgroup=elixirBlock skipwhite skipnl syn match elixirModuleDeclaration "[^[:space:];#<]\+" contained contains=elixirAlias nextgroup=elixirBlock skipwhite skipnl
syn match elixirFunctionDeclaration "[^[:space:];#<,()\[\]]\+" contained nextgroup=elixirArguments skipwhite skipnl syn match elixirFunctionDeclaration "[^[:space:];#<,()\[\]]\+" contained nextgroup=elixirArguments skipwhite skipnl
syn match elixirProtocolDeclaration "[^[:space:];#<]\+" contained contains=elixirName skipwhite skipnl syn match elixirProtocolDeclaration "[^[:space:];#<]\+" contained contains=elixirAlias skipwhite skipnl
syn match elixirImplDeclaration "[^[:space:];#<]\+" contained contains=elixirName skipwhite skipnl syn match elixirImplDeclaration "[^[:space:];#<]\+" contained contains=elixirAlias skipwhite skipnl
syn match elixirRecordDeclaration "[^[:space:];#<]\+" contained contains=elixirName,elixirSymbol skipwhite skipnl syn match elixirRecordDeclaration "[^[:space:];#<]\+" contained contains=elixirAlias,elixirAtom skipwhite skipnl
syn match elixirMacroDeclaration "[^[:space:];#<,()\[\]]\+" contained nextgroup=elixirArguments skipwhite skipnl syn match elixirMacroDeclaration "[^[:space:];#<,()\[\]]\+" contained nextgroup=elixirArguments skipwhite skipnl
syn match elixirDelegateDeclaration "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration skipwhite skipnl syn match elixirDelegateDeclaration "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration skipwhite skipnl
syn region elixirDelegateDeclaration start='\[' end='\]' contained contains=elixirFunctionDeclaration skipwhite skipnl syn region elixirDelegateDeclaration start='\[' end='\]' contained contains=elixirFunctionDeclaration skipwhite skipnl
syn match elixirOverridableDeclaration "[^[:space:];#<]\+" contained contains=elixirName skipwhite skipnl syn match elixirOverridableDeclaration "[^[:space:];#<]\+" contained contains=elixirAlias skipwhite skipnl
syn match elixirExceptionDeclaration "[^[:space:];#<]\+" contained contains=elixirName skipwhite skipnl syn match elixirExceptionDeclaration "[^[:space:];#<]\+" contained contains=elixirAlias skipwhite skipnl
syn match elixirCallbackDeclaration "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration skipwhite skipnl syn match elixirCallbackDeclaration "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration skipwhite skipnl
syn match elixirStructDeclaration "[^[:space:];#<]\+" contained nextgroup=elixirArguments skipwhite skipnl
syn cluster elixirDeclaration contains=elixirFunctionDeclaration,elixirModuleDeclaration,elixirProtocolDeclaration,elixirImplDeclaration,elixirRecordDeclaration,elixirMacroDeclaration,elixirDelegateDeclaration,elixirOverridableDeclaration,elixirExceptionDeclaration,elixirCallbackDeclaration syn cluster elixirDeclaration contains=elixirFunctionDeclaration,elixirModuleDeclaration,elixirProtocolDeclaration,elixirImplDeclaration,elixirRecordDeclaration,elixirMacroDeclaration,elixirDelegateDeclaration,elixirOverridableDeclaration,elixirExceptionDeclaration,elixirCallbackDeclaration,elixirStructDeclaration
hi def link elixirDefine Define hi def link elixirDefine Define
hi def link elixirPrivateDefine Define hi def link elixirPrivateDefine Define
@@ -139,6 +148,7 @@ hi def link elixirDelegateDefine Define
hi def link elixirOverridableDefine Define hi def link elixirOverridableDefine Define
hi def link elixirExceptionDefine Define hi def link elixirExceptionDefine Define
hi def link elixirCallbackDefine Define hi def link elixirCallbackDefine Define
hi def link elixirStructDefine Define
hi def link elixirFunctionDeclaration Function hi def link elixirFunctionDeclaration Function
hi def link elixirMacroDeclaration Macro hi def link elixirMacroDeclaration Macro
hi def link elixirInclude Include hi def link elixirInclude Include
@@ -146,15 +156,15 @@ hi def link elixirComment Comment
hi def link elixirTodo Todo hi def link elixirTodo Todo
hi def link elixirKeyword Keyword hi def link elixirKeyword Keyword
hi def link elixirOperator Operator hi def link elixirOperator Operator
hi def link elixirSymbol Constant hi def link elixirAtom Constant
hi def link elixirPseudoVariable Constant hi def link elixirPseudoVariable Constant
hi def link elixirName Type hi def link elixirAlias Type
hi def link elixirBoolean Boolean hi def link elixirBoolean Boolean
hi def link elixirVariable Identifier hi def link elixirVariable Identifier
hi def link elixirUnusedVariable Comment hi def link elixirUnusedVariable Comment
hi def link elixirNumber Number hi def link elixirNumber Number
hi def link elixirDocString String hi def link elixirDocString String
hi def link elixirSymbolInterpolated elixirSymbol hi def link elixirAtomInterpolated elixirAtom
hi def link elixirRegex elixirString hi def link elixirRegex elixirString
hi def link elixirRegexEscape elixirSpecial hi def link elixirRegexEscape elixirSpecial
hi def link elixirRegexEscapePunctuation elixirSpecial hi def link elixirRegexEscapePunctuation elixirSpecial

View File

@@ -2,11 +2,10 @@
" Language: WAI-ARIA " Language: WAI-ARIA
" Maintainer: othree <othree@gmail.com> " Maintainer: othree <othree@gmail.com>
" URL: http://github.com/othree/html5-syntax.vim " URL: http://github.com/othree/html5-syntax.vim
" Last Change: 2010-09-25 " Last Change: 2014-05-02
" License: MIT " License: MIT
" Changes: update to Draft 16 September 2010 " Changes: Add match rules
" update to Draft 16 September 2010
setlocal iskeyword+=-
" WAI-ARIA States and Properties " WAI-ARIA States and Properties
" http://www.w3.org/TR/wai-aria/states_and_properties " http://www.w3.org/TR/wai-aria/states_and_properties
@@ -35,3 +34,29 @@ syn keyword htmlArg contained aria-dropeffect aria-grabbed
syn keyword htmlArg contained aria-activedescendant aria-controls aria-describedby aria-flowto syn keyword htmlArg contained aria-activedescendant aria-controls aria-describedby aria-flowto
syn keyword htmlArg contained aria-labelledby aria-owns aria-posinset aria-setsize syn keyword htmlArg contained aria-labelledby aria-owns aria-posinset aria-setsize
" Use match: https://github.com/othree/html5.vim/issues/39
" Global States and Properties
syn match htmlArg contained "\<aria-\%(\|atomic\|busy\|controls\|describedby\)\>"
syn match htmlArg contained "\<aria-\%(\|disabled\|dropeffect\|flowto\|grabbed\)\>"
syn match htmlArg contained "\<aria-\%(\|haspopup\|hidden\|invalid\|label\)\>"
syn match htmlArg contained "\<aria-\%(\|labelledby\|live\|owns\|relevant\)\>"
" Widget Attributes
syn match htmlArg contained "\<aria-\%(\|autocomplete\|checked\|disabled\|expanded\)\>"
syn match htmlArg contained "\<aria-\%(\|haspopup\|hidden\|invalid\|label\)\>"
syn match htmlArg contained "\<aria-\%(\|level\|multiline\|multiselectable\|orientation\)\>"
syn match htmlArg contained "\<aria-\%(\|pressed\|readonly\|required\|selected\)\>"
syn match htmlArg contained "\<aria-\%(\|sort\|valuemax\|valuemin\|valuenow\|valuetext\)\>"
" Live Region Attributes
syn match htmlArg contained "\<aria-\%(\|atomic\|busy\|live\|relevant\)\>"
" Drag-and-Drop attributes
syn match htmlArg contained "\<aria-\%(\|dropeffect\|grabbed\)\>"
" Relationship Attributes
syn match htmlArg contained "\<aria-\%(\|activedescendant\|controls\|describedby\|flowto\)\>"
syn match htmlArg contained "\<aria-\%(\|labelledby\|owns\|posinset\|setsize\)\>"

View File

@@ -12,8 +12,6 @@ if !exists("main_syntax")
let main_syntax = 'jade' let main_syntax = 'jade'
endif endif
runtime! syntax/html.vim
runtime! syntax/html/html5.vim
silent! syntax include @htmlCoffeescript syntax/coffee.vim silent! syntax include @htmlCoffeescript syntax/coffee.vim
unlet! b:current_syntax unlet! b:current_syntax
silent! syntax include @htmlStylus syntax/stylus.vim silent! syntax include @htmlStylus syntax/stylus.vim
@@ -56,8 +54,10 @@ syn region jadeMarkdownFilter matchgroup=jadeFilter start=/^\z(\s*\):markdown\s
syn region jadeStylusFilter matchgroup=jadeFilter start="^\z(\s*\):stylus\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlStylus syn region jadeStylusFilter matchgroup=jadeFilter start="^\z(\s*\):stylus\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlStylus
syn region jadePlainFilter matchgroup=jadeFilter start="^\z(\s*\):\%(sass\|less\|cdata\)\s*$" end="^\%(\z1\s\|\s*$\)\@!" syn region jadePlainFilter matchgroup=jadeFilter start="^\z(\s*\):\%(sass\|less\|cdata\)\s*$" end="^\%(\z1\s\|\s*$\)\@!"
syn match jadeScriptConditional "\<\%(if\|else\|unless\|while\|for\|until\|case\|when\|default\)\>[?!]\@!" syn match jadeScriptConditional "^\s*\<\%(if\|else\|unless\|while\|until\|case\|when\|default\)\>[?!]\@!"
syn match jadeScriptStatement "\<\%(each\|block\|prepend\|append\|mixin\|extends\|include\)\>[?!]\@!" syn region jadeScriptLoopRegion start="^\s*\(for\)" end="$" contains=jadeScriptLoopKeywords
syn keyword jadeScriptLoopKeywords for in contained
syn match jadeScriptStatement "^\s*\<\%(each\|block\|prepend\|append\|mixin\|extends\|include\)\>[?!]\@!"
syn region jadeJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,jadeJavascriptTag keepend syn region jadeJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,jadeJavascriptTag keepend
syn region jadeJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=jadeBegin,jadeTag syn region jadeJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=jadeBegin,jadeTag
@@ -67,6 +67,7 @@ syn match jadeError "\$" contained
hi def link jadePlainChar Special hi def link jadePlainChar Special
hi def link jadeScriptConditional PreProc hi def link jadeScriptConditional PreProc
hi def link jadeScriptLoopKeywords PreProc
hi def link jadeScriptStatement PreProc hi def link jadeScriptStatement PreProc
hi def link jadeHtmlArg htmlArg hi def link jadeHtmlArg htmlArg
hi def link jadeAttributeString String hi def link jadeAttributeString String

View File

@@ -30,6 +30,7 @@
" unlet perl_nofold_packages " unlet perl_nofold_packages
" let perl_nofold_subs = 1 " let perl_nofold_subs = 1
" unlet perl_fold_anonymous_subs " unlet perl_fold_anonymous_subs
" unlet perl_no_subprototype_error
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@@ -143,34 +144,35 @@ syn match perlPackageRef "[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\
" just set the variable "perl_no_extended_vars"... " just set the variable "perl_no_extended_vars"...
if !exists("perl_no_scope_in_variables") if !exists("perl_no_scope_in_variables")
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
else else
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)"
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
endif endif
syn match perlVarPlain2 "%[-+]" syn match perlVarPlain2 "%[-+]"
if !exists("perl_no_extended_vars") if !exists("perl_no_extended_vars")
syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained extend syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contains=perlVarSimpleMemberName contained extend
syn match perlVarSimpleMemberName "\I\i*" contained syn match perlVarSimpleMemberName "\I\i*" contained
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod,perlPostDeref
syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
syn match perlPostDeref "->\%($#\|[$@%]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
endif endif
" File Descriptors " File Descriptors
@@ -392,10 +394,10 @@ syn match perlFormatField "@$" contained
" __END__ and __DATA__ clauses " __END__ and __DATA__ clauses
if exists("perl_fold") if exists("perl_fold")
syntax region perlDATA start="^__DATA__$" skip="." end="." fold syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA fold
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
else else
syntax region perlDATA start="^__DATA__$" skip="." end="." syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
endif endif
@@ -512,6 +514,7 @@ HiLink perlStatementMisc perlStatement
HiLink perlStatementIndirObj perlStatement HiLink perlStatementIndirObj perlStatement
HiLink perlFunctionName perlIdentifier HiLink perlFunctionName perlIdentifier
HiLink perlMethod perlIdentifier HiLink perlMethod perlIdentifier
HiLink perlPostDeref perlIdentifier
HiLink perlFunctionPRef perlType HiLink perlFunctionPRef perlType
if !get(g:, 'perl_include_pod', 1) if !get(g:, 'perl_include_pod', 1)
HiLink perlPOD perlComment HiLink perlPOD perlComment

File diff suppressed because one or more lines are too long

View File

@@ -18,30 +18,40 @@ syn keyword rustOperator as
syn match rustAssert "\<assert\(\w\)*!" contained syn match rustAssert "\<assert\(\w\)*!" contained
syn match rustFail "\<fail\(\w\)*!" contained syn match rustFail "\<fail\(\w\)*!" contained
syn keyword rustKeyword break continue syn keyword rustKeyword break
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite syn keyword rustKeyword box nextgroup=rustBoxPlacement skipwhite skipempty
syn keyword rustKeyword continue
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite skipempty
syn keyword rustKeyword for in if impl let syn keyword rustKeyword for in if impl let
syn keyword rustKeyword loop once priv pub syn keyword rustKeyword loop once proc pub
syn keyword rustKeyword return syn keyword rustKeyword return super
syn keyword rustKeyword unsafe while syn keyword rustKeyword unsafe virtual while
syn keyword rustKeyword use nextgroup=rustModPath skipwhite syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
" FIXME: Scoped impl's name is also fallen in this category " FIXME: Scoped impl's name is also fallen in this category
syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite skipempty
syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite
syn keyword rustKeyword proc
syn keyword rustStorage mut ref static syn keyword rustStorage mut ref static
syn keyword rustObsoleteStorage const syn keyword rustObsoleteStorage const
syn keyword rustInvalidBareKeyword crate syn keyword rustInvalidBareKeyword crate
syn keyword rustExternCrate crate contained nextgroup=rustIdentifier skipwhite syn keyword rustExternCrate crate contained nextgroup=rustIdentifier skipwhite skipempty
syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite skipempty
syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
syn region rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained
syn keyword rustBoxPlacementExpr GC containedin=rustBoxPlacement
" Ideally we'd have syntax rules set up to match arbitrary expressions. Since
" we don't, we'll just define temporary contained rules to handle balancing
" delimiters.
syn region rustBoxPlacementBalance start="(" end=")" containedin=rustBoxPlacement transparent
syn region rustBoxPlacementBalance start="\[" end="\]" containedin=rustBoxPlacement transparent
" {} are handled by rustFoldBraces
" Reserved (but not yet used) keywords {{{2 " Reserved (but not yet used) keywords {{{2
syn keyword rustReservedKeyword alignof be do offsetof pure sizeof typeof yield syn keyword rustReservedKeyword alignof be do offsetof priv pure sizeof typeof unsized yield
" Built-in types {{{2 " Built-in types {{{2
syn keyword rustType int uint float char bool u8 u16 u32 u64 f32 syn keyword rustType int uint float char bool u8 u16 u32 u64 f32
@@ -52,10 +62,10 @@ syn keyword rustType f64 i8 i16 i32 i64 str Self
" to make it easy to update. " to make it easy to update.
" Core operators {{{3 " Core operators {{{3
syn keyword rustTrait Share Copy Send Sized syn keyword rustTrait Copy Send Sized Share
syn keyword rustTrait Add Sub Mul Div Rem Neg Not syn keyword rustTrait Add Sub Mul Div Rem Neg Not
syn keyword rustTrait BitAnd BitOr BitXor syn keyword rustTrait BitAnd BitOr BitXor
syn keyword rustTrait Drop syn keyword rustTrait Drop Deref DerefMut
syn keyword rustTrait Shl Shr Index syn keyword rustTrait Shl Shr Index
syn keyword rustEnum Option syn keyword rustEnum Option
syn keyword rustEnumVariant Some None syn keyword rustEnumVariant Some None
@@ -68,7 +78,6 @@ syn keyword rustEnumVariant Ok Err
"syn keyword rustFunction drop "syn keyword rustFunction drop
" Types and traits {{{3 " Types and traits {{{3
syn keyword rustTrait Any AnyOwnExt AnyRefExt AnyMutRefExt
syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr IntoBytes syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr IntoBytes
syn keyword rustTrait ToCStr syn keyword rustTrait ToCStr
syn keyword rustTrait Char syn keyword rustTrait Char
@@ -80,25 +89,32 @@ syn keyword rustTrait FromIterator Extendable
syn keyword rustTrait Iterator DoubleEndedIterator RandomAccessIterator CloneableIterator syn keyword rustTrait Iterator DoubleEndedIterator RandomAccessIterator CloneableIterator
syn keyword rustTrait OrdIterator MutableDoubleEndedIterator ExactSize syn keyword rustTrait OrdIterator MutableDoubleEndedIterator ExactSize
syn keyword rustTrait Num NumCast CheckedAdd CheckedSub CheckedMul syn keyword rustTrait Num NumCast CheckedAdd CheckedSub CheckedMul
syn keyword rustTrait Signed Unsigned Round syn keyword rustTrait Signed Unsigned
syn keyword rustTrait Primitive Int Float ToPrimitive FromPrimitive syn keyword rustTrait Primitive Int Float FloatMath ToPrimitive FromPrimitive
"syn keyword rustTrait Expect
syn keyword rustTrait Box
syn keyword rustTrait GenericPath Path PosixPath WindowsPath syn keyword rustTrait GenericPath Path PosixPath WindowsPath
syn keyword rustTrait RawPtr syn keyword rustTrait RawPtr
syn keyword rustTrait Buffer Writer Reader Seek syn keyword rustTrait Buffer Writer Reader Seek
syn keyword rustTrait Str StrVector StrSlice OwnedStr IntoMaybeOwned syn keyword rustTrait Str StrVector StrSlice OwnedStr IntoMaybeOwned
syn keyword rustTrait StrAllocating
syn keyword rustTrait ToStr IntoStr syn keyword rustTrait ToStr IntoStr
syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4 syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4
syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8 syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8
syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12 syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12
syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector ImmutableCloneableVector syn keyword rustTrait CloneableVector ImmutableCloneableVector MutableCloneableVector
syn keyword rustTrait OwnedVector OwnedCloneableVector OwnedEqVector syn keyword rustTrait ImmutableVector MutableVector
syn keyword rustTrait MutableVector MutableTotalOrdVector syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector MutableTotalOrdVector
syn keyword rustTrait Vector VectorVector CloneableVector ImmutableVector syn keyword rustTrait Vector VectorVector OwnedVector MutableVectorAllocating
syn keyword rustTrait String
syn keyword rustTrait Vec
"syn keyword rustFunction stream "syn keyword rustFunction sync_channel channel
syn keyword rustTrait Sender Receiver syn keyword rustTrait SyncSender Sender Receiver
"syn keyword rustFunction spawn "syn keyword rustFunction spawn
"syn keyword rustConstant GC
syn keyword rustSelf self syn keyword rustSelf self
syn keyword rustBoolean true false syn keyword rustBoolean true false
@@ -239,6 +255,8 @@ hi def link rustLifetime Special
hi def link rustInvalidBareKeyword Error hi def link rustInvalidBareKeyword Error
hi def link rustExternCrate rustKeyword hi def link rustExternCrate rustKeyword
hi def link rustObsoleteExternMod Error hi def link rustObsoleteExternMod Error
hi def link rustBoxPlacementParens Delimiter
hi def link rustBoxPlacementExpr rustKeyword
" Other Suggestions: " Other Suggestions:
" hi rustAttribute ctermfg=cyan " hi rustAttribute ctermfg=cyan

View File

@@ -58,6 +58,8 @@ syn match sassAmpersand "&"
" TODO: Attribute namespaces " TODO: Attribute namespaces
" TODO: Arithmetic (including strings and concatenation) " TODO: Arithmetic (including strings and concatenation)
syn region sassMediaQuery matchgroup=sassMedia start="@media" end="$" contains=sassMediaOperators
syn keyword sassMediaOperators and not only contained
syn region sassCharset start="@charset" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType syn region sassCharset start="@charset" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction
@@ -84,6 +86,8 @@ hi def link sassFunctionDecl PreProc
hi def link sassReturn PreProc hi def link sassReturn PreProc
hi def link sassTodo Todo hi def link sassTodo Todo
hi def link sassCharset PreProc hi def link sassCharset PreProc
hi def link sassMedia PreProc
hi def link sassMediaOperators PreProc
hi def link sassInclude Include hi def link sassInclude Include
hi def link sassDebug sassControl hi def link sassDebug sassControl
hi def link sassWarn sassControl hi def link sassWarn sassControl

View File

@@ -47,7 +47,7 @@ syn match cssSelector /\.[A-Za-z][A-Za-z0-9_-]\+/
syn match cssSelector /#[A-Za-z][A-Za-z0-9_-]\+/ syn match cssSelector /#[A-Za-z][A-Za-z0-9_-]\+/
syn region cssSelector start='\[' end='\]' contains=cssString syn region cssSelector start='\[' end='\]' contains=cssString
syn region cssDefineBlock start="{" end="}" transparent contains=ALL syn region cssDefineBlock start="{" end="}" transparent contains=TOP
syn keyword cssCommonVal inherit initial auto both normal hidden none medium contained syn keyword cssCommonVal inherit initial auto both normal hidden none medium contained
@@ -149,6 +149,7 @@ syn match cssTextProp /text-\(align-last\|align\|decoration\|emphasis\|height\|i
syn match cssTextProp /\(line-stacking-\(ruby\|shift\|strategy\)\|line-stacking\|line-height\)/ contained syn match cssTextProp /\(line-stacking-\(ruby\|shift\|strategy\)\|line-stacking\|line-height\)/ contained
syn match cssTextProp /vertical-align/ contained syn match cssTextProp /vertical-align/ contained
syn match cssTextProp /letter-spacing/ contained syn match cssTextProp /letter-spacing/ contained
syn match cssTextProp /user-select/ contained
syn match cssTextProp /white-\(space-collapse\|space\)/ contained syn match cssTextProp /white-\(space-collapse\|space\)/ contained
syn match cssTextProp /word-\(break\|spacing\|wrap\)/ contained syn match cssTextProp /word-\(break\|spacing\|wrap\)/ contained
syn match cssTextProp "\<word-wrap\>" contained syn match cssTextProp "\<word-wrap\>" contained
@@ -235,6 +236,7 @@ syn match cssAdvancedProp /\(pitch-range\|pitch\)/
syn match cssAdvancedProp /presentation-level/ syn match cssAdvancedProp /presentation-level/
syn match cssAdvancedProp /punctuation-trim/ syn match cssAdvancedProp /punctuation-trim/
syn match cssAdvancedProp /rendering-intent/ syn match cssAdvancedProp /rendering-intent/
syn match cssAdvancedProp /pointer-events/
syn match cssAdvancedProp /\(rest-\(after\|before\)\|rest\)/ syn match cssAdvancedProp /\(rest-\(after\|before\)\|rest\)/
syn match cssAdvancedProp /\(rotation-point\|rotation\)/ syn match cssAdvancedProp /\(rotation-point\|rotation\)/
syn match cssAdvancedProp /ruby-\(align\|overhang\|position\|span\)/ syn match cssAdvancedProp /ruby-\(align\|overhang\|position\|span\)/