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