Configuration vim
parent
14549bb273
commit
529ed93987
@ -0,0 +1 @@
|
|||||||
|
saveview/
|
@ -0,0 +1,326 @@
|
|||||||
|
" pathogen.vim - path option manipulation
|
||||||
|
" Maintainer: Tim Pope <http://tpo.pe/>
|
||||||
|
" Version: 2.2
|
||||||
|
|
||||||
|
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
|
||||||
|
"
|
||||||
|
" For management of individually installed plugins in ~/.vim/bundle (or
|
||||||
|
" ~\vimfiles\bundle), adding `call pathogen#infect()` to the top of your
|
||||||
|
" .vimrc is the only other setup necessary.
|
||||||
|
"
|
||||||
|
" The API is documented inline below. For maximum ease of reading,
|
||||||
|
" :set foldmethod=marker
|
||||||
|
|
||||||
|
if exists("g:loaded_pathogen") || &cp
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_pathogen = 1
|
||||||
|
|
||||||
|
function! s:warn(msg)
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg a:msg
|
||||||
|
echohl NONE
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Point of entry for basic default usage. Give a relative path to invoke
|
||||||
|
" pathogen#incubate() (defaults to "bundle/{}"), or an absolute path to invoke
|
||||||
|
" pathogen#surround(). For backwards compatibility purposes, a full path that
|
||||||
|
" does not end in {} or * is given to pathogen#runtime_prepend_subdirectories()
|
||||||
|
" instead.
|
||||||
|
function! pathogen#infect(...) abort " {{{1
|
||||||
|
for path in a:0 ? reverse(copy(a:000)) : ['bundle/{}']
|
||||||
|
if path =~# '^[^\\/]\+$'
|
||||||
|
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||||
|
call pathogen#incubate(path . '/{}')
|
||||||
|
elseif path =~# '^[^\\/]\+[\\/]\%({}\|\*\)$'
|
||||||
|
call pathogen#incubate(path)
|
||||||
|
elseif path =~# '[\\/]\%({}\|\*\)$'
|
||||||
|
call pathogen#surround(path)
|
||||||
|
else
|
||||||
|
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||||
|
call pathogen#surround(path . '/{}')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call pathogen#cycle_filetype()
|
||||||
|
return ''
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Split a path into a list.
|
||||||
|
function! pathogen#split(path) abort " {{{1
|
||||||
|
if type(a:path) == type([]) | return a:path | endif
|
||||||
|
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
|
||||||
|
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Convert a list to a path.
|
||||||
|
function! pathogen#join(...) abort " {{{1
|
||||||
|
if type(a:1) == type(1) && a:1
|
||||||
|
let i = 1
|
||||||
|
let space = ' '
|
||||||
|
else
|
||||||
|
let i = 0
|
||||||
|
let space = ''
|
||||||
|
endif
|
||||||
|
let path = ""
|
||||||
|
while i < a:0
|
||||||
|
if type(a:000[i]) == type([])
|
||||||
|
let list = a:000[i]
|
||||||
|
let j = 0
|
||||||
|
while j < len(list)
|
||||||
|
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
|
||||||
|
let path .= ',' . escaped
|
||||||
|
let j += 1
|
||||||
|
endwhile
|
||||||
|
else
|
||||||
|
let path .= "," . a:000[i]
|
||||||
|
endif
|
||||||
|
let i += 1
|
||||||
|
endwhile
|
||||||
|
return substitute(path,'^,','','')
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
|
||||||
|
function! pathogen#legacyjoin(...) abort " {{{1
|
||||||
|
return call('pathogen#join',[1] + a:000)
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Remove duplicates from a list.
|
||||||
|
function! pathogen#uniq(list) abort " {{{1
|
||||||
|
let i = 0
|
||||||
|
let seen = {}
|
||||||
|
while i < len(a:list)
|
||||||
|
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
|
||||||
|
call remove(a:list,i)
|
||||||
|
elseif a:list[i] ==# ''
|
||||||
|
let i += 1
|
||||||
|
let empty = 1
|
||||||
|
else
|
||||||
|
let seen[a:list[i]] = 1
|
||||||
|
let i += 1
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
return a:list
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" \ on Windows unless shellslash is set, / everywhere else.
|
||||||
|
function! pathogen#separator() abort " {{{1
|
||||||
|
return !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Convenience wrapper around glob() which returns a list.
|
||||||
|
function! pathogen#glob(pattern) abort " {{{1
|
||||||
|
let files = split(glob(a:pattern),"\n")
|
||||||
|
return map(files,'substitute(v:val,"[".pathogen#separator()."/]$","","")')
|
||||||
|
endfunction "}}}1
|
||||||
|
|
||||||
|
" Like pathogen#glob(), only limit the results to directories.
|
||||||
|
function! pathogen#glob_directories(pattern) abort " {{{1
|
||||||
|
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
|
||||||
|
endfunction "}}}1
|
||||||
|
|
||||||
|
" Turn filetype detection off and back on again if it was already enabled.
|
||||||
|
function! pathogen#cycle_filetype() " {{{1
|
||||||
|
if exists('g:did_load_filetypes')
|
||||||
|
filetype off
|
||||||
|
filetype on
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Check if a bundle is disabled. A bundle is considered disabled if it ends
|
||||||
|
" in a tilde or its basename or full name is included in the list
|
||||||
|
" g:pathogen_disabled.
|
||||||
|
function! pathogen#is_disabled(path) " {{{1
|
||||||
|
if a:path =~# '\~$'
|
||||||
|
return 1
|
||||||
|
elseif !exists("g:pathogen_disabled")
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let blacklist = g:pathogen_disabled
|
||||||
|
return index(blacklist, strpart(a:path, strridx(a:path, sep)+1)) != -1 && index(blacklist, a:path) != 1
|
||||||
|
endfunction "}}}1
|
||||||
|
|
||||||
|
" Prepend the given directory to the runtime path and append its corresponding
|
||||||
|
" after directory. If the directory is already included, move it to the
|
||||||
|
" outermost position. Wildcards are added as is. Ending a path in /{} causes
|
||||||
|
" all subdirectories to be added (except those in g:pathogen_disabled).
|
||||||
|
function! pathogen#surround(path) abort " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let rtp = pathogen#split(&rtp)
|
||||||
|
if a:path =~# '[\\/]{}$'
|
||||||
|
let path = fnamemodify(a:path[0:-4], ':p:s?[\\/]\=$??')
|
||||||
|
let before = filter(pathogen#glob_directories(path.sep.'*'), '!pathogen#is_disabled(v:val)')
|
||||||
|
let after = filter(reverse(pathogen#glob_directories(path.sep."*".sep."after")), '!pathogen#is_disabled(v:val[0:-7])')
|
||||||
|
call filter(rtp,'v:val[0:strlen(path)-1] !=# path')
|
||||||
|
else
|
||||||
|
let path = fnamemodify(a:path, ':p:s?[\\/]\=$??')
|
||||||
|
let before = [path]
|
||||||
|
let after = [path . sep . 'after']
|
||||||
|
call filter(rtp, 'index(before + after, v:val) == -1')
|
||||||
|
endif
|
||||||
|
let &rtp = pathogen#join(before, rtp, after)
|
||||||
|
return &rtp
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Prepend all subdirectories of path to the rtp, and append all 'after'
|
||||||
|
" directories in those subdirectories. Deprecated.
|
||||||
|
function! pathogen#runtime_prepend_subdirectories(path) " {{{1
|
||||||
|
call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#surround('.string(a:path.'/{}').')')
|
||||||
|
return pathogen#surround(a:path . pathogen#separator() . '{}')
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" For each directory in the runtime path, add a second entry with the given
|
||||||
|
" argument appended. If the argument ends in '/{}', add a separate entry for
|
||||||
|
" each subdirectory. The default argument is 'bundle/{}', which means that
|
||||||
|
" .vim/bundle/*, $VIM/vimfiles/bundle/*, $VIMRUNTIME/bundle/*,
|
||||||
|
" $VIM/vim/files/bundle/*/after, and .vim/bundle/*/after will be added (on
|
||||||
|
" UNIX).
|
||||||
|
function! pathogen#incubate(...) abort " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let name = a:0 ? a:1 : 'bundle/{}'
|
||||||
|
if "\n".s:done_bundles =~# "\\M\n".name."\n"
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
let s:done_bundles .= name . "\n"
|
||||||
|
let list = []
|
||||||
|
for dir in pathogen#split(&rtp)
|
||||||
|
if dir =~# '\<after$'
|
||||||
|
if name =~# '{}$'
|
||||||
|
let list += filter(pathogen#glob_directories(substitute(dir,'after$',name[0:-3],'').'*'.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])') + [dir]
|
||||||
|
else
|
||||||
|
let list += [dir, substitute(dir, 'after$', '', '') . name . sep . 'after']
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if name =~# '{}$'
|
||||||
|
let list += [dir] + filter(pathogen#glob_directories(dir.sep.name[0:-3].'*'), '!pathogen#is_disabled(v:val)')
|
||||||
|
else
|
||||||
|
let list += [dir . sep . name, dir]
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
let &rtp = pathogen#join(pathogen#uniq(list))
|
||||||
|
return 1
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Deprecated alias for pathogen#incubate().
|
||||||
|
function! pathogen#runtime_append_all_bundles(...) abort " {{{1
|
||||||
|
if a:0
|
||||||
|
call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#incubate('.string(a:1.'/{}').')')
|
||||||
|
else
|
||||||
|
call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#incubate()')
|
||||||
|
endif
|
||||||
|
return call('pathogen#incubate', map(copy(a:000),'v:val . "/{}"'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:done_bundles = ''
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
|
||||||
|
function! pathogen#helptags() abort " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
for glob in pathogen#split(&rtp)
|
||||||
|
for dir in split(glob(glob), "\n")
|
||||||
|
if (dir.sep)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir.sep.'doc') == 2 && !empty(filter(split(glob(dir.sep.'doc'.sep.'*'),"\n>"),'!isdirectory(v:val)')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags'))
|
||||||
|
silent! execute 'helptags' pathogen#fnameescape(dir.'/doc')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
command! -bar Helptags :call pathogen#helptags()
|
||||||
|
|
||||||
|
" Execute the given command. This is basically a backdoor for --remote-expr.
|
||||||
|
function! pathogen#execute(...) abort " {{{1
|
||||||
|
for command in a:000
|
||||||
|
execute command
|
||||||
|
endfor
|
||||||
|
return ''
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Like findfile(), but hardcoded to use the runtimepath.
|
||||||
|
function! pathogen#runtime_findfile(file,count) abort "{{{1
|
||||||
|
let rtp = pathogen#join(1,pathogen#split(&rtp))
|
||||||
|
let file = findfile(a:file,rtp,a:count)
|
||||||
|
if file ==# ''
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return fnamemodify(file,':p')
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Backport of fnameescape().
|
||||||
|
function! pathogen#fnameescape(string) abort " {{{1
|
||||||
|
if exists('*fnameescape')
|
||||||
|
return fnameescape(a:string)
|
||||||
|
elseif a:string ==# '-'
|
||||||
|
return '\-'
|
||||||
|
else
|
||||||
|
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
if exists(':Vedit')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:vopen_warning = 0
|
||||||
|
|
||||||
|
function! s:find(count,cmd,file,lcd) " {{{1
|
||||||
|
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
|
||||||
|
let file = pathogen#runtime_findfile(a:file,a:count)
|
||||||
|
if file ==# ''
|
||||||
|
return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
|
||||||
|
endif
|
||||||
|
if !s:vopen_warning
|
||||||
|
let s:vopen_warning = 1
|
||||||
|
let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE'
|
||||||
|
else
|
||||||
|
let warning = ''
|
||||||
|
endif
|
||||||
|
if a:lcd
|
||||||
|
let path = file[0:-strlen(a:file)-2]
|
||||||
|
execute 'lcd `=path`'
|
||||||
|
return a:cmd.' '.pathogen#fnameescape(a:file) . warning
|
||||||
|
else
|
||||||
|
return a:cmd.' '.pathogen#fnameescape(file) . warning
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
function! s:Findcomplete(A,L,P) " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let cheats = {
|
||||||
|
\'a': 'autoload',
|
||||||
|
\'d': 'doc',
|
||||||
|
\'f': 'ftplugin',
|
||||||
|
\'i': 'indent',
|
||||||
|
\'p': 'plugin',
|
||||||
|
\'s': 'syntax'}
|
||||||
|
if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
|
||||||
|
let request = cheats[a:A[0]].a:A[1:-1]
|
||||||
|
else
|
||||||
|
let request = a:A
|
||||||
|
endif
|
||||||
|
let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*'
|
||||||
|
let found = {}
|
||||||
|
for path in pathogen#split(&runtimepath)
|
||||||
|
let path = expand(path, ':p')
|
||||||
|
let matches = split(glob(path.sep.pattern),"\n")
|
||||||
|
call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
|
||||||
|
call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
|
||||||
|
for match in matches
|
||||||
|
let found[match] = 1
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
return sort(keys(found))
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
|
||||||
|
|
||||||
|
" vim:set et sw=2:
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 861d9297aa44a0f9ffd35259ddd980526fe6f715
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit cb00fc70564b97e74a7ab687ec8b64177f7817c9
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 7a5d7b8b09b0ec77aea10cde4ede65f34edf31dd
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 0b3d928dce8262dedfc2f83b9aeb59a94e4f0ae4
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit b0bb781fc73ef40365e4c996a16f04368d64fc9d
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
|||||||
|
php.new.vim
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 7a32e0866bfea26cf7781935289df131d1d0c0e0
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit ce2270e228d600b2c371760a6cf82eb254208110
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 3c37ddcc140ed4f5aa1b85f0dc476b410d1bacb3
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
|||||||
|
php.new.vim
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,114 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script to gather up all native functions, classes, and interfaces from any release of
|
||||||
|
* PHP for the purposes of updating the VIM syntax file.
|
||||||
|
*
|
||||||
|
* @author Paul Garvin <paul@paulgarvin.net>
|
||||||
|
* @copyright Copyright 2009 Paul Garvin
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script works by loading up PHP extensions and using reflection to pull
|
||||||
|
* the functions, classes, and constants out of those extesions. The list of extensions
|
||||||
|
* below are ones included with PHP 5.3 source code. The ones commented out depend on
|
||||||
|
* an external library being installed, are Unix specific, or just not commonly used.
|
||||||
|
*
|
||||||
|
* Add, comment, or uncomment to fit your needs or particular PHP installation.
|
||||||
|
* Remember that some of these extensions are likely shared extensions and must be
|
||||||
|
* enabled in your php.ini file.
|
||||||
|
*
|
||||||
|
* NOTE: mysqlnd is not included because it exposes no functions, classes, or constants.
|
||||||
|
* The pdo_* extensions are not included in the list because they do not expose any
|
||||||
|
* functions, classes, or constants themselves. The constants and methods specific
|
||||||
|
* to that driver are exposed though the PDO extension itself. The pdo_* extensions
|
||||||
|
* must still be enabled (compiled in or loaded as shared) for these constants to show up.
|
||||||
|
*/
|
||||||
|
$extensions = array(
|
||||||
|
'core', 'bcmath', 'bz2', 'calendar', 'com_dotnet',
|
||||||
|
'ctype', 'curl', 'date', /*'dba',*/ 'dom',
|
||||||
|
'enchant', 'ereg', 'exif', 'fileinfo', 'filter',
|
||||||
|
'ftp', 'gd', 'gettext', 'gmp', 'hash',
|
||||||
|
'iconv', 'imap', /*'interbase',*/ 'intl', 'json',
|
||||||
|
'ldap', 'libxml', 'mbstring', 'mcrypt', 'mhash',
|
||||||
|
/*'mssql',*/ 'mysql', 'mysqli', /*'oci8', 'oci8_11g',*/
|
||||||
|
'odbc', 'openssl', 'pcntl', 'pcre', 'pdo',
|
||||||
|
'pgsql', 'phar', /*'posix', 'pspell', 'readline',*/
|
||||||
|
/*'recode',*/ 'reflection', 'session', 'shmop', 'simplexml',
|
||||||
|
/*'snmp',*/ 'soap', 'sockets', 'spl', 'standard',
|
||||||
|
'sqlite', 'sqlite3', /*'sybase_ct', 'sysvmsg', 'sysvsem', 'sysvshm',*/
|
||||||
|
'tidy', 'tokenizer', 'xml', 'xmlreader', 'xmlwriter',
|
||||||
|
'xmlrpc', 'xsl', /*'wddx',*/ 'zip', 'zlib'
|
||||||
|
);
|
||||||
|
|
||||||
|
$out_file = '~/php_vimgen_out.vim'; // Pick your output file & location.
|
||||||
|
$out_str = '';
|
||||||
|
$store = array();
|
||||||
|
$errors = array();
|
||||||
|
|
||||||
|
foreach ($extensions as $ext) {
|
||||||
|
echo "Processing extension '$ext'." . PHP_EOL;
|
||||||
|
try {
|
||||||
|
$extension = new ReflectionExtension($ext);
|
||||||
|
$ext_info = array();
|
||||||
|
$ext_info['name'] = $extension->getName();
|
||||||
|
|
||||||
|
$ext_functions = array_keys($extension->getFunctions());
|
||||||
|
$ext_constants = array_keys($extension->getConstants());
|
||||||
|
|
||||||
|
$classes = $extension->getClasses();
|
||||||
|
$ext_classes = array();
|
||||||
|
|
||||||
|
foreach ($classes as $class) {
|
||||||
|
$ext_classes[] = $class->getName();
|
||||||
|
$ext_constants = array_merge($ext_constants, array_keys($class->getConstants()));
|
||||||
|
}
|
||||||
|
|
||||||
|
$ext_constants = array_unique($ext_constants);
|
||||||
|
|
||||||
|
if (count($ext_functions)) {
|
||||||
|
$ext_info['functions'] = implode(' ', $ext_functions);
|
||||||
|
}
|
||||||
|
if (count($ext_constants)) {
|
||||||
|
$ext_info['constants'] = implode(' ', $ext_constants);
|
||||||
|
}
|
||||||
|
if (count($ext_classes)) {
|
||||||
|
$ext_info['classes'] = implode(' ', $ext_classes);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$errors[] = "\"Error: '$ext' " . $e->getMessage() . "\n";
|
||||||
|
echo 'Error Encountered.' . PHP_EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
$store[$ext] = $ext_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
$out_str .= "syn case match\n\n";
|
||||||
|
|
||||||
|
foreach ($store as $ext) {
|
||||||
|
if (isset($ext['constants'])) {
|
||||||
|
$out_str .= '" ' . $ext['name'] . "\n";
|
||||||
|
$out_str .= 'syn keyword phpConstants ' . $ext['constants'] . " contained\n\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$out_str .= "syn case ignore\n\n";
|
||||||
|
|
||||||
|
foreach ($store as $ext) {
|
||||||
|
$out_str .= '" ' . $ext['name'] . "\n";
|
||||||
|
if (isset($ext['functions'])) {
|
||||||
|
$out_str .= 'syn keyword phpFunctions ' . $ext['functions'] . " contained\n";
|
||||||
|
}
|
||||||
|
if (isset($ext['classes'])) {
|
||||||
|
$out_str .= 'syn keyword phpClasses ' . $ext['classes'] . " contained\n\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($errors as $error) {
|
||||||
|
$out_str .= "$error\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
file_put_contents($out_file, $out_str);
|
||||||
|
|
||||||
|
?>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,157 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Options:
|
||||||
|
// --no-zend
|
||||||
|
// --ignore=extension_name
|
||||||
|
|
||||||
|
$gen = new Generator($argv);
|
||||||
|
$gen->generate();
|
||||||
|
|
||||||
|
|
||||||
|
class Generator
|
||||||
|
{
|
||||||
|
private $file = null;
|
||||||
|
private $generator = null;
|
||||||
|
|
||||||
|
private $zend = true;
|
||||||
|
private $ignoredExtensions = array();
|
||||||
|
|
||||||
|
public function __construct($args)
|
||||||
|
{
|
||||||
|
$this->generator = implode(' ', $args);
|
||||||
|
$this->file = dirname(array_shift($args)).'/php_declaration.vim';
|
||||||
|
|
||||||
|
foreach($args as $arg)
|
||||||
|
{
|
||||||
|
if(strtolower($arg) == '--help' || strtolower($arg) == '-h')
|
||||||
|
{
|
||||||
|
}
|
||||||
|
elseif(strtolower($arg) == '--no-zend')
|
||||||
|
{
|
||||||
|
$this->zend = false;
|
||||||
|
}
|
||||||
|
elseif(preg_match('/^--ignore=([a-z0-9_]+(?:,[a-z0-9]+)*)$/i', $arg, $matches))
|
||||||
|
{
|
||||||
|
$ignore = explode(',', $matches[1]);
|
||||||
|
$this->ignoredExtensions = array_merge($this->ignoredExtensions, $ignore);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo 'Unknown option "'.$arg.'"';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function generate ()
|
||||||
|
{
|
||||||
|
$extensions = $this->_getExtensions(); // Récupère la liste des extensions PHP actives
|
||||||
|
|
||||||
|
$infos = array();
|
||||||
|
foreach($extensions as $extension)
|
||||||
|
$infos[$extension] = $this->_getExtensionContent($extension);
|
||||||
|
|
||||||
|
$this->_write($infos);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function _getExtensions ()
|
||||||
|
{
|
||||||
|
$extensions = get_loaded_extensions(false); // Les extensions "classiques" de PHP
|
||||||
|
|
||||||
|
if($this->zend)
|
||||||
|
$extensions = array_merge($extensions, get_loaded_extensions(true)); // + les extensions Zend
|
||||||
|
|
||||||
|
sort($extensions);
|
||||||
|
|
||||||
|
echo "Founded ".count($extensions)." extension(s)\n";
|
||||||
|
return $extensions;
|
||||||
|
}
|
||||||
|
private function _getExtensionContent ($extension)
|
||||||
|
{
|
||||||
|
$reflex = new ReflectionExtension($extension);
|
||||||
|
echo "\tProcessing extension : ".$reflex->getName().", version ".$reflex->getVersion()."\n";
|
||||||
|
|
||||||
|
$info = (object)array(
|
||||||
|
'name' => $reflex->getName(),
|
||||||
|
'version' => $reflex->getVersion(),
|
||||||
|
|
||||||
|
'classes' => $reflex->getClassNames(),
|
||||||
|
'constants' => array_keys($reflex->getConstants()),
|
||||||
|
'functions' => array_keys($reflex->getFunctions())
|
||||||
|
);
|
||||||
|
echo "\t\t".count($info->classes)." class(es)\n";
|
||||||
|
echo "\t\t".count($info->constants)." constant(s)\n";
|
||||||
|
echo "\t\t".count($info->functions)." function(s)\n";
|
||||||
|
|
||||||
|
return $info;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function _write ($infos)
|
||||||
|
{
|
||||||
|
$content = array();
|
||||||
|
$cluster = (object)array(
|
||||||
|
'classes' => array(),
|
||||||
|
'constants' => array(),
|
||||||
|
'functions' => array()
|
||||||
|
);
|
||||||
|
|
||||||
|
$content[] = "\" PHP classes, constantes and functions, by extensions for vim";
|
||||||
|
$content[] = "\" Generated by ".$this->generator;
|
||||||
|
$content[] = "";
|
||||||
|
$content[] = "";
|
||||||
|
|
||||||
|
foreach($infos as $name => $extension)
|
||||||
|
{
|
||||||
|
$content[] = "\" Extension: ".$extension->name." ".$extension->version." {{{1";
|
||||||
|
|
||||||
|
if(count($extension->classes))
|
||||||
|
{
|
||||||
|
$vimClass = 'phpClasses_'.$name;
|
||||||
|
|
||||||
|
$content[] = "\t\" Classes: {{{2";
|
||||||
|
$content[] = "syntax keyword ".$vimClass." ".implode(' ', $extension->classes)." contained";
|
||||||
|
$content[] = "\t\" }}}2";
|
||||||
|
|
||||||
|
$cluster->classes[] = $vimClass;
|
||||||
|
}
|
||||||
|
if(count($extension->constants))
|
||||||
|
{
|
||||||
|
$vimClass = 'phpConstants_'.$name;
|
||||||
|
|
||||||
|
$content[] = "\t\" Constants: {{{2";
|
||||||
|
$content[] = "syntax keyword ".$vimClass." ".implode(' ', $extension->constants)." contained";
|
||||||
|
$content[] = "\t\" }}}2";
|
||||||
|
|
||||||
|
$cluster->constants[] = $vimClass;
|
||||||
|
}
|
||||||
|
if(count($extension->functions))
|
||||||
|
{
|
||||||
|
$vimClass = 'phpFunctions_'.$name;
|
||||||
|
|
||||||
|
$content[] = "\t\" Functions: {{{2";
|
||||||
|
$content[] = "syntax keyword ".$vimClass." ".implode(' ', $extension->functions)." contained";
|
||||||
|
$content[] = "\t\" }}}2";
|
||||||
|
|
||||||
|
$cluster->functions[] = $vimClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
$content[] = "\" }}}1";
|
||||||
|
$content[] = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
$content[] = "";
|
||||||
|
$content[] = "\" Clusters: {{{1";
|
||||||
|
$content[] = "syntax cluster phpClClasses add=".implode(',', $cluster->classes);
|
||||||
|
$content[] = "syntax cluster phpClConstants add=".implode(',', $cluster->constants);
|
||||||
|
$content[] = "syntax cluster phpClfunctions add=".implode(',', $cluster->functions);
|
||||||
|
$content[] = "\" }}}1";
|
||||||
|
$content[] = "";
|
||||||
|
|
||||||
|
if(file_put_contents($this->file, implode("\n", $content)) === false)
|
||||||
|
echo "ERROR : writing in \"".$this->file."\" failed\n";
|
||||||
|
else
|
||||||
|
echo "File \"".$this->file."\" correctly generated\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -0,0 +1,65 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
"
|
||||||
|
" Language: PHP 5.3
|
||||||
|
" Author: Julien Rosset <jul.rosset@gmail.com>
|
||||||
|
"
|
||||||
|
" Creation: April 9, 2013
|
||||||
|
" Last Change: April 9, 2013
|
||||||
|
"
|
||||||
|
" Version: 0.1
|
||||||
|
|
||||||
|
" Options: {{{1
|
||||||
|
" " php_short_tags=0/1 [1] : PHP short tags allowed ?
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
" Gère les cas où de la syntaxe est déjà définie
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("main_syntax")
|
||||||
|
let main_syntax = 'php'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" PHP insensible à la casse
|
||||||
|
syntax clear
|
||||||
|
syntax case ignore
|
||||||
|
|
||||||
|
|
||||||
|
" Lecture des options
|
||||||
|
function! s:getOption(name, default)
|
||||||
|
if exists('b:'.a:name)
|
||||||
|
return b:{a:name}
|
||||||
|
elseif exists('g:'.a:name)
|
||||||
|
return g:{a:name}
|
||||||
|
else
|
||||||
|
return a:defaut
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:php_short_tags = s:getOption('php_short_tags', 1);
|
||||||
|
|
||||||
|
delfunction s:getOption
|
||||||
|
|
||||||
|
|
||||||
|
" Declaration PHP: <?php ... ?> {{{1
|
||||||
|
if s:php_short_tags == 1
|
||||||
|
syntax region phpPart matchgroup=phpDeclaration start=/<?\(php\)\?/ end=/?>/ keepend contains=CONTAINED
|
||||||
|
else
|
||||||
|
syntax region phpPart matchgroup=phpDeclaration start=/<?php/ end=/?>/ keepend contains=CONTAINED
|
||||||
|
endif
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
" Commentaires: /* ... */ // {{{1
|
||||||
|
syntax region phpComment start="/\*" end="\*/" keepend contained
|
||||||
|
syntax match phpComment "//.*$" contained
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
|
||||||
|
" Coloration: {{{1
|
||||||
|
hi link phpDeclaration Operator
|
||||||
|
hi link phpComment Comment
|
||||||
|
" }}}1
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit b460822c84fbdaae818a712c56055e210d9f2230
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit b9ad64ae75a06f3462dc46935f1757797f816f02
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 124550cfee33a1bb9a227e78ccc709317a89dae9
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 61890d8e5ba8a873526fb91c6484aa445cc20b56
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 1270dceb1fe0ca35f8b292c7b41b45b42c5a0cc1
|
@ -0,0 +1,231 @@
|
|||||||
|
" Vim color file
|
||||||
|
"
|
||||||
|
" Author: Tomas Restrepo <tomas@winterdom.com>
|
||||||
|
"
|
||||||
|
" Note: Based on the monokai theme for textmate
|
||||||
|
" by Wimer Hazenberg and its darker variant
|
||||||
|
" by Hamish Stuart Macpherson
|
||||||
|
"
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
set background=dark
|
||||||
|
if version > 580
|
||||||
|
" no guarantees for version 5.8 and below, but this makes it stop
|
||||||
|
" complaining
|
||||||
|
hi clear
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let g:colors_name="molokai"
|
||||||
|
|
||||||
|
if exists("g:molokai_original")
|
||||||
|
let s:molokai_original = g:molokai_original
|
||||||
|
else
|
||||||
|
let s:molokai_original = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
hi Boolean guifg=#AE81FF
|
||||||
|
hi Character guifg=#E6DB74
|
||||||
|
hi Number guifg=#AE81FF
|
||||||
|
hi String guifg=#E6DB74
|
||||||
|
hi Conditional guifg=#F92672 gui=bold
|
||||||
|
hi Constant guifg=#AE81FF gui=bold
|
||||||
|
hi Cursor guifg=#000000 guibg=#000000
|
||||||
|
hi Debug guifg=#BCA3A3 gui=bold
|
||||||
|
hi Define guifg=#66D9EF
|
||||||
|
hi Delimiter guifg=#8F8F8F
|
||||||
|
hi DiffAdd guibg=#13354A
|
||||||
|
hi DiffChange guifg=#89807D guibg=#4C4745
|
||||||
|
hi DiffDelete guifg=#960050 guibg=#1E0010
|
||||||
|
hi DiffText guibg=#4C4745 gui=italic,bold
|
||||||
|
|
||||||
|
hi Directory guifg=#A6E22E gui=bold
|
||||||
|
hi Error guifg=#960050 guibg=#FF0000
|
||||||
|
hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold
|
||||||
|
hi Exception guifg=#A6E22E gui=bold
|
||||||
|
hi Float guifg=#AE81FF
|
||||||
|
hi FoldColumn guifg=#465457 guibg=#000000
|
||||||
|
hi Folded guifg=#465457 guibg=#000000
|
||||||
|
hi Function guifg=#8FC327
|
||||||
|
hi Identifier guifg=#FD971F
|
||||||
|
hi Ignore guifg=#808080 guibg=bg
|
||||||
|
hi IncSearch guifg=#C4BE89 guibg=#000000
|
||||||
|
|
||||||
|
hi Keyword guifg=#F92672 gui=bold
|
||||||
|
hi Label guifg=#E6DB74 gui=none
|
||||||
|
hi Macro guifg=#C4BE89 gui=italic
|
||||||
|
hi SpecialKey guifg=#66D9EF gui=italic
|
||||||
|
|
||||||
|
hi MatchParen guifg=#000000 guibg=#FD971F gui=bold
|
||||||
|
hi ModeMsg guifg=#E6DB74
|
||||||
|
hi MoreMsg guifg=#E6DB74
|
||||||
|
hi Operator guifg=#F92672
|
||||||
|
|
||||||
|
" complete menu
|
||||||
|
hi Pmenu guifg=#66D9EF guibg=#000000
|
||||||
|
hi PmenuSel guibg=#808080
|
||||||
|
hi PmenuSbar guibg=#080808
|
||||||
|
hi PmenuThumb guifg=#66D9EF
|
||||||
|
|
||||||
|
hi PreCondit guifg=#A6E22E gui=bold
|
||||||
|
hi PreProc guifg=#A6E22E
|
||||||
|
hi Question guifg=#66D9EF
|
||||||
|
hi Repeat guifg=#F92672 gui=bold
|
||||||
|
hi Search guifg=#FFFFFF guibg=#455354
|
||||||
|
" marks column
|
||||||
|
hi SignColumn guifg=#A6E22E guibg=#232526
|
||||||
|
hi SpecialChar guifg=#F92672 gui=bold
|
||||||
|
hi SpecialComment guifg=#7E8E91 gui=bold
|
||||||
|
hi Special guifg=#66D9EF guibg=bg gui=italic
|
||||||
|
if has("spell")
|
||||||
|
hi SpellBad guisp=#FF0000 gui=undercurl
|
||||||
|
hi SpellCap guisp=#7070F0 gui=undercurl
|
||||||
|
hi SpellLocal guisp=#70F0F0 gui=undercurl
|
||||||
|
hi SpellRare guisp=#FFFFFF gui=undercurl
|
||||||
|
endif
|
||||||
|
hi Statement guifg=#F92672 gui=bold
|
||||||
|
hi StatusLine guifg=#455354 guibg=fg
|
||||||
|
hi StatusLineNC guifg=#808080 guibg=#080808
|
||||||
|
hi StorageClass guifg=#FD971F gui=italic
|
||||||
|
hi Structure guifg=#66D9EF
|
||||||
|
hi Tag guifg=#F92672 gui=italic
|
||||||
|
hi Title guifg=#ef5939
|
||||||
|
hi Todo guifg=#FFFFFF guibg=bg gui=bold
|
||||||
|
|
||||||
|
hi Typedef guifg=#66D9EF
|
||||||
|
hi Type guifg=#66D9EF gui=none
|
||||||
|
hi Underlined guifg=#808080 gui=underline
|
||||||
|
|
||||||
|
hi VertSplit guifg=#808080 guibg=#080808 gui=bold
|
||||||
|
hi VisualNOS guibg=#403D3D
|
||||||
|
hi Visual guibg=#403D3D
|
||||||
|
hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold
|
||||||
|
hi WildMenu guifg=#66D9EF guibg=#000000
|
||||||
|
|
||||||
|
if s:molokai_original == 1
|
||||||
|
hi Normal guifg=#F8F8F2 guibg=#272822
|
||||||
|
hi Comment guifg=#75715E
|
||||||
|
hi CursorLine guibg=#000000
|
||||||
|
hi CursorColumn guibg=#000000
|
||||||
|
hi ColorColumn guibg=#000000
|
||||||
|
hi LineNr guifg=#BCBCBC guibg=#3B3A32
|
||||||
|
hi NonText guifg=#75715E
|
||||||
|
hi SpecialKey guifg=#75715E
|
||||||
|
else
|
||||||
|
hi Normal guifg=#F8F8F2 guibg=#1B1D1E
|
||||||
|
hi Comment guifg=#7E8E91
|
||||||
|
hi CursorLine guibg=#000000
|
||||||
|
hi CursorColumn guibg=#000000
|
||||||
|
hi ColorColumn guibg=#000000
|
||||||
|
hi LineNr guifg=#465457 guibg=#232526
|
||||||
|
hi NonText guifg=#465457
|
||||||
|
hi SpecialKey guifg=#465457
|
||||||
|
end
|
||||||
|
|
||||||
|
"
|
||||||
|
" Support for 256-color terminal
|
||||||
|
"
|
||||||
|
if &t_Co > 255
|
||||||
|
if s:molokai_original == 1
|
||||||
|
hi Normal ctermbg=234
|
||||||
|
hi CursorLine ctermbg=16 cterm=none
|
||||||
|
else
|
||||||
|
" changé ctermbg
|
||||||
|
hi Normal ctermfg=252 ctermbg=234
|
||||||
|
|
||||||
|
hi CursorLine ctermbg=16 cterm=none
|
||||||
|
endif
|
||||||
|
hi Boolean ctermfg=135
|
||||||
|
hi Character ctermfg=144
|
||||||
|
hi Number ctermfg=135
|
||||||
|
|
||||||
|
" changé
|
||||||
|
hi String ctermfg=143
|
||||||
|
|
||||||
|
hi Conditional ctermfg=161 cterm=bold
|
||||||
|
hi Constant ctermfg=135 cterm=bold
|
||||||
|
hi Cursor ctermfg=16 ctermbg=16
|
||||||
|
hi Debug ctermfg=225 cterm=bold
|
||||||
|
hi Define ctermfg=81
|
||||||
|
hi Delimiter ctermfg=241
|
||||||
|
|
||||||
|
hi DiffAdd ctermbg=24
|
||||||
|
hi DiffChange ctermfg=181 ctermbg=239
|
||||||
|
hi DiffDelete ctermfg=162 ctermbg=53
|
||||||
|
hi DiffText ctermbg=102 cterm=bold
|
||||||
|
|
||||||
|
hi Directory ctermfg=106 cterm=bold
|
||||||
|
hi Error ctermfg=219 ctermbg=196
|
||||||
|
hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold
|
||||||
|
hi Exception ctermfg=106 cterm=bold
|
||||||
|
hi Float ctermfg=135
|
||||||
|
hi FoldColumn ctermfg=67 ctermbg=16
|
||||||
|
hi Folded ctermfg=67 ctermbg=16
|
||||||
|
hi Function ctermfg=106
|
||||||
|
hi Identifier ctermfg=208 cterm=none
|
||||||
|
hi Ignore ctermfg=244 ctermbg=232
|
||||||
|
hi IncSearch ctermfg=193 ctermbg=16
|
||||||
|
|
||||||
|
hi Keyword ctermfg=161 cterm=bold
|
||||||
|
hi Label ctermfg=229 cterm=none
|
||||||
|
hi Macro ctermfg=193
|
||||||
|
hi SpecialKey ctermfg=81
|
||||||
|
|
||||||
|
hi MatchParen ctermfg=16 ctermbg=208 cterm=bold
|
||||||
|
hi ModeMsg ctermfg=229
|
||||||
|
hi MoreMsg ctermfg=229
|
||||||
|
hi Operator ctermfg=161
|
||||||
|
|
||||||
|
" complete menu
|
||||||
|
hi Pmenu ctermfg=81 ctermbg=16
|
||||||
|
hi PmenuSel ctermbg=244
|
||||||
|
hi PmenuSbar ctermbg=232
|
||||||
|
hi PmenuThumb ctermfg=81
|
||||||
|
|
||||||
|
hi PreCondit ctermfg=106 cterm=bold
|
||||||
|
hi PreProc ctermfg=106
|
||||||
|
hi Question ctermfg=81
|
||||||
|
hi Repeat ctermfg=161 cterm=bold
|
||||||
|
hi Search ctermfg=253 ctermbg=66
|
||||||
|
|
||||||
|
" marks column
|
||||||
|
hi SignColumn ctermfg=106 ctermbg=235
|
||||||
|
hi SpecialChar ctermfg=161 cterm=bold
|
||||||
|
hi SpecialComment ctermfg=245 cterm=bold
|
||||||
|
hi Special ctermfg=81
|
||||||
|
|
||||||
|
hi Statement ctermfg=161 cterm=bold
|
||||||
|
hi StatusLine ctermfg=238 ctermbg=253
|
||||||
|
hi StatusLineNC ctermfg=244 ctermbg=232
|
||||||
|
hi StorageClass ctermfg=208
|
||||||
|
hi Structure ctermfg=81
|
||||||
|
hi Tag ctermfg=161
|
||||||
|
hi Title ctermfg=166
|
||||||
|
hi Todo ctermfg=231 ctermbg=232 cterm=bold
|
||||||
|
|
||||||
|
hi Typedef ctermfg=81
|
||||||
|
hi Type ctermfg=81 cterm=none
|
||||||
|
hi Underlined ctermfg=244 cterm=underline
|
||||||
|
|
||||||
|
hi VertSplit ctermfg=244 ctermbg=232 cterm=bold
|
||||||
|
hi VisualNOS ctermbg=238
|
||||||
|
hi Visual ctermbg=16
|
||||||
|
hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold
|
||||||
|
hi WildMenu ctermfg=81 ctermbg=16
|
||||||
|
|
||||||
|
" changé
|
||||||
|
hi Comment ctermfg=245
|
||||||
|
|
||||||
|
hi CursorColumn ctermbg=16
|
||||||
|
hi ColorColumn ctermbg=16
|
||||||
|
|
||||||
|
" changé
|
||||||
|
"hi LineNr ctermfg=250 ctermbg=234
|
||||||
|
hi LineNr ctermfg=240 ctermbg=235
|
||||||
|
|
||||||
|
hi NonText ctermfg=59
|
||||||
|
hi SpecialKey ctermfg=59
|
||||||
|
end
|
@ -0,0 +1,231 @@
|
|||||||
|
" Vim color file
|
||||||
|
"
|
||||||
|
" Author: Tomas Restrepo <tomas@winterdom.com>
|
||||||
|
"
|
||||||
|
" Note: Based on the monokai theme for textmate
|
||||||
|
" by Wimer Hazenberg and its darker variant
|
||||||
|
" by Hamish Stuart Macpherson
|
||||||
|
"
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
set background=dark
|
||||||
|
if version > 580
|
||||||
|
" no guarantees for version 5.8 and below, but this makes it stop
|
||||||
|
" complaining
|
||||||
|
hi clear
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let g:colors_name="molokai"
|
||||||
|
|
||||||
|
if exists("g:molokai_original")
|
||||||
|
let s:molokai_original = g:molokai_original
|
||||||
|
else
|
||||||
|
let s:molokai_original = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
hi Boolean guifg=#AE81FF
|
||||||
|
hi Character guifg=#E6DB74
|
||||||
|
hi Number guifg=#AE81FF
|
||||||
|
hi String guifg=#E6DB74
|
||||||
|
hi Conditional guifg=#F92672 gui=bold
|
||||||
|
hi Constant guifg=#AE81FF gui=bold
|
||||||
|
hi Cursor guifg=#000000 guibg=#F8F8F0
|
||||||
|
hi Debug guifg=#BCA3A3 gui=bold
|
||||||
|
hi Define guifg=#66D9EF
|
||||||
|
hi Delimiter guifg=#8F8F8F
|
||||||
|
hi DiffAdd guibg=#13354A
|
||||||
|
hi DiffChange guifg=#89807D guibg=#4C4745
|
||||||
|
hi DiffDelete guifg=#960050 guibg=#1E0010
|
||||||
|
hi DiffText guibg=#4C4745 gui=italic,bold
|
||||||
|
|
||||||
|
hi Directory guifg=#A6E22E gui=bold
|
||||||
|
hi Error guifg=#960050 guibg=#1E0010
|
||||||
|
hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold
|
||||||
|
hi Exception guifg=#A6E22E gui=bold
|
||||||
|
hi Float guifg=#AE81FF
|
||||||
|
hi FoldColumn guifg=#465457 guibg=#000000
|
||||||
|
hi Folded guifg=#465457 guibg=#000000
|
||||||
|
hi Function guifg=#A6E22E
|
||||||
|
hi Identifier guifg=#FD971F
|
||||||
|
hi Ignore guifg=#808080 guibg=bg
|
||||||
|
hi IncSearch guifg=#C4BE89 guibg=#000000
|
||||||
|
|
||||||
|
hi Keyword guifg=#F92672 gui=bold
|
||||||
|
hi Label guifg=#E6DB74 gui=none
|
||||||
|
hi Macro guifg=#C4BE89 gui=italic
|
||||||
|
hi SpecialKey guifg=#66D9EF gui=italic
|
||||||
|
|
||||||
|
hi MatchParen guifg=#000000 guibg=#FD971F gui=bold
|
||||||
|
hi ModeMsg guifg=#E6DB74
|
||||||
|
hi MoreMsg guifg=#E6DB74
|
||||||
|
hi Operator guifg=#F92672
|
||||||
|
|
||||||
|
" complete menu
|
||||||
|
hi Pmenu guifg=#66D9EF guibg=#000000
|
||||||
|
hi PmenuSel guibg=#808080
|
||||||
|
hi PmenuSbar guibg=#080808
|
||||||
|
hi PmenuThumb guifg=#66D9EF
|
||||||
|
|
||||||
|
hi PreCondit guifg=#A6E22E gui=bold
|
||||||
|
hi PreProc guifg=#A6E22E
|
||||||
|
hi Question guifg=#66D9EF
|
||||||
|
hi Repeat guifg=#F92672 gui=bold
|
||||||
|
hi Search guifg=#FFFFFF guibg=#455354
|
||||||
|
" marks column
|
||||||
|
hi SignColumn guifg=#A6E22E guibg=#232526
|
||||||
|
hi SpecialChar guifg=#F92672 gui=bold
|
||||||
|
hi SpecialComment guifg=#7E8E91 gui=bold
|
||||||
|
hi Special guifg=#66D9EF guibg=bg gui=italic
|
||||||
|
if has("spell")
|
||||||
|
hi SpellBad guisp=#FF0000 gui=undercurl
|
||||||
|
hi SpellCap guisp=#7070F0 gui=undercurl
|
||||||
|
hi SpellLocal guisp=#70F0F0 gui=undercurl
|
||||||
|
hi SpellRare guisp=#FFFFFF gui=undercurl
|
||||||
|
endif
|
||||||
|
hi Statement guifg=#F92672 gui=bold
|
||||||
|
hi StatusLine guifg=#455354 guibg=fg
|
||||||
|
hi StatusLineNC guifg=#808080 guibg=#080808
|
||||||
|
hi StorageClass guifg=#FD971F gui=italic
|
||||||
|
hi Structure guifg=#66D9EF
|
||||||
|
hi Tag guifg=#F92672 gui=italic
|
||||||
|
hi Title guifg=#ef5939
|
||||||
|
hi Todo guifg=#FFFFFF guibg=bg gui=bold
|
||||||
|
|
||||||
|
hi Typedef guifg=#66D9EF
|
||||||
|
hi Type guifg=#66D9EF gui=none
|
||||||
|
hi Underlined guifg=#808080 gui=underline
|
||||||
|
|
||||||
|
hi VertSplit guifg=#808080 guibg=#080808 gui=bold
|
||||||
|
hi VisualNOS guibg=#403D3D
|
||||||
|
hi Visual guibg=#403D3D
|
||||||
|
hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold
|
||||||
|
hi WildMenu guifg=#66D9EF guibg=#000000
|
||||||
|
|
||||||
|
if s:molokai_original == 1
|
||||||
|
hi Normal guifg=#F8F8F2 guibg=#272822
|
||||||
|
hi Comment guifg=#75715E
|
||||||
|
hi CursorLine guibg=#3E3D32
|
||||||
|
hi CursorColumn guibg=#3E3D32
|
||||||
|
hi ColorColumn guibg=#3B3A32
|
||||||
|
hi LineNr guifg=#BCBCBC guibg=#3B3A32
|
||||||
|
hi NonText guifg=#75715E
|
||||||
|
hi SpecialKey guifg=#75715E
|
||||||
|
else
|
||||||
|
hi Normal guifg=#F8F8F2 guibg=#1B1D1E
|
||||||
|
hi Comment guifg=#7E8E91
|
||||||
|
hi CursorLine guibg=#293739
|
||||||
|
hi CursorColumn guibg=#293739
|
||||||
|
hi ColorColumn guibg=#232526
|
||||||
|
hi LineNr guifg=#465457 guibg=#232526
|
||||||
|
hi NonText guifg=#465457
|
||||||
|
hi SpecialKey guifg=#465457
|
||||||
|
end
|
||||||
|
|
||||||
|
"
|
||||||
|
" Support for 256-color terminal
|
||||||
|
"
|
||||||
|
if &t_Co > 255
|
||||||
|
if s:molokai_original == 1
|
||||||
|
hi Normal ctermbg=234
|
||||||
|
hi CursorLine ctermbg=235 cterm=none
|
||||||
|
else
|
||||||
|
" changé ctermbg
|
||||||
|
hi Normal ctermfg=252 ctermbg=234
|
||||||
|
|
||||||
|
hi CursorLine ctermbg=234 cterm=none
|
||||||
|
endif
|
||||||
|
hi Boolean ctermfg=135
|
||||||
|
hi Character ctermfg=144
|
||||||
|
hi Number ctermfg=135
|
||||||
|
|
||||||
|
" changé
|
||||||
|
hi String ctermfg=143
|
||||||
|
|
||||||
|
hi Conditional ctermfg=161 cterm=bold
|
||||||
|
hi Constant ctermfg=135 cterm=bold
|
||||||
|
hi Cursor ctermfg=16 ctermbg=253
|
||||||
|
hi Debug ctermfg=225 cterm=bold
|
||||||
|
hi Define ctermfg=81
|
||||||
|
hi Delimiter ctermfg=241
|
||||||
|
|
||||||
|
hi DiffAdd ctermbg=24
|
||||||
|
hi DiffChange ctermfg=181 ctermbg=239
|
||||||
|
hi DiffDelete ctermfg=162 ctermbg=53
|
||||||
|
hi DiffText ctermbg=102 cterm=bold
|
||||||
|
|
||||||
|
hi Directory ctermfg=118 cterm=bold
|
||||||
|
hi Error ctermfg=219 ctermbg=89
|
||||||
|
hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold
|
||||||
|
hi Exception ctermfg=118 cterm=bold
|
||||||
|
hi Float ctermfg=135
|
||||||
|
hi FoldColumn ctermfg=67 ctermbg=16
|
||||||
|
hi Folded ctermfg=67 ctermbg=16
|
||||||
|
hi Function ctermfg=118
|
||||||
|
hi Identifier ctermfg=208 cterm=none
|
||||||
|
hi Ignore ctermfg=244 ctermbg=232
|
||||||
|
hi IncSearch ctermfg=193 ctermbg=16
|
||||||
|
|
||||||
|
hi Keyword ctermfg=161 cterm=bold
|
||||||
|
hi Label ctermfg=229 cterm=none
|
||||||
|
hi Macro ctermfg=193
|
||||||
|
hi SpecialKey ctermfg=81
|
||||||
|
|
||||||
|
hi MatchParen ctermfg=16 ctermbg=208 cterm=bold
|
||||||
|
hi ModeMsg ctermfg=229
|
||||||
|
hi MoreMsg ctermfg=229
|
||||||
|
hi Operator ctermfg=161
|
||||||
|
|
||||||
|
" complete menu
|
||||||
|
hi Pmenu ctermfg=81 ctermbg=16
|
||||||
|
hi PmenuSel ctermbg=244
|
||||||
|
hi PmenuSbar ctermbg=232
|
||||||
|
hi PmenuThumb ctermfg=81
|
||||||
|
|
||||||
|
hi PreCondit ctermfg=118 cterm=bold
|
||||||
|
hi PreProc ctermfg=118
|
||||||
|
hi Question ctermfg=81
|
||||||
|
hi Repeat ctermfg=161 cterm=bold
|
||||||
|
hi Search ctermfg=253 ctermbg=66
|
||||||
|
|
||||||
|
" marks column
|
||||||
|
hi SignColumn ctermfg=118 ctermbg=235
|
||||||
|
hi SpecialChar ctermfg=161 cterm=bold
|
||||||
|
hi SpecialComment ctermfg=245 cterm=bold
|
||||||
|
hi Special ctermfg=81
|
||||||
|
|
||||||
|
hi Statement ctermfg=161 cterm=bold
|
||||||
|
hi StatusLine ctermfg=238 ctermbg=253
|
||||||
|
hi StatusLineNC ctermfg=244 ctermbg=232
|
||||||
|
hi StorageClass ctermfg=208
|
||||||
|
hi Structure ctermfg=81
|
||||||
|
hi Tag ctermfg=161
|
||||||
|
hi Title ctermfg=166
|
||||||
|
hi Todo ctermfg=231 ctermbg=232 cterm=bold
|
||||||
|
|
||||||
|
hi Typedef ctermfg=81
|
||||||
|
hi Type ctermfg=81 cterm=none
|
||||||
|
hi Underlined ctermfg=244 cterm=underline
|
||||||
|
|
||||||
|
hi VertSplit ctermfg=244 ctermbg=232 cterm=bold
|
||||||
|
hi VisualNOS ctermbg=238
|
||||||
|
hi Visual ctermbg=235
|
||||||
|
hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold
|
||||||
|
hi WildMenu ctermfg=81 ctermbg=16
|
||||||
|
|
||||||
|
" changé
|
||||||
|
hi Comment ctermfg=245
|
||||||
|
|
||||||
|
hi CursorColumn ctermbg=234
|
||||||
|
hi ColorColumn ctermbg=234
|
||||||
|
|
||||||
|
" changé
|
||||||
|
"hi LineNr ctermfg=250 ctermbg=234
|
||||||
|
hi LineNr ctermfg=240 ctermbg=235
|
||||||
|
|
||||||
|
hi NonText ctermfg=59
|
||||||
|
hi SpecialKey ctermfg=59
|
||||||
|
end
|
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Met à jour un plugin via git
|
||||||
|
#
|
||||||
|
function majGit() {
|
||||||
|
plugin=$1
|
||||||
|
echo -e "mise à jour de \033[1m$plugin\033[0m..."
|
||||||
|
cd ~/.vim/bundle/$plugin && git pull
|
||||||
|
}
|
||||||
|
|
||||||
|
majGit "html5.vim"
|
||||||
|
majGit "syntastic"
|
||||||
|
majGit "supertab"
|
||||||
|
majGit "vim-jquery"
|
||||||
|
majGit "nerdcommenter"
|
||||||
|
majGit "vim-pathogen"
|
||||||
|
majGit "htmljinja"
|
||||||
|
majGit "Better-CSS-Syntax-for-Vim"
|
||||||
|
majGit "nerdtree"
|
||||||
|
majGit "tagbar"
|
||||||
|
majGit "vim-airline"
|
||||||
|
majGit "vim-bufferline"
|
||||||
|
majGit "vim-fugitive"
|
||||||
|
|
@ -0,0 +1,594 @@
|
|||||||
|
" DoxyGen syntax hilighting extension for c/c++/idl/java
|
||||||
|
" Language: doxygen on top of c, cpp, idl, java, php
|
||||||
|
" Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net>
|
||||||
|
" Author: Michael Geddes
|
||||||
|
" Last Change: Jan 2009
|
||||||
|
" Version: 1.23
|
||||||
|
"
|
||||||
|
" Copyright 2004-2008 Michael Geddes
|
||||||
|
" Please feel free to use, modify & distribute all or part of this script,
|
||||||
|
" providing this copyright message remains.
|
||||||
|
" I would appreciate being acknowledged in any derived scripts, and would
|
||||||
|
" appreciate and welcome any updates, modifications or suggestions.
|
||||||
|
|
||||||
|
" NOTE: Comments welcome!
|
||||||
|
"
|
||||||
|
" There are two variables that control the syntax highlighting produced by this
|
||||||
|
" script:
|
||||||
|
" doxygen_enhanced_colour - Use the (non-standard) original colours designed
|
||||||
|
" for this highlighting.
|
||||||
|
" doxygen_my_rendering - Disable the HTML bold/italic/underline rendering.
|
||||||
|
"
|
||||||
|
" A brief description without '.' or '!' will cause the end comment
|
||||||
|
" character to be marked as an error. You can define the colour of this using
|
||||||
|
" the highlight doxygenErrorComment.
|
||||||
|
" A \link without an \endlink will cause an error highlight on the end-comment.
|
||||||
|
" This is defined by doxygenLinkError
|
||||||
|
"
|
||||||
|
" The variable g:doxygen_codeword_font can be set to the guifont for marking \c
|
||||||
|
" words - a 'typewriter' like font normally. Spaces must be escaped. It can
|
||||||
|
" also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord
|
||||||
|
" can be used to override it.
|
||||||
|
"
|
||||||
|
" By default, highlighting is done assuming you have the JAVADOC_AUTOBRIEF
|
||||||
|
" setting turned on in your Doxygen configuration. If you don't, you
|
||||||
|
" can set the variable g:doxygen_javadoc_autobrief to 0 to have the
|
||||||
|
" highlighting more accurately reflect the way Doxygen will interpret your
|
||||||
|
" comments.
|
||||||
|
"
|
||||||
|
" Support for cpp, c, idl, doxygen and php.
|
||||||
|
"
|
||||||
|
" Special thanks to: Wu Yongwei, Toby Allsopp
|
||||||
|
"
|
||||||
|
|
||||||
|
if exists('b:suppress_doxygen')
|
||||||
|
unlet b:suppress_doxygen
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
try
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Start of Doxygen syntax hilighting:
|
||||||
|
"
|
||||||
|
|
||||||
|
" C/C++ Style line comments
|
||||||
|
syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion
|
||||||
|
syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion
|
||||||
|
syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion
|
||||||
|
syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
|
||||||
|
|
||||||
|
" Single line brief followed by multiline comment.
|
||||||
|
syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
|
||||||
|
" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
|
||||||
|
syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
|
||||||
|
|
||||||
|
" Skip empty lines at the start for when comments start on the 2nd/3rd line.
|
||||||
|
syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl
|
||||||
|
syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
|
||||||
|
syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
|
||||||
|
|
||||||
|
|
||||||
|
" Match the Starting pattern (effectively creating the start of a BNF)
|
||||||
|
if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
|
||||||
|
syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
|
||||||
|
syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
|
||||||
|
" Match the first sentence as a brief comment
|
||||||
|
if ! exists('g:doxygen_end_punctuation')
|
||||||
|
let g:doxygen_end_punctuation='[.]'
|
||||||
|
endif
|
||||||
|
|
||||||
|
exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody'
|
||||||
|
|
||||||
|
syn match doxygenBriefEndComment +\*/+ contained
|
||||||
|
|
||||||
|
exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend'
|
||||||
|
syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite
|
||||||
|
else
|
||||||
|
syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
|
||||||
|
syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite
|
||||||
|
syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
|
||||||
|
syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
|
||||||
|
syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
|
||||||
|
|
||||||
|
syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipwhite keepend
|
||||||
|
|
||||||
|
" Match a '<' for applying a comment to the previous element.
|
||||||
|
syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite
|
||||||
|
|
||||||
|
if exists("c_comment_strings")
|
||||||
|
" These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s
|
||||||
|
" then turn the comments back into normal C comments.
|
||||||
|
syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
|
||||||
|
syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
|
||||||
|
else
|
||||||
|
syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError
|
||||||
|
syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Special commands at the start of the area: starting with '@' or '\'
|
||||||
|
syn region doxygenStartSpecial contained start=+[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend
|
||||||
|
syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite
|
||||||
|
|
||||||
|
"syn region doxygenBodyBit contained start=+$+
|
||||||
|
|
||||||
|
" The main body of a doxygen comment.
|
||||||
|
syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell
|
||||||
|
|
||||||
|
" These allow the skipping of comment continuation '*' characters.
|
||||||
|
syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
|
||||||
|
|
||||||
|
" Catch a Brief comment without punctuation - flag it as an error but
|
||||||
|
" make sure the end comment is picked up also.
|
||||||
|
syn match doxygenErrorComment contained +\*/+
|
||||||
|
|
||||||
|
|
||||||
|
" Skip empty lines at the start for when comments start on the 2nd/3rd line.
|
||||||
|
if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
|
||||||
|
syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
|
||||||
|
syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
|
||||||
|
else
|
||||||
|
syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
|
||||||
|
syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Match an [@\]brief so that it moves to body-mode.
|
||||||
|
"
|
||||||
|
"
|
||||||
|
" syn match doxygenBriefLine contained
|
||||||
|
syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
|
||||||
|
syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
|
||||||
|
|
||||||
|
|
||||||
|
" Create the single word matching special identifiers.
|
||||||
|
|
||||||
|
fun! s:DxyCreateSmallSpecial( kword, name )
|
||||||
|
|
||||||
|
let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#$]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
|
||||||
|
exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word'
|
||||||
|
exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
|
||||||
|
endfun
|
||||||
|
call s:DxyCreateSmallSpecial('p', 'Code')
|
||||||
|
call s:DxyCreateSmallSpecial('c', 'Code')
|
||||||
|
call s:DxyCreateSmallSpecial('b', 'Bold')
|
||||||
|
call s:DxyCreateSmallSpecial('e', 'Emphasised')
|
||||||
|
call s:DxyCreateSmallSpecial('em', 'Emphasised')
|
||||||
|
call s:DxyCreateSmallSpecial('a', 'Argument')
|
||||||
|
call s:DxyCreateSmallSpecial('ref', 'Ref')
|
||||||
|
delfun s:DxyCreateSmallSpecial
|
||||||
|
|
||||||
|
syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
|
||||||
|
|
||||||
|
" Now for special characters
|
||||||
|
syn match doxygenSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion
|
||||||
|
" doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
|
||||||
|
"
|
||||||
|
syn match doxygenGroupDefine contained +@\@<=[{}]+
|
||||||
|
syn match doxygenGroupDefineSpecial contained +@\ze[{}]+
|
||||||
|
|
||||||
|
syn match doxygenErrorSpecial contained +\s+
|
||||||
|
|
||||||
|
" Match parameters and retvals (highlighting the first word as special).
|
||||||
|
syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
|
||||||
|
syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
|
||||||
|
syn match doxygenParamName contained +\$\?[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
|
||||||
|
syn keyword doxygenRetval contained retval throw exception page nextgroup=doxygenParamName skipwhite
|
||||||
|
|
||||||
|
" Match one line identifiers.
|
||||||
|
syn keyword doxygenOther contained addindex anchor
|
||||||
|
\ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
|
||||||
|
\ example htmlonly image include ingroup internal latexonly line
|
||||||
|
\ overload relates relatesalso sa skip skipline
|
||||||
|
\ until verbinclude version addtogroup htmlinclude copydoc dotfile
|
||||||
|
\ xmlonly endxmlonly
|
||||||
|
\ nextgroup=doxygenSpecialOnelineDesc
|
||||||
|
|
||||||
|
syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
|
||||||
|
syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
|
||||||
|
|
||||||
|
syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
|
||||||
|
syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
|
||||||
|
|
||||||
|
if exists('b:current_syntax')
|
||||||
|
let b:doxygen_syntax_save=b:current_syntax
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn include @Dotx syntax/dot.vim
|
||||||
|
|
||||||
|
if exists('b:doxygen_syntax_save')
|
||||||
|
let b:current_syntax=b:doxygen_syntax_save
|
||||||
|
unlet b:doxygen_syntax_save
|
||||||
|
else
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx
|
||||||
|
syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
|
||||||
|
|
||||||
|
" Match single line identifiers.
|
||||||
|
syn keyword doxygenBOther contained class enum dir file fn mainpage interface
|
||||||
|
\ namespace struct typedef union var def name
|
||||||
|
\ nextgroup=doxygenSpecialTypeOnelineDesc
|
||||||
|
|
||||||
|
syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
|
||||||
|
syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
|
||||||
|
|
||||||
|
syn keyword doxygenOther contained arg author date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
|
||||||
|
syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
|
||||||
|
syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
|
||||||
|
syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
|
||||||
|
|
||||||
|
" Handle \link, \endlink, highlighting the link-to and the link text bits separately.
|
||||||
|
syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
|
||||||
|
syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
|
||||||
|
|
||||||
|
syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
|
||||||
|
syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
|
||||||
|
syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest
|
||||||
|
syn match doxygenLinkError "\*/" contained
|
||||||
|
" #Link hilighting.
|
||||||
|
syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
|
||||||
|
syn match doxygenHashSpecial /#/ contained
|
||||||
|
syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained
|
||||||
|
|
||||||
|
" Handle \page. This does not use doxygenBrief.
|
||||||
|
syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
|
||||||
|
syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
|
||||||
|
syn region doxygenPageDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
|
||||||
|
syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc
|
||||||
|
|
||||||
|
" Handle section
|
||||||
|
syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
|
||||||
|
syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
|
||||||
|
syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
|
||||||
|
|
||||||
|
" Does the one-line description for the one-line type identifiers.
|
||||||
|
syn region doxygenSpecialTypeOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
|
||||||
|
syn region doxygenSpecialOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
|
||||||
|
|
||||||
|
" Handle the multiline description for the multiline type identifiers.
|
||||||
|
" Continue until an 'empty' line (can contain a '*' continuation) or until the
|
||||||
|
" next whole-line @ command \ command.
|
||||||
|
syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend
|
||||||
|
syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
|
||||||
|
|
||||||
|
" Handle special cases 'bold' and 'group'
|
||||||
|
syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
|
||||||
|
syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite
|
||||||
|
syn match doxygenSpecialHeading +.\++ contained skipwhite
|
||||||
|
syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite
|
||||||
|
syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite
|
||||||
|
|
||||||
|
" Handle special symbol identifiers @$, @\, @$ etc
|
||||||
|
syn match doxygenSymbol contained +[$\\&<>#n]+
|
||||||
|
|
||||||
|
" Simplistic handling of formula regions
|
||||||
|
syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
|
||||||
|
syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped
|
||||||
|
syn match doxygenFormulaEscaped contained "."
|
||||||
|
syn match doxygenFormulaKeyword contained "[a-z]\+"
|
||||||
|
syn match doxygenFormulaOperator contained +[_^]+
|
||||||
|
|
||||||
|
syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom
|
||||||
|
syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator
|
||||||
|
|
||||||
|
" Add TODO hilighting.
|
||||||
|
syn keyword doxygenTODO contained TODO README XXX FIXME
|
||||||
|
|
||||||
|
" Supported HTML subset. Not perfect, but okay.
|
||||||
|
syn case ignore
|
||||||
|
syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueComment,doxygenHtmlVar
|
||||||
|
syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite
|
||||||
|
syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
|
||||||
|
syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
|
||||||
|
syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite
|
||||||
|
syn case match
|
||||||
|
syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);"
|
||||||
|
|
||||||
|
syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
|
||||||
|
|
||||||
|
syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment
|
||||||
|
" Html Support
|
||||||
|
syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
|
||||||
|
hi link doxygenHtmlLink Underlined
|
||||||
|
|
||||||
|
syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
|
||||||
|
syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
|
||||||
|
syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
|
||||||
|
syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
|
||||||
|
syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
|
||||||
|
syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
|
||||||
|
|
||||||
|
syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
|
||||||
|
|
||||||
|
syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell
|
||||||
|
syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
|
||||||
|
syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
|
||||||
|
syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell
|
||||||
|
syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
|
||||||
|
syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
|
||||||
|
|
||||||
|
syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell
|
||||||
|
|
||||||
|
" Prevent the doxygen contained matches from leaking into the c/rc groups.
|
||||||
|
syn cluster cParenGroup add=doxygen.*
|
||||||
|
syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
|
||||||
|
syn cluster cPreProcGroup add=doxygen.*
|
||||||
|
syn cluster cMultiGroup add=doxygen.*
|
||||||
|
syn cluster rcParenGroup add=doxygen.*
|
||||||
|
syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL
|
||||||
|
syn cluster rcGroup add=doxygen.*
|
||||||
|
|
||||||
|
let s:my_syncolor=0
|
||||||
|
if !exists(':SynColor')
|
||||||
|
command -nargs=+ SynColor hi def <args>
|
||||||
|
let s:my_syncolor=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:my_synlink=0
|
||||||
|
if !exists(':SynLink')
|
||||||
|
command -nargs=+ SynLink hi def link <args>
|
||||||
|
let s:my_synlink=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
try
|
||||||
|
"let did_doxygen_syntax_inits = &background
|
||||||
|
hi doxygen_Dummy guifg=black
|
||||||
|
|
||||||
|
fun! s:Doxygen_Hilights_Base()
|
||||||
|
SynLink doxygenHtmlSpecial Special
|
||||||
|
SynLink doxygenHtmlVar Type
|
||||||
|
SynLink doxygenHtmlExpr String
|
||||||
|
|
||||||
|
SynLink doxygenSmallSpecial SpecialChar
|
||||||
|
|
||||||
|
SynLink doxygenSpecialCodeWord doxygenSmallSpecial
|
||||||
|
SynLink doxygenSpecialBoldWord doxygenSmallSpecial
|
||||||
|
SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial
|
||||||
|
SynLink doxygenSpecialArgumentWord doxygenSmallSpecial
|
||||||
|
|
||||||
|
" SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
|
||||||
|
SynLink doxygenFormulaKeyword Keyword
|
||||||
|
"SynColor doxygenFormulaEscaped ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
|
||||||
|
SynLink doxygenFormulaEscaped Special
|
||||||
|
SynLink doxygenFormulaOperator Operator
|
||||||
|
SynLink doxygenFormula Statement
|
||||||
|
SynLink doxygenSymbol Constant
|
||||||
|
SynLink doxygenSpecial Special
|
||||||
|
SynLink doxygenFormulaSpecial Special
|
||||||
|
"SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue
|
||||||
|
endfun
|
||||||
|
call s:Doxygen_Hilights_Base()
|
||||||
|
|
||||||
|
fun! s:Doxygen_Hilights()
|
||||||
|
" Pick a sensible default for 'codeword'.
|
||||||
|
let font=''
|
||||||
|
if exists('g:doxygen_codeword_font')
|
||||||
|
if g:doxygen_codeword_font !~ '\<\k\+='
|
||||||
|
let font='font='.g:doxygen_codeword_font
|
||||||
|
else
|
||||||
|
let font=g:doxygen_codeword_font
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Try and pick a font (only some platforms have been tested).
|
||||||
|
if has('gui_running')
|
||||||
|
if has('gui_gtk2')
|
||||||
|
if &guifont == ''
|
||||||
|
let font="font='FreeSerif 12'"
|
||||||
|
else
|
||||||
|
let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'"
|
||||||
|
endif
|
||||||
|
|
||||||
|
elseif has('gui_win32') || has('gui_win16') || has('gui_win95')
|
||||||
|
|
||||||
|
if exists('g:doxygen_use_bitsream_vera') && g:doxygen_use_bitsream_vera
|
||||||
|
let font_base='Bitstream_Vera_Sans_Mono'
|
||||||
|
else
|
||||||
|
let font_base='Lucida_Console'
|
||||||
|
endif
|
||||||
|
if &guifont == ''
|
||||||
|
let font='font='.font_base.':h10'
|
||||||
|
else
|
||||||
|
let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*')
|
||||||
|
endif
|
||||||
|
elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
|
||||||
|
if &guifont == ''
|
||||||
|
let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1'
|
||||||
|
else
|
||||||
|
" let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','')
|
||||||
|
" The above line works, but it is hard to expect the combination of
|
||||||
|
" the two fonts will look good.
|
||||||
|
endif
|
||||||
|
elseif has('gui_kde')
|
||||||
|
" let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if font=='' | let font='gui=bold' | endif
|
||||||
|
exe 'SynColor doxygenCodeWord term=bold cterm=bold '.font
|
||||||
|
if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour)
|
||||||
|
if &background=='light'
|
||||||
|
SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed
|
||||||
|
SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold
|
||||||
|
SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue
|
||||||
|
SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold
|
||||||
|
SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold
|
||||||
|
SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa
|
||||||
|
SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold
|
||||||
|
SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold
|
||||||
|
SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold
|
||||||
|
SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen
|
||||||
|
else
|
||||||
|
SynColor doxygenComment ctermfg=LightRed guifg=LightRed
|
||||||
|
SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic
|
||||||
|
SynColor doxygenBody ctermfg=Cyan guifg=LightBlue
|
||||||
|
SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold
|
||||||
|
SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold
|
||||||
|
SynColor doxygenParam ctermfg=LightGray guifg=LightGray
|
||||||
|
SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold
|
||||||
|
SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold
|
||||||
|
SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold
|
||||||
|
SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
SynLink doxygenComment SpecialComment
|
||||||
|
SynLink doxygenBrief Statement
|
||||||
|
SynLink doxygenBody Comment
|
||||||
|
SynLink doxygenSpecialTypeOnelineDesc Statement
|
||||||
|
SynLink doxygenBOther Constant
|
||||||
|
SynLink doxygenParam Function
|
||||||
|
SynLink doxygenParamName Define
|
||||||
|
SynLink doxygenSpecialOnelineDesc Statement
|
||||||
|
SynLink doxygenSpecialHeading Statement
|
||||||
|
SynLink doxygenPrev SpecialComment
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
call s:Doxygen_Hilights()
|
||||||
|
|
||||||
|
" This is still a proposal, but won't do any harm.
|
||||||
|
aug doxygengroup
|
||||||
|
au!
|
||||||
|
au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base()
|
||||||
|
au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights()
|
||||||
|
aug END
|
||||||
|
|
||||||
|
|
||||||
|
SynLink doxygenBody Comment
|
||||||
|
SynLink doxygenLine doxygenBody
|
||||||
|
SynLink doxygenTODO Todo
|
||||||
|
SynLink doxygenOtherTODO Todo
|
||||||
|
SynLink doxygenOtherWARN Todo
|
||||||
|
SynLink doxygenOtherBUG Todo
|
||||||
|
|
||||||
|
SynLink doxygenErrorSpecial Error
|
||||||
|
SynLink doxygenErrorEnd Error
|
||||||
|
SynLink doxygenErrorComment Error
|
||||||
|
SynLink doxygenLinkError Error
|
||||||
|
SynLink doxygenBriefSpecial doxygenSpecial
|
||||||
|
SynLink doxygenHashSpecial doxygenSpecial
|
||||||
|
SynLink doxygenGroupDefineSpecial doxygenSpecial
|
||||||
|
SynLink doxygenEndlinkSpecial doxygenSpecial
|
||||||
|
SynLink doxygenCodeRegionSpecial doxygenSpecial
|
||||||
|
SynLink doxygenVerbatimRegionSpecial doxygenSpecial
|
||||||
|
SynLink doxygenDotRegionSpecial doxygenSpecial
|
||||||
|
SynLink doxygenGroupDefine doxygenParam
|
||||||
|
|
||||||
|
SynLink doxygenSpecialMultilineDesc doxygenSpecialOnelineDesc
|
||||||
|
SynLink doxygenFormulaEnds doxygenSpecial
|
||||||
|
SynLink doxygenBold doxygenParam
|
||||||
|
SynLink doxygenBriefWord doxygenParam
|
||||||
|
SynLink doxygenRetval doxygenParam
|
||||||
|
SynLink doxygenOther doxygenParam
|
||||||
|
SynLink doxygenStart doxygenComment
|
||||||
|
SynLink doxygenStart2 doxygenStart
|
||||||
|
SynLink doxygenComment2 doxygenComment
|
||||||
|
SynLink doxygenCommentL doxygenComment
|
||||||
|
SynLink doxygenContinueComment doxygenComment
|
||||||
|
SynLink doxygenSpecialContinueComment doxygenComment
|
||||||
|
SynLink doxygenSkipComment doxygenComment
|
||||||
|
SynLink doxygenEndComment doxygenComment
|
||||||
|
SynLink doxygenStartL doxygenComment
|
||||||
|
SynLink doxygenBriefEndComment doxygenComment
|
||||||
|
SynLink doxygenPrevL doxygenPrev
|
||||||
|
SynLink doxygenBriefL doxygenBrief
|
||||||
|
SynLink doxygenBriefLine doxygenBrief
|
||||||
|
SynLink doxygenHeaderLine doxygenSpecialHeading
|
||||||
|
SynLink doxygenStartSkip doxygenContinueComment
|
||||||
|
SynLink doxygenLinkWord doxygenParamName
|
||||||
|
SynLink doxygenLinkRest doxygenSpecialMultilineDesc
|
||||||
|
SynLink doxygenHyperLink doxygenLinkWord
|
||||||
|
SynLink doxygenHashLink doxygenLinkWord
|
||||||
|
|
||||||
|
SynLink doxygenPage doxygenSpecial
|
||||||
|
SynLink doxygenPagePage doxygenBOther
|
||||||
|
SynLink doxygenPageIdent doxygenParamName
|
||||||
|
SynLink doxygenPageDesc doxygenSpecialTypeOnelineDesc
|
||||||
|
|
||||||
|
SynLink doxygenSpecialIdent doxygenPageIdent
|
||||||
|
SynLink doxygenSpecialSectionDesc doxygenSpecialMultilineDesc
|
||||||
|
|
||||||
|
SynLink doxygenSpecialRefWord doxygenOther
|
||||||
|
SynLink doxygenRefWord doxygenPageIdent
|
||||||
|
SynLink doxygenContinueLinkComment doxygenComment
|
||||||
|
|
||||||
|
SynLink doxygenHtmlCh Function
|
||||||
|
SynLink doxygenHtmlCmd Statement
|
||||||
|
SynLink doxygenHtmlBoldItalicUnderline doxygenHtmlBoldUnderlineItalic
|
||||||
|
SynLink doxygenHtmlUnderlineBold doxygenHtmlBoldUnderline
|
||||||
|
SynLink doxygenHtmlUnderlineItalicBold doxygenHtmlBoldUnderlineItalic
|
||||||
|
SynLink doxygenHtmlUnderlineBoldItalic doxygenHtmlBoldUnderlineItalic
|
||||||
|
SynLink doxygenHtmlItalicUnderline doxygenHtmlUnderlineItalic
|
||||||
|
SynLink doxygenHtmlItalicBold doxygenHtmlBoldItalic
|
||||||
|
SynLink doxygenHtmlItalicBoldUnderline doxygenHtmlBoldUnderlineItalic
|
||||||
|
SynLink doxygenHtmlItalicUnderlineBold doxygenHtmlBoldUnderlineItalic
|
||||||
|
SynLink doxygenHtmlLink Underlined
|
||||||
|
|
||||||
|
SynLink doxygenParamDirection StorageClass
|
||||||
|
|
||||||
|
|
||||||
|
if !exists("doxygen_my_rendering") && !exists("html_my_rendering")
|
||||||
|
SynColor doxygenBoldWord term=bold cterm=bold gui=bold
|
||||||
|
SynColor doxygenEmphasisedWord term=italic cterm=italic gui=italic
|
||||||
|
SynLink doxygenArgumentWord doxygenEmphasisedWord
|
||||||
|
SynLink doxygenHtmlCode doxygenCodeWord
|
||||||
|
SynLink doxygenHtmlBold doxygenBoldWord
|
||||||
|
SynColor doxygenHtmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
|
||||||
|
SynColor doxygenHtmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
|
||||||
|
SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
|
||||||
|
SynColor doxygenHtmlUnderline term=underline cterm=underline gui=underline
|
||||||
|
SynColor doxygenHtmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
|
||||||
|
SynColor doxygenHtmlItalic term=italic cterm=italic gui=italic
|
||||||
|
endif
|
||||||
|
|
||||||
|
finally
|
||||||
|
if s:my_synlink | delcommand SynLink | endif
|
||||||
|
if s:my_syncolor | delcommand SynColor | endif
|
||||||
|
endtry
|
||||||
|
|
||||||
|
if &syntax=='idl'
|
||||||
|
syn cluster idlCommentable add=doxygenComment,doxygenCommentL
|
||||||
|
endif
|
||||||
|
|
||||||
|
"syn sync clear
|
||||||
|
"syn sync maxlines=500
|
||||||
|
"syn sync minlines=50
|
||||||
|
syn sync match doxygenComment groupthere cComment "/\@<!/\*"
|
||||||
|
syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]"
|
||||||
|
"syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend
|
||||||
|
syn sync match doxygenSyncEndComment groupthere NONE "\*/"
|
||||||
|
|
||||||
|
if !exists('b:current_syntax')
|
||||||
|
let b:current_syntax = "doxygen"
|
||||||
|
else
|
||||||
|
let b:current_syntax = b:current_syntax.'.doxygen'
|
||||||
|
endif
|
||||||
|
|
||||||
|
finally
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
endtry
|
||||||
|
|
||||||
|
" vim:et sw=2 sts=2
|
@ -0,0 +1,181 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: DTD (Document Type Definition for XML)
|
||||||
|
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||||
|
" Author and previous maintainer:
|
||||||
|
" Daniel Amyot <damyot@site.uottawa.ca>
|
||||||
|
" Last Change: Tue, 27 Apr 2004 14:54:59 CEST
|
||||||
|
" Filenames: *.dtd
|
||||||
|
"
|
||||||
|
" REFERENCES:
|
||||||
|
" http://www.w3.org/TR/html40/
|
||||||
|
" http://www.w3.org/TR/NOTE-html-970421
|
||||||
|
"
|
||||||
|
" TODO:
|
||||||
|
" - improve synchronizing.
|
||||||
|
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
let __dtd_cpo_save__ = &cpo
|
||||||
|
set cpo&
|
||||||
|
else
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let s:dtd_cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("dtd_ignore_case")
|
||||||
|
" I prefer having the case takes into consideration.
|
||||||
|
syn case match
|
||||||
|
else
|
||||||
|
syn case ignore
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" the following line makes the opening <! and
|
||||||
|
" closing > highlighted using 'dtdFunction'.
|
||||||
|
"
|
||||||
|
" PROVIDES: @dtdTagHook
|
||||||
|
"
|
||||||
|
syn region dtdTag matchgroup=dtdFunction
|
||||||
|
\ start=+<!+ end=+>+ matchgroup=NONE
|
||||||
|
\ contains=dtdTag,dtdTagName,dtdError,dtdComment,dtdString,dtdAttrType,dtdAttrDef,dtdEnum,dtdParamEntityInst,dtdParamEntityDecl,dtdCard,@dtdTagHook
|
||||||
|
|
||||||
|
if !exists("dtd_no_tag_errors")
|
||||||
|
" mark everything as an error which starts with a <!
|
||||||
|
" and is not overridden later. If this is annoying,
|
||||||
|
" it can be switched off by setting the variable
|
||||||
|
" dtd_no_tag_errors.
|
||||||
|
syn region dtdError contained start=+<!+lc=2 end=+>+
|
||||||
|
endif
|
||||||
|
|
||||||
|
" if this is a html like comment hightlight also
|
||||||
|
" the opening <! and the closing > as Comment.
|
||||||
|
syn region dtdComment start=+<![ \t]*--+ end=+-->+ contains=dtdTodo,@Spell
|
||||||
|
|
||||||
|
|
||||||
|
" proper DTD comment
|
||||||
|
syn region dtdComment contained start=+--+ end=+--+ contains=dtdTodo,@Spell
|
||||||
|
|
||||||
|
|
||||||
|
" Start tags (keywords). This is contained in dtdFunction.
|
||||||
|
" Note that everything not contained here will be marked
|
||||||
|
" as error.
|
||||||
|
syn match dtdTagName contained +<!\(ATTLIST\|DOCTYPE\|ELEMENT\|ENTITY\|NOTATION\|SHORTREF\|USEMAP\|\[\)+lc=2,hs=s+2
|
||||||
|
|
||||||
|
|
||||||
|
" wildcards and operators
|
||||||
|
syn match dtdCard contained "|"
|
||||||
|
syn match dtdCard contained ","
|
||||||
|
" evenutally overridden by dtdEntity
|
||||||
|
syn match dtdCard contained "&"
|
||||||
|
syn match dtdCard contained "?"
|
||||||
|
syn match dtdCard contained "\*"
|
||||||
|
syn match dtdCard contained "+"
|
||||||
|
|
||||||
|
" ...and finally, special cases.
|
||||||
|
syn match dtdCard "ANY"
|
||||||
|
syn match dtdCard "EMPTY"
|
||||||
|
|
||||||
|
if !exists("dtd_no_param_entities")
|
||||||
|
|
||||||
|
" highlight parameter entity declarations
|
||||||
|
" and instances. Note that the closing `;'
|
||||||
|
" is optional.
|
||||||
|
|
||||||
|
" instances
|
||||||
|
syn region dtdParamEntityInst oneline matchgroup=dtdParamEntityPunct
|
||||||
|
\ start="%[-_a-zA-Z0-9.]\+"he=s+1,rs=s+1
|
||||||
|
\ skip=+[-_a-zA-Z0-9.]+
|
||||||
|
\ end=";\|\>"
|
||||||
|
\ matchgroup=NONE contains=dtdParamEntityPunct
|
||||||
|
syn match dtdParamEntityPunct contained "\."
|
||||||
|
|
||||||
|
" declarations
|
||||||
|
" syn region dtdParamEntityDecl oneline matchgroup=dtdParamEntityDPunct start=+<!ENTITY % +lc=8 skip=+[-_a-zA-Z0-9.]+ matchgroup=NONE end="\>" contains=dtdParamEntityDPunct
|
||||||
|
syn match dtdParamEntityDecl +<!ENTITY % [-_a-zA-Z0-9.]*+lc=8 contains=dtdParamEntityDPunct
|
||||||
|
syn match dtdParamEntityDPunct contained "%\|\."
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
" &entities; compare with xml
|
||||||
|
syn match dtdEntity "&[^; \t]*;" contains=dtdEntityPunct
|
||||||
|
syn match dtdEntityPunct contained "[&.;]"
|
||||||
|
|
||||||
|
" Strings are between quotes
|
||||||
|
syn region dtdString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard
|
||||||
|
syn region dtdString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard
|
||||||
|
|
||||||
|
" Enumeration of elements or data between parenthesis
|
||||||
|
"
|
||||||
|
" PROVIDES: @dtdEnumHook
|
||||||
|
"
|
||||||
|
syn region dtdEnum matchgroup=dtdType start="(" end=")" matchgroup=NONE contains=dtdEnum,dtdParamEntityInst,dtdCard,@dtdEnumHook
|
||||||
|
|
||||||
|
"Attribute types
|
||||||
|
syn keyword dtdAttrType NMTOKEN ENTITIES NMTOKENS ID CDATA
|
||||||
|
syn keyword dtdAttrType IDREF IDREFS
|
||||||
|
" ENTITY has to treated special for not overriding <!ENTITY
|
||||||
|
syn match dtdAttrType +[^!]\<ENTITY+
|
||||||
|
|
||||||
|
"Attribute Definitions
|
||||||
|
syn match dtdAttrDef "#REQUIRED"
|
||||||
|
syn match dtdAttrDef "#IMPLIED"
|
||||||
|
syn match dtdAttrDef "#FIXED"
|
||||||
|
|
||||||
|
syn case match
|
||||||
|
" define some common keywords to mark TODO
|
||||||
|
" and important sections inside comments.
|
||||||
|
syn keyword dtdTodo contained TODO FIXME XXX
|
||||||
|
|
||||||
|
syn sync lines=250
|
||||||
|
|
||||||
|
" Define the default highlighting.
|
||||||
|
" For version 5.7 and earlier: only when not done already
|
||||||
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||||
|
if version >= 508 || !exists("did_dtd_syn_inits")
|
||||||
|
if version < 508
|
||||||
|
let did_dtd_syn_inits = 1
|
||||||
|
command -nargs=+ HiLink hi link <args>
|
||||||
|
else
|
||||||
|
command -nargs=+ HiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
" The default highlighting.
|
||||||
|
HiLink dtdFunction Function
|
||||||
|
HiLink dtdTag Normal
|
||||||
|
HiLink dtdType Type
|
||||||
|
HiLink dtdAttrType dtdType
|
||||||
|
HiLink dtdAttrDef dtdType
|
||||||
|
HiLink dtdConstant Constant
|
||||||
|
HiLink dtdString dtdConstant
|
||||||
|
HiLink dtdEnum dtdConstant
|
||||||
|
HiLink dtdCard dtdFunction
|
||||||
|
|
||||||
|
HiLink dtdEntity Statement
|
||||||
|
HiLink dtdEntityPunct dtdType
|
||||||
|
HiLink dtdParamEntityInst dtdConstant
|
||||||
|
HiLink dtdParamEntityPunct dtdType
|
||||||
|
HiLink dtdParamEntityDecl dtdType
|
||||||
|
HiLink dtdParamEntityDPunct dtdComment
|
||||||
|
|
||||||
|
HiLink dtdComment Comment
|
||||||
|
HiLink dtdTagName Statement
|
||||||
|
HiLink dtdError Error
|
||||||
|
HiLink dtdTodo Todo
|
||||||
|
|
||||||
|
delcommand HiLink
|
||||||
|
endif
|
||||||
|
|
||||||
|
if version < 600
|
||||||
|
let &cpo = __dtd_cpo_save__
|
||||||
|
unlet __dtd_cpo_save__
|
||||||
|
else
|
||||||
|
let &cpo = s:dtd_cpo_save
|
||||||
|
unlet s:dtd_cpo_save
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "dtd"
|
||||||
|
|
||||||
|
" vim: ts=8
|
@ -0,0 +1,346 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: XML
|
||||||
|
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||||
|
" Author and previous maintainer:
|
||||||
|
" Paul Siegmann <pauls@euronet.nl>
|
||||||
|
" Last Change: 2009-07-13 21:26:55
|
||||||
|
" Filenames: *.xml
|
||||||
|
" $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $
|
||||||
|
|
||||||
|
" CONFIGURATION:
|
||||||
|
" syntax folding can be turned on by
|
||||||
|
"
|
||||||
|
" let g:xml_syntax_folding = 1
|
||||||
|
"
|
||||||
|
" before the syntax file gets loaded (e.g. in ~/.vimrc).
|
||||||
|
" This might slow down syntax highlighting significantly,
|
||||||
|
" especially for large files.
|
||||||
|
"
|
||||||
|
" CREDITS:
|
||||||
|
" The original version was derived by Paul Siegmann from
|
||||||
|
" Claudio Fleiner's html.vim.
|
||||||
|
"
|
||||||
|
" REFERENCES:
|
||||||
|
" [1] http://www.w3.org/TR/2000/REC-xml-20001006
|
||||||
|
" [2] http://www.w3.org/XML/1998/06/xmlspec-report-19980910.htm
|
||||||
|
"
|
||||||
|
" as <hirauchi@kiwi.ne.jp> pointed out according to reference [1]
|
||||||
|
"
|
||||||
|
" 2.3 Common Syntactic Constructs
|
||||||
|
" [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
|
||||||
|
" [5] Name ::= (Letter | '_' | ':') (NameChar)*
|
||||||
|
"
|
||||||
|
" NOTE:
|
||||||
|
" 1) empty tag delimiters "/>" inside attribute values (strings)
|
||||||
|
" confuse syntax highlighting.
|
||||||
|
" 2) for large files, folding can be pretty slow, especially when
|
||||||
|
" loading a file the first time and viewoptions contains 'folds'
|
||||||
|
" so that folds of previous sessions are applied.
|
||||||
|
" Don't use 'foldmethod=syntax' in this case.
|
||||||
|
|
||||||
|
|
||||||
|
" Quit when a syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:xml_cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
" mark illegal characters
|
||||||
|
syn match xmlError "[<&]"
|
||||||
|
|
||||||
|
" strings (inside tags) aka VALUES
|
||||||
|
"
|
||||||
|
" EXAMPLE:
|
||||||
|
"
|
||||||
|
" <tag foo.attribute = "value">
|
||||||
|
" ^^^^^^^
|
||||||
|
syn region xmlString contained start=+"+ end=+"+ contains=xmlEntity,@Spell display
|
||||||
|
syn region xmlString contained start=+'+ end=+'+ contains=xmlEntity,@Spell display
|
||||||
|
|
||||||
|
|
||||||
|
" punctuation (within attributes) e.g. <tag xml:foo.attribute ...>
|
||||||
|
" ^ ^
|
||||||
|
" syn match xmlAttribPunct +[-:._]+ contained display
|
||||||
|
syn match xmlAttribPunct +[:.]+ contained display
|
||||||
|
|
||||||
|
" no highlighting for xmlEqual (xmlEqual has no highlighting group)
|
||||||
|
syn match xmlEqual +=+ display
|
||||||
|
|
||||||
|
|
||||||
|
" attribute, everything before the '='
|
||||||
|
"
|
||||||
|
" PROVIDES: @xmlAttribHook
|
||||||
|
"
|
||||||
|
" EXAMPLE:
|
||||||
|
"
|
||||||
|
" <tag foo.attribute = "value">
|
||||||
|
" ^^^^^^^^^^^^^
|
||||||
|
"
|
||||||
|
syn match xmlAttrib
|
||||||
|
\ +[-'"<]\@<!\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>\(['">]\@!\|$\)+
|
||||||
|
\ contained
|
||||||
|
\ contains=xmlAttribPunct,@xmlAttribHook
|
||||||
|
\ display
|
||||||
|
|
||||||
|
|
||||||
|
" namespace spec
|
||||||
|
"
|
||||||
|
" PROVIDES: @xmlNamespaceHook
|
||||||
|
"
|
||||||
|
" EXAMPLE:
|
||||||
|
"
|
||||||
|
" <xsl:for-each select = "lola">
|
||||||
|
" ^^^
|
||||||
|
"
|
||||||
|
if exists("g:xml_namespace_transparent")
|
||||||
|
syn match xmlNamespace
|
||||||
|
\ +\(<\|</\)\@<=[^ /!?<>"':]\+[:]\@=+
|
||||||
|
\ contained
|
||||||
|
\ contains=@xmlNamespaceHook
|
||||||
|
\ transparent
|
||||||
|
\ display
|
||||||
|
else
|
||||||
|
syn match xmlNamespace
|
||||||
|
\ +\(<\|</\)\@<=[^ /!?<>"':]\+[:]\@=+
|
||||||
|
\ contained
|
||||||
|
\ contains=@xmlNamespaceHook
|
||||||
|
\ display
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" tag name
|
||||||
|
"
|
||||||
|
" PROVIDES: @xmlTagHook
|
||||||
|
"
|
||||||
|
" EXAMPLE:
|
||||||
|
"
|
||||||
|
" <tag foo.attribute = "value">
|
||||||
|
" ^^^
|
||||||
|
"
|
||||||
|
syn match xmlTagName
|
||||||
|
\ +[<]\@<=[^ /!?<>"']\++
|
||||||
|
\ contained
|
||||||
|
\ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook
|
||||||
|
\ display
|
||||||
|
|
||||||
|
|
||||||
|
if exists('g:xml_syntax_folding')
|
||||||
|
|
||||||
|
" start tag
|
||||||
|
" use matchgroup=xmlTag to skip over the leading '<'
|
||||||
|
"
|
||||||
|
" PROVIDES: @xmlStartTagHook
|
||||||
|
"
|
||||||
|
" EXAMPLE:
|
||||||
|
"
|
||||||
|
" <tag id="whoops">
|
||||||
|
" s^^^^^^^^^^^^^^^e
|
||||||
|
"
|
||||||
|
syn region xmlTag
|
||||||
|
\ matchgroup=xmlTag start=+<[^ /!?<>"']\@=+
|
||||||
|
\ matchgroup=xmlTag end=+>+
|
||||||
|
\ contained
|
||||||
|
\ contains=xmlError,xmlTagName,xmlAttrib,xmlEqual,xmlString,@xmlStartTagHook
|
||||||
|
|
||||||
|
|
||||||
|
" highlight the end tag
|
||||||
|
"
|
||||||
|
" PROVIDES: @xmlTagHook
|
||||||
|
" (should we provide a separate @xmlEndTagHook ?)
|
||||||
|
"
|
||||||
|
" EXAMPLE:
|
||||||
|
"
|
||||||
|
" </tag>
|
||||||
|
" ^^^^^^
|
||||||
|
"
|
||||||
|
syn match xmlEndTag
|
||||||
|
\ +</[^ /!?<>"']\+>+
|
||||||
|
\ contained
|
||||||
|
\ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook
|
||||||
|
|
||||||
|
|
||||||
|
" tag elements with syntax-folding.
|
||||||
|
" NOTE: NO HIGHLIGHTING -- highlighting is done by contained elements
|
||||||
|
"
|
||||||
|
" PROVIDES: @xmlRegionHook
|
||||||
|
"
|
||||||
|
" EXAMPLE:
|
||||||
|
"
|
||||||
|
" <tag id="whoops">
|
||||||
|
" <!-- comment -->
|
||||||
|
" <another.tag></another.tag>
|
||||||
|
" <empty.tag/>
|
||||||
|
" some data
|
||||||
|
" </tag>
|
||||||
|
"
|
||||||
|
syn region xmlRegion
|
||||||
|
\ start=+<\z([^ /!?<>"']\+\)+
|
||||||
|
\ skip=+<!--\_.\{-}-->+
|
||||||
|
\ end=+</\z1\_\s\{-}>+
|
||||||
|
\ matchgroup=xmlEndTag end=+/>+
|
||||||
|
\ fold
|
||||||
|
\ contains=xmlTag,xmlEndTag,xmlCdata,xmlRegion,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook,@Spell
|
||||||
|
\ keepend
|
||||||
|
\ extend
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
" no syntax folding:
|
||||||
|
" - contained attribute removed
|
||||||
|
" - xmlRegion not defined
|
||||||
|
"
|
||||||
|
syn region xmlTag
|
||||||
|
\ matchgroup=xmlTag start=+<[^ /!?<>"']\@=+
|
||||||
|
\ matchgroup=xmlTag end=+>+
|
||||||
|
\ contains=xmlError,xmlTagName,xmlAttrib,xmlEqual,xmlString,@xmlStartTagHook
|
||||||
|
|
||||||
|
syn match xmlEndTag
|
||||||
|
\ +</[^ /!?<>"']\+>+
|
||||||
|
\ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" &entities; compare with dtd
|
||||||
|
syn match xmlEntity "&[^; \t]*;" contains=xmlEntityPunct
|
||||||
|
syn match xmlEntityPunct contained "[&.;]"
|
||||||
|
|
||||||
|
if exists('g:xml_syntax_folding')
|
||||||
|
|
||||||
|
" The real comments (this implements the comments as defined by xml,
|
||||||
|
" but not all xml pages actually conform to it. Errors are flagged.
|
||||||
|
syn region xmlComment
|
||||||
|
\ start=+<!+
|
||||||
|
\ end=+>+
|
||||||
|
\ contains=xmlCommentStart,xmlCommentError
|
||||||
|
\ extend
|
||||||
|
\ fold
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
" no syntax folding:
|
||||||
|
" - fold attribute removed
|
||||||
|
"
|
||||||
|
syn region xmlComment
|
||||||
|
\ start=+<!+
|
||||||
|
\ end=+>+
|
||||||
|
\ contains=xmlCommentStart,xmlCommentError
|
||||||
|
\ extend
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match xmlCommentStart contained "<!" nextgroup=xmlCommentPart
|
||||||
|
syn keyword xmlTodo contained TODO FIXME XXX
|
||||||
|
syn match xmlCommentError contained "[^><!]"
|
||||||
|
syn region xmlCommentPart
|
||||||
|
\ start=+--+
|
||||||
|
\ end=+--+
|
||||||
|
\ contained
|
||||||
|
\ contains=xmlTodo,@xmlCommentHook,@Spell
|
||||||
|
|
||||||
|
|
||||||
|
" CData sections
|
||||||
|
"
|
||||||
|
" PROVIDES: @xmlCdataHook
|
||||||
|
"
|
||||||
|
syn region xmlCdata
|
||||||
|
\ start=+<!\[CDATA\[+
|
||||||
|
\ end=+]]>+
|
||||||
|
\ contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook,@Spell
|
||||||
|
\ keepend
|
||||||
|
\ extend
|
||||||
|
|
||||||
|
" using the following line instead leads to corrupt folding at CDATA regions
|
||||||
|
" syn match xmlCdata +<!\[CDATA\[\_.\{-}]]>+ contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook
|
||||||
|
syn match xmlCdataStart +<!\[CDATA\[+ contained contains=xmlCdataCdata
|
||||||
|
syn keyword xmlCdataCdata CDATA contained
|
||||||
|
syn match xmlCdataEnd +]]>+ contained
|
||||||
|
|
||||||
|
|
||||||
|
" Processing instructions
|
||||||
|
" This allows "?>" inside strings -- good idea?
|
||||||
|
syn region xmlProcessing matchgroup=xmlProcessingDelim start="<?" end="?>" contains=xmlAttrib,xmlEqual,xmlString
|
||||||
|
|
||||||
|
|
||||||
|
if exists('g:xml_syntax_folding')
|
||||||
|
|
||||||
|
" DTD -- we use dtd.vim here
|
||||||
|
syn region xmlDocType matchgroup=xmlDocTypeDecl
|
||||||
|
\ start="<!DOCTYPE"he=s+2,rs=s+2 end=">"
|
||||||
|
\ fold
|
||||||
|
\ contains=xmlDocTypeKeyword,xmlInlineDTD,xmlString
|
||||||
|
else
|
||||||
|
|
||||||
|
" no syntax folding:
|
||||||
|
" - fold attribute removed
|
||||||
|
"
|
||||||
|
syn region xmlDocType matchgroup=xmlDocTypeDecl
|
||||||
|
\ start="<!DOCTYPE"he=s+2,rs=s+2 end=">"
|
||||||
|
\ contains=xmlDocTypeKeyword,xmlInlineDTD,xmlString
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn keyword xmlDocTypeKeyword contained DOCTYPE PUBLIC SYSTEM
|
||||||
|
syn region xmlInlineDTD contained matchgroup=xmlDocTypeDecl start="\[" end="]" contains=@xmlDTD
|
||||||
|
syn include @xmlDTD <sfile>:p:h/dtd.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
|
||||||
|
" synchronizing
|
||||||
|
" TODO !!! to be improved !!!
|
||||||
|
|
||||||
|
syn sync match xmlSyncDT grouphere xmlDocType +\_.\(<!DOCTYPE\)\@=+
|
||||||
|
" syn sync match xmlSyncDT groupthere NONE +]>+
|
||||||
|
|
||||||
|
if exists('g:xml_syntax_folding')
|
||||||
|
syn sync match xmlSync grouphere xmlRegion +\_.\(<[^ /!?<>"']\+\)\@=+
|
||||||
|
" syn sync match xmlSync grouphere xmlRegion "<[^ /!?<>"']*>"
|
||||||
|
syn sync match xmlSync groupthere xmlRegion +</[^ /!?<>"']\+>+
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn sync minlines=100
|
||||||
|
|
||||||
|
|
||||||
|
" The default highlighting.
|
||||||
|
hi def link xmlTodo Todo
|
||||||
|
hi def link xmlTag Identifier
|
||||||
|
hi def link xmlTagName Function
|
||||||
|
hi def link xmlEndTag Identifier
|
||||||
|
if !exists("g:xml_namespace_transparent")
|
||||||
|
hi def link xmlNamespace Tag
|
||||||
|
endif
|
||||||
|
hi def link xmlEntity Statement
|
||||||
|
hi def link xmlEntityPunct Type
|
||||||
|
|
||||||
|
hi def link xmlAttribPunct Comment
|
||||||
|
hi def link xmlAttrib Type
|
||||||
|
|
||||||
|
hi def link xmlString String
|
||||||
|
hi def link xmlComment Comment
|
||||||
|
hi def link xmlCommentStart xmlComment
|
||||||
|
hi def link xmlCommentPart Comment
|
||||||
|
hi def link xmlCommentError Error
|
||||||
|
hi def link xmlError Error
|
||||||
|
|
||||||
|
hi def link xmlProcessingDelim Comment
|
||||||
|
hi def link xmlProcessing Type
|
||||||
|
|
||||||
|
hi def link xmlCdata String
|
||||||
|
hi def link xmlCdataCdata Statement
|
||||||
|
hi def link xmlCdataStart Type
|
||||||
|
hi def link xmlCdataEnd Type
|
||||||
|
|
||||||
|
hi def link xmlDocTypeDecl Function
|
||||||
|
hi def link xmlDocTypeKeyword Statement
|
||||||
|
hi def link xmlInlineDTD Function
|
||||||
|
|
||||||
|
let b:current_syntax = "xml"
|
||||||
|
|
||||||
|
let &cpo = s:xml_cpo_save
|
||||||
|
unlet s:xml_cpo_save
|
||||||
|
|
||||||
|
" vim: ts=8
|
Loading…
Reference in New Issue