122 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Language:     Dot
 | |
| " Filenames:    *.dot
 | |
| " Maintainer:   Markus Mottl  <markus.mottl@gmail.com>
 | |
| " URL:          http://www.ocaml.info/vim/syntax/dot.vim
 | |
| " Last Change:  2021 Mar 24 - better attr + escape string matching, new keywords (Farbod Salamat-Zadeh)
 | |
| "               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
 | |
| 
 | |
| let s:keepcpo = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| " 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=+"+
 | |
| 
 | |
| " Escape strings
 | |
| syn match    dotEscString /\v\\(N|G|E|T|H|L)/ containedin=dotString
 | |
| syn match    dotEscString /\v\\(n|l|r)/       containedin=dotString
 | |
| 
 | |
| " General keywords
 | |
| syn keyword  dotKeyword graph digraph subgraph node edge strict
 | |
| 
 | |
| " Node, edge and graph attributes
 | |
| syn keyword  dotType _background area arrowhead arrowsize arrowtail bb bgcolor
 | |
|       \ center charset class clusterrank color colorscheme comment compound
 | |
|       \ concentrate constraint Damping decorate defaultdist dim dimen dir
 | |
|       \ diredgeconstraints distortion dpi edgehref edgetarget edgetooltip
 | |
|       \ edgeURL epsilon esep fillcolor fixedsize fontcolor fontname fontnames
 | |
|       \ fontpath fontsize forcelabels gradientangle group head_lp headclip
 | |
|       \ headhref headlabel headport headtarget headtooltip headURL height href
 | |
|       \ id image imagepath imagepos imagescale inputscale K label label_scheme
 | |
|       \ labelangle labeldistance labelfloat labelfontcolor labelfontname
 | |
|       \ labelfontsize labelhref labeljust labelloc labeltarget labeltooltip
 | |
|       \ labelURL landscape layer layerlistsep layers layerselect layersep 
 | |
|       \ layout len levels levelsgap lhead lheight lp ltail lwidth margin
 | |
|       \ maxiter mclimit mindist minlen mode model mosek newrank nodesep 
 | |
|       \ nojustify normalize notranslate nslimit nslimit1 ordering orientation
 | |
|       \ outputorder overlap overlap_scaling overlap_shrink pack packmode pad
 | |
|       \ page pagedir pencolor penwidth peripheries pin pos quadtree quantum
 | |
|       \ rank rankdir ranksep ratio rects regular remincross repulsiveforce
 | |
|       \ resolution root rotate rotation samehead sametail samplepoints scale
 | |
|       \ searchsize sep shape shapefile showboxes sides size skew smoothing
 | |
|       \ sortv splines start style stylesheet tail_lp tailclip tailhref 
 | |
|       \ taillabel tailport tailtarget tailtooltip tailURL target tooltip
 | |
|       \ truecolor URL vertices viewport voro_margin weight width xdotversion 
 | |
|       \ xlabel xlp z
 | |
| 
 | |
| " Special chars
 | |
| syn match    dotKeyChar  "="
 | |
| 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 dotEscString	 Keyword
 | |
|   HiLink dotIdentifier	 Identifier
 | |
| 
 | |
|   delcommand HiLink
 | |
| endif
 | |
| 
 | |
| let b:current_syntax = "dot"
 | |
| 
 | |
| let &cpo = s:keepcpo
 | |
| unlet s:keepcpo
 | |
| 
 | |
| " vim: ts=8
 |