Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Language: Dot |
| 2 | " Filenames: *.dot |
Bram Moolenaar | 8b6144b | 2006-02-08 09:20:24 +0000 | [diff] [blame] | 3 | " Maintainer: Markus Mottl <markus.mottl@gmail.com> |
| 4 | " URL: http://www.ocaml.info/vim/syntax/dot.vim |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 5 | " Last Change: 2021 Mar 24 - better attr + escape string matching, new keywords (Farbod Salamat-Zadeh) |
| 6 | " 2011 May 17 - improved identifier matching + two new keywords |
Bram Moolenaar | 5eb86f9 | 2004-07-26 12:53:41 +0000 | [diff] [blame] | 7 | " 2001 May 04 - initial version |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 8 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 9 | " For version 5.x: Clear all syntax items |
| 10 | " For version 6.x: Quit when a syntax file was already loaded |
| 11 | if version < 600 |
| 12 | syntax clear |
| 13 | elseif exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 14 | finish |
| 15 | endif |
| 16 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 17 | let s:keepcpo = &cpo |
| 18 | set cpo&vim |
| 19 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 20 | " Errors |
| 21 | syn match dotParErr ")" |
| 22 | syn match dotBrackErr "]" |
| 23 | syn match dotBraceErr "}" |
| 24 | |
| 25 | " Enclosing delimiters |
| 26 | syn region dotEncl transparent matchgroup=dotParEncl start="(" matchgroup=dotParEncl end=")" contains=ALLBUT,dotParErr |
| 27 | syn region dotEncl transparent matchgroup=dotBrackEncl start="\[" matchgroup=dotBrackEncl end="\]" contains=ALLBUT,dotBrackErr |
| 28 | syn region dotEncl transparent matchgroup=dotBraceEncl start="{" matchgroup=dotBraceEncl end="}" contains=ALLBUT,dotBraceErr |
| 29 | |
| 30 | " Comments |
| 31 | syn region dotComment start="//" end="$" contains=dotComment,dotTodo |
| 32 | syn region dotComment start="/\*" end="\*/" contains=dotComment,dotTodo |
| 33 | syn keyword dotTodo contained TODO FIXME XXX |
| 34 | |
| 35 | " Strings |
| 36 | syn region dotString start=+"+ skip=+\\\\\|\\"+ end=+"+ |
| 37 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 38 | " Escape strings |
| 39 | syn match dotEscString /\v\\(N|G|E|T|H|L)/ containedin=dotString |
| 40 | syn match dotEscString /\v\\(n|l|r)/ containedin=dotString |
| 41 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 42 | " General keywords |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 43 | syn keyword dotKeyword graph digraph subgraph node edge strict |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 44 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 45 | " Node, edge and graph attributes |
| 46 | syn keyword dotType _background area arrowhead arrowsize arrowtail bb bgcolor |
| 47 | \ center charset class clusterrank color colorscheme comment compound |
| 48 | \ concentrate constraint Damping decorate defaultdist dim dimen dir |
| 49 | \ diredgeconstraints distortion dpi edgehref edgetarget edgetooltip |
| 50 | \ edgeURL epsilon esep fillcolor fixedsize fontcolor fontname fontnames |
| 51 | \ fontpath fontsize forcelabels gradientangle group head_lp headclip |
| 52 | \ headhref headlabel headport headtarget headtooltip headURL height href |
| 53 | \ id image imagepath imagepos imagescale inputscale K label label_scheme |
| 54 | \ labelangle labeldistance labelfloat labelfontcolor labelfontname |
| 55 | \ labelfontsize labelhref labeljust labelloc labeltarget labeltooltip |
| 56 | \ labelURL landscape layer layerlistsep layers layerselect layersep |
| 57 | \ layout len levels levelsgap lhead lheight lp ltail lwidth margin |
| 58 | \ maxiter mclimit mindist minlen mode model mosek newrank nodesep |
| 59 | \ nojustify normalize notranslate nslimit nslimit1 ordering orientation |
| 60 | \ outputorder overlap overlap_scaling overlap_shrink pack packmode pad |
| 61 | \ page pagedir pencolor penwidth peripheries pin pos quadtree quantum |
| 62 | \ rank rankdir ranksep ratio rects regular remincross repulsiveforce |
| 63 | \ resolution root rotate rotation samehead sametail samplepoints scale |
| 64 | \ searchsize sep shape shapefile showboxes sides size skew smoothing |
| 65 | \ sortv splines start style stylesheet tail_lp tailclip tailhref |
| 66 | \ taillabel tailport tailtarget tailtooltip tailURL target tooltip |
| 67 | \ truecolor URL vertices viewport voro_margin weight width xdotversion |
| 68 | \ xlabel xlp z |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 69 | |
| 70 | " Special chars |
| 71 | syn match dotKeyChar "=" |
| 72 | syn match dotKeyChar ";" |
| 73 | syn match dotKeyChar "->" |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 74 | syn match dotKeyChar "--" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 75 | |
| 76 | " Identifier |
Bram Moolenaar | 20f90cf | 2011-05-19 12:22:51 +0200 | [diff] [blame] | 77 | syn match dotIdentifier /\<\w\+\(:\w\+\)\?\>/ |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 78 | |
| 79 | " Synchronization |
| 80 | syn sync minlines=50 |
| 81 | syn sync maxlines=500 |
| 82 | |
| 83 | " Define the default highlighting. |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 84 | " For version 5.7 and earlier: only when not done already |
| 85 | " For version 5.8 and later: only when an item doesn't have highlighting yet |
| 86 | if version >= 508 || !exists("did_dot_syntax_inits") |
| 87 | if version < 508 |
| 88 | let did_dot_syntax_inits = 1 |
| 89 | command -nargs=+ HiLink hi link <args> |
| 90 | else |
| 91 | command -nargs=+ HiLink hi def link <args> |
| 92 | endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 93 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 94 | HiLink dotParErr Error |
| 95 | HiLink dotBraceErr Error |
| 96 | HiLink dotBrackErr Error |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 97 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 98 | HiLink dotComment Comment |
| 99 | HiLink dotTodo Todo |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 100 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 101 | HiLink dotParEncl Keyword |
| 102 | HiLink dotBrackEncl Keyword |
| 103 | HiLink dotBraceEncl Keyword |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 104 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 105 | HiLink dotKeyword Keyword |
| 106 | HiLink dotType Type |
| 107 | HiLink dotKeyChar Keyword |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 108 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 109 | HiLink dotString String |
| 110 | HiLink dotEscString Keyword |
| 111 | HiLink dotIdentifier Identifier |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 112 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 113 | delcommand HiLink |
| 114 | endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 115 | |
| 116 | let b:current_syntax = "dot" |
| 117 | |
Bram Moolenaar | dad4473 | 2021-03-31 20:07:33 +0200 | [diff] [blame] | 118 | let &cpo = s:keepcpo |
| 119 | unlet s:keepcpo |
| 120 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 121 | " vim: ts=8 |