mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 21:55:17 -07:00
86 lines
3.3 KiB
VimL
86 lines
3.3 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: Graphviz program
|
||
|
" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
|
||
|
" Last Change: Tue, 28 Jul 2020 17:20:44 -0700
|
||
|
|
||
|
if exists("b:current_syntax")
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
let s:cpo_save = &cpo
|
||
|
set cpo&vim
|
||
|
|
||
|
syn keyword gvArg ARGC ARGV
|
||
|
syn keyword gvBeg BEGIN BEG_G N E END END_G
|
||
|
syn keyword gvFunc
|
||
|
\ graph fstsubg isDirect isStrict isSubg nEdges nNodes nxtsubg subg
|
||
|
\ degreeOf fstnode indegreeOf isNode isSubnode node nxtnode nxtnode_sg
|
||
|
\ outDegreeOf subnode
|
||
|
\ edge edge_sg fstedge fstedge_sg fstin fstin_sg fstout fstout_sg isEdge
|
||
|
\ isEdge_sg isSubedge nxtedge nxtedge_sg nxtin nxtin_sg nxtout nxtout_sg opp
|
||
|
\ subedge
|
||
|
\ freadG fwriteG readG write[] writeG
|
||
|
\ aget aset clone cloneG compOf copy[] copyA delete[] fstAttr getDflt hasAttr
|
||
|
\ induce isAttr isIn kindOf lock[] nxtAttr setDflt
|
||
|
\ canon gsub html index ishtml length llOf match[] rindex split[] sprintf
|
||
|
\ sscanf strcmp sub substr tokens tolower toupper urOf xOf yOf
|
||
|
\ closeF openF print[] printf scanf readL
|
||
|
\ atan2 cos exp log MAX MIN pow sin[] sqrt
|
||
|
\ in[] unset
|
||
|
\ colorx exit[] rand srand system
|
||
|
syn keyword gvCons
|
||
|
\ NULL TV_bfs TV_dfs TV_en TV_flat TV_fwd TV_ne TV_prepostdfs TV_prepostfwd
|
||
|
\ TV_prepostrev TV_postdfs TV_postfwd tv_postrev TV_rev
|
||
|
syn keyword gvType char double float int long unsigned void
|
||
|
\ string
|
||
|
\ edge_t graph_t node_t obj_t
|
||
|
syn match gvVar
|
||
|
\ "\$\(\(F\|G\|NG\|O\|T\|tgtname\|tvedge\|tvnext\|tvroot\|tvtype\)\>\)\?\(\<\)\@!"
|
||
|
syn keyword gvWord break continue else for forr if return switch while
|
||
|
|
||
|
" numbers adapted from c.vim's cNumbers and friends
|
||
|
syn match gvNums transparent "\<\d\|\.\d" contains=gvNumber,gvFloat,gvOctal
|
||
|
syn match gvNumber contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||
|
syn match gvNumber contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||
|
syn match gvOctal contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=gvOctalZero
|
||
|
syn match gvOctalZero contained "\<0"
|
||
|
syn match gvFloat contained "\d\+f"
|
||
|
syn match gvFloat contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
|
||
|
syn match gvFloat contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||
|
syn match gvFloat contained "\d\+e[-+]\=\d\+[fl]\=\>"
|
||
|
|
||
|
syn region gvString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gvFormat,gvSpecial extend
|
||
|
syn region gvString start="'" skip="\\\\\|\\'" end="'" contains=gvFormat,gvSpecial extend
|
||
|
|
||
|
" adapted from c.vim's cFormat for c_no_c99
|
||
|
syn match gvFormat "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||
|
|
||
|
syn match gvSpecial "\\." contained
|
||
|
|
||
|
syn region gvCComment start="//" skip="\\$" end="$" keepend
|
||
|
syn region gvCPPComment start="#" skip="\\$" end="$" keepend
|
||
|
syn region gvCXXComment start="/\*" end="\*/" fold
|
||
|
|
||
|
hi def link gvArg Identifier
|
||
|
hi def link gvBeg Keyword
|
||
|
hi def link gvFloat Number
|
||
|
hi def link gvFunc Identifier
|
||
|
hi def link gvCons Number
|
||
|
hi def link gvNumber Number
|
||
|
hi def link gvType Type
|
||
|
hi def link gvVar Statement
|
||
|
hi def link gvWord Keyword
|
||
|
|
||
|
hi def link gvString String
|
||
|
hi def link gvFormat Special
|
||
|
hi def link gvSpecial Special
|
||
|
|
||
|
hi def link gvCComment Comment
|
||
|
hi def link gvCPPComment Comment
|
||
|
hi def link gvCXXComment Comment
|
||
|
|
||
|
let b:current_syntax = "gvpr"
|
||
|
|
||
|
let &cpo = s:cpo_save
|
||
|
unlet s:cpo_save
|