blob: 7fdd8337e3b5c97f7b361e9ac76de58b3f6f0702 (
plain) (
tree)
|  |  | if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
  
" 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.
if exists("b:current_syntax")
  finish
endif
syn case match
syn match   godocTitle        "^\([A-Z][A-Z ]*\)$"
hi def link godocTitle        Title
" Single Line Definitions
syn match   godocMethodRec    /\i\+\ze)/ contained
syn match   godocMethodName   /) \zs\i\+\ze(/ contained
syn match   godocMethod       /^func \((\i\+ [^)]*)\) \i\+(/ contains=godocMethodRec,godocMethodName
syn match   godocFunction     /^func \zs\i\+\ze(/
syn match   godocType         /^type \zs\i\+\ze.*/
syn match   godocVar          /^var \zs\i\+\ze.*/
syn match   godocConst        /^const \zs\i\+\ze.*/
hi def link godocMethodRec    Type
hi def link godocType         Type
hi def link godocMethodName   Function
hi def link godocFunction     Function
hi def link godocVar          Identifier
hi def link godocConst        Identifier
" Definition Blocks
syn region  godocComment      start="/\*" end="\*/" contained
syn region  godocComment      start="//" end="$" contained
syn match   godocDefinition   /^\s\+\i\+/ contained
syn region  godocVarBlock     start=/^var (/ end=/^)/ contains=godocComment,godocDefinition
syn region  godocConstBlock   start=/^const (/ end=/^)/ contains=godocComment,godocDefinition
syn region  godocTypeBlock    start=/^type \i\+ \(interface\|struct\) {/ end=/^}/ matchgroup=godocType contains=godocComment,godocType
hi def link godocComment      Comment
hi def link godocDefinition   Identifier
syn sync minlines=500
let b:current_syntax = "godoc"
" vim:ts=4 sts=2 sw=2:
endif
 |