mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			140 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			140 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | |||
|  | " Language:    Lout | |||
|  | " Maintainer:  Christian V. J. Br<42>ssow <cvjb@cvjb.de> | |||
|  | " Last Change: Son 22 Jun 2003 20:43:26 CEST | |||
|  | " Filenames:   *.lout,*.lt | |||
|  | " URL:			http://www.cvjb.de/comp/vim/lout.vim | |||
|  | " $Id$ | |||
|  | " | |||
|  | " Lout: Basser Lout document formatting system. | |||
|  | 
 | |||
|  | " For version 5.x: Clear all syntax items | |||
|  | " For version 6.x: Quit when a syntax file was already loaded | |||
|  | if version < 600 | |||
|  | 	syntax clear | |||
|  | elseif exists("b:current_syntax") | |||
|  | 	finish | |||
|  | endif | |||
|  | 
 | |||
|  | " Lout is case sensitive | |||
|  | syn case match | |||
|  | 
 | |||
|  | " Synchronization, I know it is a huge number, but normal texts can be | |||
|  | " _very_ long ;-) | |||
|  | syn sync lines=1000 | |||
|  | 
 | |||
|  | " Characters allowed in keywords | |||
|  | " I don't know if 128-255 are allowed in ANS-FORHT | |||
|  | if version >= 600 | |||
|  | 	setlocal iskeyword=@,48-57,.,@-@,_,192-255 | |||
|  | else | |||
|  | 	set iskeyword=@,48-57,.,@-@,_,192-255 | |||
|  | endif | |||
|  | 
 | |||
|  | " Some special keywords | |||
|  | syn keyword loutTodo contained TODO lout Lout LOUT | |||
|  | syn keyword loutDefine def macro | |||
|  | 
 | |||
|  | " Some big structures | |||
|  | syn keyword loutKeyword @Begin @End @Figure @Tab | |||
|  | syn keyword loutKeyword @Book @Doc @Document @Report | |||
|  | syn keyword loutKeyword @Introduction @Abstract @Appendix | |||
|  | syn keyword loutKeyword @Chapter @Section @BeginSections @EndSections | |||
|  | 
 | |||
|  | " All kind of Lout keywords | |||
|  | syn match loutFunction '\<@[^ \t{}]\+\>' | |||
|  | 
 | |||
|  | " Braces -- Don`t edit these lines! | |||
|  | syn match loutMBraces '[{}]' | |||
|  | syn match loutIBraces '[{}]' | |||
|  | syn match loutBBrace '[{}]' | |||
|  | syn match loutBIBraces '[{}]' | |||
|  | syn match loutHeads '[{}]' | |||
|  | 
 | |||
|  | " Unmatched braces. | |||
|  | syn match loutBraceError '}' | |||
|  | 
 | |||
|  | " End of multi-line definitions, like @Document, @Report and @Book. | |||
|  | syn match loutEOmlDef '^//$' | |||
|  | 
 | |||
|  | " Grouping of parameters and objects. | |||
|  | syn region loutObject transparent matchgroup=Delimiter start='{' matchgroup=Delimiter end='}' contains=ALLBUT,loutBraceError | |||
|  | 
 | |||
|  | " The NULL object has a special meaning | |||
|  | syn keyword loutNULL {} | |||
|  | 
 | |||
|  | " Comments | |||
|  | syn region loutComment start='\#' end='$' contains=loutTodo | |||
|  | 
 | |||
|  | " Double quotes | |||
|  | syn region loutSpecial start=+"+ skip=+\\\\\|\\"+ end=+"+ | |||
|  | 
 | |||
|  | " ISO-LATIN-1 characters created with @Char, or Adobe symbols | |||
|  | " created with @Sym | |||
|  | syn match loutSymbols '@\(\(Char\)\|\(Sym\)\)\s\+[A-Za-z]\+' | |||
|  | 
 | |||
