12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- " Copyright 2011 The Go Authors. All rights reserved.
- " Use of this source code is governed by a BSD-style
- " license that can be found in the LICENSE file.
- "
- " gotexttmpl.vim: Vim syntax file for Go templates.
- " Quit when a (custom) syntax file was already loaded
- if exists("b:current_syntax")
- finish
- endif
- syn case match
- " Go escapes
- syn match goEscapeOctal display contained "\\[0-7]\{3}"
- syn match goEscapeC display contained +\\[abfnrtv\\'"]+
- syn match goEscapeX display contained "\\x\x\{2}"
- syn match goEscapeU display contained "\\u\x\{4}"
- syn match goEscapeBigU display contained "\\U\x\{8}"
- syn match goEscapeError display contained +\\[^0-7xuUabfnrtv\\'"]+
- hi def link goEscapeOctal goSpecialString
- hi def link goEscapeC goSpecialString
- hi def link goEscapeX goSpecialString
- hi def link goEscapeU goSpecialString
- hi def link goEscapeBigU goSpecialString
- hi def link goSpecialString Special
- hi def link goEscapeError Error
- " Strings and their contents
- syn cluster goStringGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU,goEscapeError
- syn region goString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup
- syn region goRawString contained start=+`+ end=+`+
- hi def link goString String
- hi def link goRawString String
- " Characters; their contents
- syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU
- syn region goCharacter contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup
- hi def link goCharacter Character
- " Integers
- syn match goDecimalInt contained "\<\d\+\([Ee]\d\+\)\?\>"
- syn match goHexadecimalInt contained "\<0x\x\+\>"
- syn match goOctalInt contained "\<0\o\+\>"
- syn match goOctalError contained "\<0\o*[89]\d*\>"
- syn cluster goInt contains=goDecimalInt,goHexadecimalInt,goOctalInt
- " Floating point
- syn match goFloat contained "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>"
- syn match goFloat contained "\<\.\d\+\([Ee][-+]\d\+\)\?\>"
- syn match goFloat contained "\<\d\+[Ee][-+]\d\+\>"
- " Imaginary literals
- syn match goImaginary contained "\<\d\+i\>"
- syn match goImaginary contained "\<\d\+\.\d*\([Ee][-+]\d\+\)\?i\>"
- syn match goImaginary contained "\<\.\d\+\([Ee][-+]\d\+\)\?i\>"
- syn match goImaginary contained "\<\d\+[Ee][-+]\d\+i\>"
- hi def link goInt Number
- hi def link goFloat Number
- hi def link goImaginary Number
- " Token groups
- syn cluster gotplLiteral contains=goString,goRawString,goCharacter,@goInt,goFloat,goImaginary
- syn keyword gotplControl contained if else end range with template
- syn keyword gotplFunctions contained and html index js len not or print printf println urlquery eq ne lt le gt ge
- syn match gotplVariable contained /\$[a-zA-Z0-9_]*\>/
- syn match goTplIdentifier contained /\.[^\s}]+\>/
- hi def link gotplControl Keyword
- hi def link gotplFunctions Function
- hi def link goTplVariable Special
- syn region gotplAction start="{{" end="}}" contains=@gotplLiteral,gotplControl,gotplFunctions,gotplVariable,goTplIdentifier display
- syn region gotplAction start="\[\[" end="\]\]" contains=@gotplLiteral,gotplControl,gotplFunctions,gotplVariable display
- syn region goTplComment start="{{\(- \)\?/\*" end="\*/\( -\)\?}}" display
- syn region goTplComment start="\[\[\(- \)\?/\*" end="\*/\( -\)\?\]\]" display
- hi def link gotplAction PreProc
- hi def link goTplComment Comment
- let b:current_syntax = "gotexttmpl"
- " vim: sw=2 ts=2 et
|