From: joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Date: Mon, 28 May 2007 23:28:38 +0000 (+0000)
Subject: vim syntax highlighting file by Recai
X-Git-Tag: 2.2~64
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/c3e200d8ebac0308c94d38414e96e0cd89f2f94a?ds=inline

vim syntax highlighting file by Recai
---

diff --git a/doc/tips/vim_syntax_highlighting.mdwn b/doc/tips/vim_syntax_highlighting.mdwn
new file mode 100644
index 000000000..453efa8d1
--- /dev/null
+++ b/doc/tips/vim_syntax_highlighting.mdwn
@@ -0,0 +1,2 @@
+[[ikiwiki.vim]] is a vim syntax highlighting file for ikiwiki. Installation
+instructions are at the top of the file.
diff --git a/doc/tips/vim_syntax_highlighting/ikiwiki.vim b/doc/tips/vim_syntax_highlighting/ikiwiki.vim
new file mode 100644
index 000000000..fd87f49a2
--- /dev/null
+++ b/doc/tips/vim_syntax_highlighting/ikiwiki.vim
@@ -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