|  | " Include files | |||
|  | syn match loutInclude '@IncludeGraphic\s\+\k\+' | |||
|  | syn region loutInclude start='@\(\(SysInclude\)\|\(IncludeGraphic\)\|\(Include\)\)\s*{' end='}' | |||
|  | 
 | |||
|  | " Tags | |||
|  | syn match loutTag '@\(\(Tag\)\|\(PageMark\)\|\(PageOf\)\|\(NumberOf\)\)\s\+\k\+' | |||
|  | syn region loutTag start='@Tag\s*{' end='}' | |||
|  | 
 | |||
|  | " Equations | |||
|  | syn match loutMath '@Eq\s\+\k\+' | |||
|  | syn region loutMath matchgroup=loutMBraces start='@Eq\s*{' matchgroup=loutMBraces end='}' contains=ALLBUT,loutBraceError | |||
|  | " | |||
|  | " Fonts | |||
|  | syn match loutItalic '@I\s\+\k\+' | |||
|  | syn region loutItalic matchgroup=loutIBraces start='@I\s*{' matchgroup=loutIBraces end='}' contains=ALLBUT,loutBraceError | |||
|  | syn match loutBold '@B\s\+\k\+' | |||
|  | syn region loutBold matchgroup=loutBBraces start='@B\s*{' matchgroup=loutBBraces end='}' contains=ALLBUT,loutBraceError | |||
|  | syn match loutBoldItalic '@BI\s\+\k\+' | |||
|  | syn region loutBoldItalic matchgroup=loutBIBraces start='@BI\s*{' matchgroup=loutBIBraces end='}' contains=ALLBUT,loutBraceError | |||
|  | syn region loutHeadings matchgroup=loutHeads start='@\(\(Title\)\|\(Caption\)\)\s*{' matchgroup=loutHeads end='}' contains=ALLBUT,loutBraceError | |||
|  | 
 | |||
|  | " 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_lout_syn_inits") | |||
|  | 	if version < 508 | |||
|  | 		let did_lout_syn_inits = 1 | |||
|  | 		command -nargs=+ HiLink hi link <args> | |||
|  | 	else | |||
|  | 		command -nargs=+ HiLink hi def link <args> | |||
|  | 	endif | |||
|  | 
 | |||
|  | 	" The default methods for highlighting. Can be overrriden later. | |||
|  | 	HiLink loutTodo Todo | |||
|  | 	HiLink loutDefine Define | |||
|  | 	HiLink loutEOmlDef Define | |||
|  | 	HiLink loutFunction Function | |||
|  | 	HiLink loutBraceError Error | |||
|  | 	HiLink loutNULL Special | |||
|  | 	HiLink loutComment Comment | |||
|  | 	HiLink loutSpecial Special | |||
|  | 	HiLink loutSymbols Character | |||
|  | 	HiLink loutInclude Include | |||
|  | 	HiLink loutKeyword Keyword | |||
|  | 	HiLink loutTag Tag | |||
|  | 	HiLink loutMath Number | |||
|  | 
 | |||
|  | 	" HiLink Not really needed here, but I think it is more consistent. | |||
|  | 	HiLink loutMBraces loutMath | |||
|  | 	hi loutItalic term=italic cterm=italic gui=italic | |||
|  | 	HiLink loutIBraces loutItalic | |||
|  | 	hi loutBold term=bold cterm=bold gui=bold | |||
|  | 	HiLink loutBBraces loutBold | |||
|  | 	hi loutBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic | |||
|  | 	HiLink loutBIBraces loutBoldItalic | |||
|  | 	hi loutHeadings term=bold cterm=bold guifg=indianred | |||
|  | 	HiLink loutHeads loutHeadings | |||
|  | 
 | |||
|  | 	delcommand HiLink | |||
|  | endif | |||
|  | 
 | |||
|  | let b:current_syntax = "lout" | |||
|  | 
 | |||
|  | " vim:ts=8:sw=4:nocindent:smartindent: |