blob: 6270b2af64d54f14828de353ce5d93ffd26e8394 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: GSP - GNU Server Pages (v. 0.86)
3" Created By: Nathaniel Harward nharward@yahoo.com
Bram Moolenaar6ee8d892012-01-10 14:55:01 +01004" Last Changed: 2012 Jan 08 by Thilo Six
Bram Moolenaar071d4272004-06-13 20:20:40 +00005" Filenames: *.gsp
6" URL: http://www.constructicon.com/~nharward/vim/syntax/gsp.vim
7
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02008" quit when a syntax file was already loaded
9if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000010 finish
11endif
12
13if !exists("main_syntax")
14 let main_syntax = 'gsp'
15endif
16
17" Source HTML syntax
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020018runtime! syntax/html.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000019unlet b:current_syntax
20
21syn case match
22
23" Include Java syntax
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020024syn include @gspJava syntax/java.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000025
Bram Moolenaar6ee8d892012-01-10 14:55:01 +010026let s:cpo_save = &cpo
27set cpo&vim
28
Bram Moolenaar071d4272004-06-13 20:20:40 +000029" Add <java> as an HTML tag name along with its args
30syn keyword htmlTagName contained java
31syn keyword htmlArg contained type file page
32
33" Redefine some HTML things to include (and highlight) gspInLine code in
34" places where it's likely to be found
35syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine
36syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine
37syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc,gspInLine
38syn region htmlEndTag start=+</+ end=+>+ contains=htmlTagN,htmlTagError,gspInLine
39syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster,gspInLine
40syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster,gspInLine
41syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster,gspInLine
42
43" Define the GSP java code blocks
44syn region gspJavaBlock start="<java\>[^>]*\>" end="</java>"me=e-7 contains=@gspJava,htmlTag
45syn region gspInLine matchgroup=htmlError start="`" end="`" contains=@gspJava
46
47let b:current_syntax = "gsp"
48
49if main_syntax == 'gsp'
50 unlet main_syntax
51endif
Bram Moolenaar6ee8d892012-01-10 14:55:01 +010052
53let &cpo = s:cpo_save
54unlet s:cpo_save