mirror of
https://github.com/neovim/neovim.git
synced 2025-01-01 17:23:36 -07:00
111 lines
3.3 KiB
VimL
111 lines
3.3 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: Dot
|
||
|
" Filenames: *.dot
|
||
|
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||
|
" URL: http://www.ocaml.info/vim/syntax/dot.vim
|
||
|
" Last Change: 2011 May 17 - improved identifier matching + two new keywords
|
||
|
" 2001 May 04 - initial version
|
||
|
|
||
|
" For version 5.x: Clear all syntax items
|
||
|
" For version 6.x: Quit when a syntax file was already loaded
|
||
|
if version < 600
|
||
|
syntax clear
|
||
|
elseif exists("b:current_syntax")
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
" Errors
|
||
|
syn match dotParErr ")"
|
||
|
syn match dotBrackErr "]"
|
||
|
syn match dotBraceErr "}"
|
||
|
|
||
|
" Enclosing delimiters
|
||
|
syn region dotEncl transparent matchgroup=dotParEncl start="(" matchgroup=dotParEncl end=")" contains=ALLBUT,dotParErr
|
||
|
syn region dotEncl transparent matchgroup=dotBrackEncl start="\[" matchgroup=dotBrackEncl end="\]" contains=ALLBUT,dotBrackErr
|
||
|
syn region dotEncl transparent matchgroup=dotBraceEncl start="{" matchgroup=dotBraceEncl end="}" contains=ALLBUT,dotBraceErr
|
||
|
|
||
|
" Comments
|
||
|
syn region dotComment start="//" end="$" contains=dotComment,dotTodo
|
||
|
syn region dotComment start="/\*" end="\*/" contains=dotComment,dotTodo
|
||
|
syn keyword dotTodo contained TODO FIXME XXX
|
||
|
|
||
|
" Strings
|
||
|
syn region dotString start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||
|
|
||
|
" General keywords
|
||
|
syn keyword dotKeyword digraph node edge subgraph
|
||
|
|
||
|
" Graph attributes
|
||
|
syn keyword dotType center layers margin mclimit name nodesep nslimit
|
||
|
syn keyword dotType ordering page pagedir rank rankdir ranksep ratio
|
||
|
syn keyword dotType rotate size
|
||
|
|
||
|
" Node attributes
|
||
|
syn keyword dotType distortion fillcolor fontcolor fontname fontsize
|
||
|
syn keyword dotType height layer orientation peripheries regular
|
||
|
syn keyword dotType shape shapefile sides skew width
|
||
|
|
||
|
" Edge attributes
|
||
|
syn keyword dotType arrowhead arrowsize arrowtail constraint decorateP
|
||
|
syn keyword dotType dir headclip headlabel headport labelangle labeldistance
|
||
|
syn keyword dotType labelfontcolor labelfontname labelfontsize
|
||
|
syn keyword dotType minlen port_label_distance samehead sametail
|
||
|
syn keyword dotType tailclip taillabel tailport weight
|
||
|
|
||
|
" Shared attributes (graphs, nodes, edges)
|
||
|
syn keyword dotType color
|
||
|
|
||
|
" Shared attributes (graphs and edges)
|
||
|
syn keyword dotType bgcolor label URL
|
||
|
|
||
|
" Shared attributes (nodes and edges)
|
||
|
syn keyword dotType fontcolor fontname fontsize layer style
|
||
|
|
||
|
" Special chars
|
||
|
syn match dotKeyChar "="
|
||
|
syn match dotKeyChar ";"
|
||
|
syn match dotKeyChar "->"
|
||
|
|
||
|
" Identifier
|
||
|
syn match dotIdentifier /\<\w\+\(:\w\+\)\?\>/
|
||
|
|
||
|
" Synchronization
|
||
|
syn sync minlines=50
|
||
|
syn sync maxlines=500
|
||
|
|
||
|
" Define the default highlighting.
|
||
|
" For version 5.7 and earlier: only when not done already
|
||
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||
|
if version >= 508 || !exists("did_dot_syntax_inits")
|
||
|
if version < 508
|
||
|
let did_dot_syntax_inits = 1
|
||
|
command -nargs=+ HiLink hi link <args>
|
||
|
else
|
||
|
command -nargs=+ HiLink hi def link <args>
|
||
|
endif
|
||
|
|
||
|
HiLink dotParErr Error
|
||
|
HiLink dotBraceErr Error
|
||
|
HiLink dotBrackErr Error
|
||
|
|
||
|
HiLink dotComment Comment
|
||
|
HiLink dotTodo Todo
|
||
|
|
||
|
HiLink dotParEncl Keyword
|
||
|
HiLink dotBrackEncl Keyword
|
||
|
HiLink dotBraceEncl Keyword
|
||
|
|
||
|
HiLink dotKeyword Keyword
|
||
|
HiLink dotType Type
|
||
|
HiLink dotKeyChar Keyword
|
||
|
|
||
|
HiLink dotString String
|
||
|
HiLink dotIdentifier Identifier
|
||
|
|
||
|
delcommand HiLink
|
||
|
endif
|
||
|
|
||
|
let b:current_syntax = "dot"
|
||
|
|
||
|
" vim: ts=8
|