xref: /vim-8.2.3635/runtime/syntax/spyce.vim (revision 0fa313a7)
1" Vim syntax file
2" Language:	   SPYCE
3" Maintainer:	 Rimon Barr <rimon AT acm DOT org>
4" URL:		     http://spyce.sourceforge.net
5" Last Change: 2003 May 11
6
7" For version 5.x: Clear all syntax items
8" For version 6.x: Quit when a syntax file was already loaded
9if version < 600
10  syntax clear
11elseif exists("b:current_syntax")
12  finish
13endif
14
15" we define it here so that included files can test for it
16if !exists("main_syntax")
17  let main_syntax='spyce'
18endif
19
20" Read the HTML syntax to start with
21let b:did_indent = 1	     " don't perform HTML indentation!
22let html_no_rendering = 1    " do not render <b>,<i>, etc...
23if version < 600
24  so <sfile>:p:h/html.vim
25else
26  runtime! syntax/html.vim
27  unlet b:current_syntax
28endif
29
30" include python
31syn include @Python <sfile>:p:h/python.vim
32syn include @Html <sfile>:p:h/html.vim
33
34" spyce definitions
35syn keyword spyceDirectiveKeyword include compact module import contained
36syn keyword spyceDirectiveArg name names file contained
37syn region  spyceDirectiveString start=+"+ end=+"+ contained
38syn match   spyceDirectiveValue "=[\t ]*[^'", \t>][^, \t>]*"hs=s+1 contained
39
40syn match spyceBeginErrorS  ,\[\[,
41syn match spyceBeginErrorA  ,<%,
42syn cluster spyceBeginError contains=spyceBeginErrorS,spyceBeginErrorA
43syn match spyceEndErrorS    ,\]\],
44syn match spyceEndErrorA    ,%>,
45syn cluster spyceEndError contains=spyceEndErrorS,spyceEndErrorA
46
47syn match spyceEscBeginS       ,\\\[\[,
48syn match spyceEscBeginA       ,\\<%,
49syn cluster spyceEscBegin contains=spyceEscBeginS,spyceEscBeginA
50syn match spyceEscEndS	       ,\\\]\],
51syn match spyceEscEndA	       ,\\%>,
52syn cluster spyceEscEnd contains=spyceEscEndS,spyceEscEndA
53syn match spyceEscEndCommentS  ,--\\\]\],
54syn match spyceEscEndCommentA  ,--\\%>,
55syn cluster spyceEscEndComment contains=spyceEscEndCommentS,spyceEscEndCommentA
56
57syn region spyceStmtS      matchgroup=spyceStmtDelim start=,\[\[, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
58syn region spyceStmtA      matchgroup=spyceStmtDelim start=,<%, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
59syn region spyceChunkS     matchgroup=spyceChunkDelim start=,\[\[\\, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
60syn region spyceChunkA     matchgroup=spyceChunkDelim start=,<%\\, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
61syn region spyceEvalS      matchgroup=spyceEvalDelim start=,\[\[=, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
62syn region spyceEvalA      matchgroup=spyceEvalDelim start=,<%=, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
63syn region spyceDirectiveS matchgroup=spyceDelim start=,\[\[\., end=,\]\], contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend
64syn region spyceDirectiveA matchgroup=spyceDelim start=,<%@, end=,%>, contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend
65syn region spyceCommentS   matchgroup=spyceCommentDelim start=,\[\[--, end=,--\]\],
66syn region spyceCommentA   matchgroup=spyceCommentDelim start=,<%--, end=,--%>,
67syn region spyceLambdaS    matchgroup=spyceLambdaDelim start=,\[\[spy!\?, end=,\]\], contains=@Html,@spyce extend
68syn region spyceLambdaA    matchgroup=spyceLambdaDelim start=,<%spy!\?, end=,%>, contains=@Html,@spyce extend
69
70syn cluster spyce contains=spyceStmtS,spyceStmtA,spyceChunkS,spyceChunkA,spyceEvalS,spyceEvalA,spyceCommentS,spyceCommentA,spyceDirectiveS,spyceDirectiveA
71
72syn cluster htmlPreproc contains=@spyce
73
74hi link spyceDirectiveKeyword	Special
75hi link spyceDirectiveArg	Type
76hi link spyceDirectiveString	String
77hi link spyceDirectiveValue	String
78
79hi link spyceDelim		Special
80hi link spyceStmtDelim		spyceDelim
81hi link spyceChunkDelim		spyceDelim
82hi link spyceEvalDelim		spyceDelim
83hi link spyceLambdaDelim	spyceDelim
84hi link spyceCommentDelim	Comment
85
86hi link spyceBeginErrorS	Error
87hi link spyceBeginErrorA	Error
88hi link spyceEndErrorS		Error
89hi link spyceEndErrorA		Error
90
91hi link spyceStmtS		spyce
92hi link spyceStmtA		spyce
93hi link spyceChunkS		spyce
94hi link spyceChunkA		spyce
95hi link spyceEvalS		spyce
96hi link spyceEvalA		spyce
97hi link spyceDirectiveS		spyce
98hi link spyceDirectiveA		spyce
99hi link spyceCommentS		Comment
100hi link spyceCommentA		Comment
101hi link spyceLambdaS		Normal
102hi link spyceLambdaA		Normal
103
104hi link spyce			Statement
105
106let b:current_syntax = "spyce"
107if main_syntax == 'spyce'
108  unlet main_syntax
109endif
110
111