xref: /vim-8.2.3635/runtime/syntax/lout.vim (revision cb80aa2d)
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