1" Vim syntax file
2" Language:	GSP - GNU Server Pages (v. 0.86)
3" Created By:	Nathaniel Harward nharward@yahoo.com
4" Last Changed: Dec. 12, 2000
5" Filenames:    *.gsp
6" URL:		http://www.constructicon.com/~nharward/vim/syntax/gsp.vim
7
8" For version 5.x: Clear all syntax items
9" For version 6.x: Quit when a syntax file was already loaded
10if version < 600
11  syntax clear
12elseif exists("b:current_syntax")
13  finish
14endif
15
16if !exists("main_syntax")
17  let main_syntax = 'gsp'
18endif
19
20" Source HTML syntax
21if version < 600
22  source <sfile>:p:h/html.vim
23else
24  runtime! syntax/html.vim
25endif
26unlet b:current_syntax
27
28syn case match
29
30" Include Java syntax
31if version < 600
32  syn include @gspJava <sfile>:p:h/java.vim
33else
34  syn include @gspJava syntax/java.vim
35endif
36
37" Add <java> as an HTML tag name along with its args
38syn keyword htmlTagName contained java
39syn keyword htmlArg     contained type file page
40
41" Redefine some HTML things to include (and highlight) gspInLine code in
42" places where it's likely to be found
43syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine
44syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine
45syn match  htmlValue  contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc,gspInLine
46syn region htmlEndTag		start=+</+    end=+>+ contains=htmlTagN,htmlTagError,gspInLine
47syn region htmlTag		start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster,gspInLine
48syn match  htmlTagN   contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster,gspInLine
49syn match  htmlTagN   contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster,gspInLine
50
51" Define the GSP java code blocks
52syn region  gspJavaBlock start="<java\>[^>]*\>" end="</java>"me=e-7 contains=@gspJava,htmlTag
53syn region  gspInLine    matchgroup=htmlError start="`" end="`" contains=@gspJava
54
55let b:current_syntax = "gsp"
56
57if main_syntax == 'gsp'
58  unlet main_syntax
59endif
60