1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Lout 3*cb80aa2dSBram Moolenaar" Maintainer: Christian V. J. Brüssow <[email protected]> 484f7235bSBram Moolenaar" Last Change: So 12 Feb 2012 15:15:03 CET 5071d4279SBram Moolenaar" Filenames: *.lout,*.lt 6071d4279SBram Moolenaar" URL: http://www.cvjb.de/comp/vim/lout.vim 784f7235bSBram Moolenaar 884f7235bSBram Moolenaar" $Id: lout.vim,v 1.4 2012/02/12 15:16:17 bruessow Exp $ 9071d4279SBram Moolenaar" 10071d4279SBram Moolenaar" Lout: Basser Lout document formatting system. 11071d4279SBram Moolenaar 1284f7235bSBram Moolenaar" Many Thanks to... 1384f7235bSBram Moolenaar" 1484f7235bSBram Moolenaar" 2012-02-12: 1584f7235bSBram Moolenaar" Thilo Six <T.Six at gmx dot de> send a patch for cpoptions. 1684f7235bSBram Moolenaar" See the discussion at http://thread.gmane.org/gmane.editors.vim.devel/32151 1784f7235bSBram Moolenaar 1884f7235bSBram Moolenaar 1989bcfda6SBram Moolenaar" quit when a syntax file was already loaded 2089bcfda6SBram Moolenaarif exists("b:current_syntax") 21071d4279SBram Moolenaar finish 22071d4279SBram Moolenaarendif 23071d4279SBram Moolenaar 2484f7235bSBram Moolenaarlet s:cpo_save=&cpo 2584f7235bSBram Moolenaarset cpo&vim 2684f7235bSBram Moolenaar 27071d4279SBram Moolenaar" Lout is case sensitive 28071d4279SBram Moolenaarsyn case match 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar" Synchronization, I know it is a huge number, but normal texts can be 31071d4279SBram Moolenaar" _very_ long ;-) 32071d4279SBram Moolenaarsyn sync lines=1000 33071d4279SBram Moolenaar 34071d4279SBram Moolenaar" Characters allowed in keywords 35071d4279SBram Moolenaar" I don't know if 128-255 are allowed in ANS-FORHT 36071d4279SBram Moolenaarsetlocal iskeyword=@,48-57,.,@-@,_,192-255 37071d4279SBram Moolenaar 38071d4279SBram Moolenaar" Some special keywords 39071d4279SBram Moolenaarsyn keyword loutTodo contained TODO lout Lout LOUT 40071d4279SBram Moolenaarsyn keyword loutDefine def macro 41071d4279SBram Moolenaar 42071d4279SBram Moolenaar" Some big structures 43071d4279SBram Moolenaarsyn keyword loutKeyword @Begin @End @Figure @Tab 44071d4279SBram Moolenaarsyn keyword loutKeyword @Book @Doc @Document @Report 45071d4279SBram Moolenaarsyn keyword loutKeyword @Introduction @Abstract @Appendix 46071d4279SBram Moolenaarsyn keyword loutKeyword @Chapter @Section @BeginSections @EndSections 47071d4279SBram Moolenaar 48071d4279SBram Moolenaar" All kind of Lout keywords 49071d4279SBram Moolenaarsyn match loutFunction '\<@[^ \t{}]\+\>' 50071d4279SBram Moolenaar 51071d4279SBram Moolenaar" Braces -- Don`t edit these lines! 52071d4279SBram Moolenaarsyn match loutMBraces '[{}]' 53071d4279SBram Moolenaarsyn match loutIBraces '[{}]' 54071d4279SBram Moolenaarsyn match loutBBrace '[{}]' 55071d4279SBram Moolenaarsyn match loutBIBraces '[{}]' 56071d4279SBram Moolenaarsyn match loutHeads '[{}]' 57071d4279SBram Moolenaar 58071d4279SBram Moolenaar" Unmatched braces. 59071d4279SBram Moolenaarsyn match loutBraceError '}' 60071d4279SBram Moolenaar 61071d4279SBram Moolenaar" End of multi-line definitions, like @Document, @Report and @Book. 62071d4279SBram Moolenaarsyn match loutEOmlDef '^//$' 63071d4279SBram Moolenaar 64071d4279SBram Moolenaar" Grouping of parameters and objects. 65071d4279SBram Moolenaarsyn region loutObject transparent matchgroup=Delimiter start='{' matchgroup=Delimiter end='}' contains=ALLBUT,loutBraceError 66071d4279SBram Moolenaar 67071d4279SBram Moolenaar" The NULL object has a special meaning 68071d4279SBram Moolenaarsyn keyword loutNULL {} 69071d4279SBram Moolenaar 70071d4279SBram Moolenaar" Comments 71071d4279SBram Moolenaarsyn region loutComment start='\#' end='$' contains=loutTodo 72071d4279SBram Moolenaar 73071d4279SBram Moolenaar" Double quotes 74071d4279SBram Moolenaarsyn region loutSpecial start=+"+ skip=+\\\\\|\\"+ end=+"+ 75071d4279SBram Moolenaar 76071d4279SBram Moolenaar" ISO-LATIN-1 characters created with @Char, or Adobe symbols 77071d4279SBram Moolenaar" created with @Sym 78071d4279SBram Moolenaarsyn match loutSymbols '@\(\(Char\)\|\(Sym\)\)\s\+[A-Za-z]\+' 79071d4279SBram Moolenaar 80071d4279SBram Moolenaar" Include files 81071d4279SBram Moolenaarsyn match loutInclude '@IncludeGraphic\s\+\k\+' 82071d4279SBram Moolenaarsyn region loutInclude start='@\(\(SysInclude\)\|\(IncludeGraphic\)\|\(Include\)\)\s*{' end='}' 83071d4279SBram Moolenaar 84071d4279SBram Moolenaar" Tags 85071d4279SBram Moolenaarsyn match loutTag '@\(\(Tag\)\|\(PageMark\)\|\(PageOf\)\|\(NumberOf\)\)\s\+\k\+' 86071d4279SBram Moolenaarsyn region loutTag start='@Tag\s*{' end='}' 87071d4279SBram Moolenaar 88071d4279SBram Moolenaar" Equations 89071d4279SBram Moolenaarsyn match loutMath '@Eq\s\+\k\+' 90071d4279SBram Moolenaarsyn region loutMath matchgroup=loutMBraces start='@Eq\s*{' matchgroup=loutMBraces end='}' contains=ALLBUT,loutBraceError 91071d4279SBram Moolenaar" 92071d4279SBram Moolenaar" Fonts 93071d4279SBram Moolenaarsyn match loutItalic '@I\s\+\k\+' 94071d4279SBram Moolenaarsyn region loutItalic matchgroup=loutIBraces start='@I\s*{' matchgroup=loutIBraces end='}' contains=ALLBUT,loutBraceError 95071d4279SBram Moolenaarsyn match loutBold '@B\s\+\k\+' 96071d4279SBram Moolenaarsyn region loutBold matchgroup=loutBBraces start='@B\s*{' matchgroup=loutBBraces end='}' contains=ALLBUT,loutBraceError 97071d4279SBram Moolenaarsyn match loutBoldItalic '@BI\s\+\k\+' 98071d4279SBram Moolenaarsyn region loutBoldItalic matchgroup=loutBIBraces start='@BI\s*{' matchgroup=loutBIBraces end='}' contains=ALLBUT,loutBraceError 99071d4279SBram Moolenaarsyn region loutHeadings matchgroup=loutHeads start='@\(\(Title\)\|\(Caption\)\)\s*{' matchgroup=loutHeads end='}' contains=ALLBUT,loutBraceError 100071d4279SBram Moolenaar 101071d4279SBram Moolenaar" Define the default highlighting. 10289bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 103071d4279SBram Moolenaar 104071d4279SBram Moolenaar" The default methods for highlighting. Can be overrriden later. 105f37506f6SBram Moolenaarhi def link loutTodo Todo 106f37506f6SBram Moolenaarhi def link loutDefine Define 107f37506f6SBram Moolenaarhi def link loutEOmlDef Define 108f37506f6SBram Moolenaarhi def link loutFunction Function 109f37506f6SBram Moolenaarhi def link loutBraceError Error 110f37506f6SBram Moolenaarhi def link loutNULL Special 111f37506f6SBram Moolenaarhi def link loutComment Comment 112f37506f6SBram Moolenaarhi def link loutSpecial Special 113f37506f6SBram Moolenaarhi def link loutSymbols Character 114f37506f6SBram Moolenaarhi def link loutInclude Include 115f37506f6SBram Moolenaarhi def link loutKeyword Keyword 116f37506f6SBram Moolenaarhi def link loutTag Tag 117f37506f6SBram Moolenaarhi def link loutMath Number 118071d4279SBram Moolenaar 119f37506f6SBram Moolenaarhi def link loutMBraces loutMath 120071d4279SBram Moolenaarhi loutItalic term=italic cterm=italic gui=italic 121f37506f6SBram Moolenaarhi def link loutIBraces loutItalic 122071d4279SBram Moolenaarhi loutBold term=bold cterm=bold gui=bold 123f37506f6SBram Moolenaarhi def link loutBBraces loutBold 124071d4279SBram Moolenaarhi loutBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic 125f37506f6SBram Moolenaarhi def link loutBIBraces loutBoldItalic 126071d4279SBram Moolenaarhi loutHeadings term=bold cterm=bold guifg=indianred 127f37506f6SBram Moolenaarhi def link loutHeads loutHeadings 128071d4279SBram Moolenaar 129071d4279SBram Moolenaar 130071d4279SBram Moolenaarlet b:current_syntax = "lout" 131071d4279SBram Moolenaar 13284f7235bSBram Moolenaarlet &cpo=s:cpo_save 13384f7235bSBram Moolenaarunlet s:cpo_save 13484f7235bSBram Moolenaar 135071d4279SBram Moolenaar" vim:ts=8:sw=4:nocindent:smartindent: 136