vim syntax highlighting file by Recai
parent
ba1765fbdf
commit
c3e200d8eb
|
@ -0,0 +1,2 @@
|
|||
[[ikiwiki.vim]] is a vim syntax highlighting file for ikiwiki. Installation
|
||||
instructions are at the top of the file.
|
|
@ -0,0 +1,71 @@
|
|||
" Vim syntax file
|
||||
" Language: Ikiwiki (links)
|
||||
" Maintainer: Recai Oktaþ (roktasATdebian.org)
|
||||
" Last Change: 2007 May 29
|
||||
|
||||
" Instructions:
|
||||
" - make sure to use the relevant syntax file which can be found
|
||||
" at vim.org; below are the syntax files for markdown and reST,
|
||||
" respectively:
|
||||
" http://www.vim.org/scripts/script.php?script_id=1242
|
||||
" http://www.vim.org/scripts/script.php?script_id=973
|
||||
" - put the file into your syntax directory (e.g. ~/.vim/syntax)
|
||||
" - if you use markdown (with .mdwn extension) add sth like below
|
||||
" in your VIM startup file:
|
||||
" au BufNewFile,BufRead *.mdwn set ft=ikiwiki
|
||||
" - if you use a different markup other than markdown (e.g. reST)
|
||||
" make sure to setup 'g:ikiwiki_render_filetype' properly in
|
||||
" your startup file (skip this step for mkd.vim, it should work
|
||||
" out of the box)
|
||||
" Todo:
|
||||
" - revamp the whole file so as to detect valid ikiwiki directives
|
||||
" and parameters (needs a serious work)
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Load the base syntax (default to markdown) if nothing was loaded.
|
||||
if !exists("b:current_syntax")
|
||||
let s:ikiwiki_render_filetype = "mkd"
|
||||
if exists("g:ikiwiki_render_filetype")
|
||||
let s:ikiwiki_render_filetype = g:ikiwiki_render_filetype
|
||||
endif
|
||||
exe 'runtime! syntax/' . s:ikiwiki_render_filetype . '.vim'
|
||||
endif
|
||||
|
||||
unlet b:current_syntax
|
||||
|
||||
syn case match
|
||||
|
||||
syn region ikiwikiLinkContent matchgroup=ikiwikiLink start=+\[\[\(\w\+\s\+\)\{,1}+ end=+\]\]+ contains=ikiwikiLinkNested,ikiwikiParam,ikiwikiNoParam
|
||||
syn region ikiwikiLinkNested matchgroup=ikiwikiLinkNested start=+"""+ end=+"""+ contains=ikiwikiLinkContent contained
|
||||
|
||||
" FIXME: Below is an ugly hack to prevent highlighting of simple links
|
||||
" as directives. Links with spaces are still problematic though.
|
||||
syn region ikiwikiNoParam start=+\[\[[^|=]\+|+ end=+[^|=]\+\]\]+ keepend contains=ikiwikiMagic,ikiwikiDelim
|
||||
|
||||
syn match ikiwikiDelim "\(\[\[\|\]\]\)" contained
|
||||
syn match ikiwikiMagic "|" contained
|
||||
syn match ikiwikiParam "\<\i\+\ze=" nextgroup=ikiwikiParamAssign contained
|
||||
syn match ikiwikiParamAssign "=" nextgroup=ikiwikiValue contained
|
||||
syn region ikiwikiValue start=+"[^"]+hs=e-1 end=+[^"]"+ skip=+\\"+ keepend contains=ikiwikiValueMagic,ikiwikiDelim contained
|
||||
syn match ikiwikiValueMagic +\(!\<\|\*\|\<\(and\|or\)\>\|\<\i*(\|\>)\)+ contained
|
||||
|
||||
syn sync minlines=50
|
||||
|
||||
hi def link ikiwikiLink Statement
|
||||
hi def link ikiwikiLinkNested String
|
||||
hi def link ikiwikiLinkContent Underlined
|
||||
|
||||
hi def link ikiwikiMagic Operator
|
||||
hi def link ikiwikiDelim Operator
|
||||
hi def link ikiwikiNoParam Underlined
|
||||
hi def link ikiwikiParam Identifier
|
||||
hi def link ikiwikiParamAssign Operator
|
||||
hi def link ikiwikiValue String
|
||||
hi def link ikiwikiValueMagic Type
|
||||
|
||||
let b:current_syntax = "ikiwiki"
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:ts=8:sts=8:noet
|
Loading…
Reference in New Issue