├── LICENSE ├── README.md ├── ftdetect └── plantuml.vim ├── ftplugin └── plantuml.vim ├── indent └── plantuml.vim └── syntax └── plantuml.vim /LICENSE: -------------------------------------------------------------------------------- 1 | VIM LICENSE 2 | 3 | I) There are no restrictions on distributing unmodified copies of Vim except 4 | that they must include this license text. You can also distribute 5 | unmodified parts of Vim, likewise unrestricted except that they must 6 | include this license text. You are also allowed to include executables 7 | that you made from the unmodified Vim sources, plus your own usage 8 | examples and Vim scripts. 9 | 10 | II) It is allowed to distribute a modified (or extended) version of Vim, 11 | including executables and/or source code, when the following four 12 | conditions are met: 13 | 1) This license text must be included unmodified. 14 | 2) The modified Vim must be distributed in one of the following five ways: 15 | a) If you make changes to Vim yourself, you must clearly describe in 16 | the distribution how to contact you. When the maintainer asks you 17 | (in any way) for a copy of the modified Vim you distributed, you 18 | must make your changes, including source code, available to the 19 | maintainer without fee. The maintainer reserves the right to 20 | include your changes in the official version of Vim. What the 21 | maintainer will do with your changes and under what license they 22 | will be distributed is negotiable. If there has been no negotiation 23 | then this license, or a later version, also applies to your changes. 24 | The current maintainer is Bram Moolenaar . If this 25 | changes it will be announced in appropriate places (most likely 26 | vim.sf.net, www.vim.org and/or comp.editors). When it is completely 27 | impossible to contact the maintainer, the obligation to send him 28 | your changes ceases. Once the maintainer has confirmed that he has 29 | received your changes they will not have to be sent again. 30 | b) If you have received a modified Vim that was distributed as 31 | mentioned under a) you are allowed to further distribute it 32 | unmodified, as mentioned at I). If you make additional changes the 33 | text under a) applies to those changes. 34 | c) Provide all the changes, including source code, with every copy of 35 | the modified Vim you distribute. This may be done in the form of a 36 | context diff. You can choose what license to use for new code you 37 | add. The changes and their license must not restrict others from 38 | making their own changes to the official version of Vim. 39 | d) When you have a modified Vim which includes changes as mentioned 40 | under c), you can distribute it without the source code for the 41 | changes if the following three conditions are met: 42 | - The license that applies to the changes permits you to distribute 43 | the changes to the Vim maintainer without fee or restriction, and 44 | permits the Vim maintainer to include the changes in the official 45 | version of Vim without fee or restriction. 46 | - You keep the changes for at least three years after last 47 | distributing the corresponding modified Vim. When the maintainer 48 | or someone who you distributed the modified Vim to asks you (in 49 | any way) for the changes within this period, you must make them 50 | available to him. 51 | - You clearly describe in the distribution how to contact you. This 52 | contact information must remain valid for at least three years 53 | after last distributing the corresponding modified Vim, or as long 54 | as possible. 55 | e) When the GNU General Public License (GPL) applies to the changes, 56 | you can distribute the modified Vim under the GNU GPL version 2 or 57 | any later version. 58 | 3) A message must be added, at least in the output of the ":version" 59 | command and in the intro screen, such that the user of the modified Vim 60 | is able to see that it was modified. When distributing as mentioned 61 | under 2)e) adding the message is only required for as far as this does 62 | not conflict with the license used for the changes. 63 | 4) The contact information as required under 2)a) and 2)d) must not be 64 | removed or changed, except that the person himself can make 65 | corrections. 66 | 67 | III) If you distribute a modified version of Vim, you are encouraged to use 68 | the Vim license for your changes and make them available to the 69 | maintainer, including the source code. The preferred way to do this is 70 | by e-mail or by uploading the files to a server and e-mailing the URL. 71 | If the number of changes is small (e.g., a modified Makefile) e-mailing a 72 | context diff will do. The e-mail address to be used is 73 | 74 | 75 | IV) It is not allowed to remove this license from the distribution of the Vim 76 | sources, parts of it or from a modified version. You may use this 77 | license for previous Vim releases instead of the license that they came 78 | with, at your option. 79 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vim PlantUML Syntax/Plugin/FTDetect 2 | 3 | This is a vim syntax file for [PlantUML](http://plantuml.com). 4 | 5 | The `filetype` will be set to `plantuml` for `*.pu`, `*.uml`, `*.puml`, `*.iuml` or 6 | `*.plantuml` files or if the first line of a file contains `@startuml`. 7 | 8 | Additionally the `makeprg` is set to `plantuml` assuming you have this 9 | executable in your path. This file could contain something like 10 | 11 | ````sh 12 | #!/bin/bash 13 | java -jar $HOME/lib/java/plantuml.jar -tsvg $@ 14 | ```` 15 | 16 | You can change the name of this file by setting `g:plantuml_executable_script` 17 | and disable this feature by setting `g:plantuml_set_makeprg` to `0`. 18 | 19 | See examples here: [Plantuml Syntax](https://aklt.github.io/plantuml/). 20 | -------------------------------------------------------------------------------- /ftdetect/plantuml.vim: -------------------------------------------------------------------------------- 1 | " Vim filetype detection file 2 | " Language: PlantUML 3 | " License: VIM LICENSE 4 | 5 | " Note: should not use augroup in ftdetect (see :help ftdetect) 6 | autocmd BufRead,BufNewFile * if !did_filetype() && getline(1) =~# '@startuml\>'| setfiletype plantuml | endif 7 | autocmd BufRead,BufNewFile *.pu,*.uml,*.plantuml,*.puml,*.iuml set filetype=plantuml 8 | -------------------------------------------------------------------------------- /ftplugin/plantuml.vim: -------------------------------------------------------------------------------- 1 | " Vim filetype plugin file 2 | " Language: PlantUML 3 | " License: VIM LICENSE 4 | 5 | if exists('b:loaded_plantuml_plugin') 6 | finish 7 | endif 8 | let b:loaded_plantuml_plugin = 1 9 | let s:cpo_save = &cpoptions 10 | set cpoptions&vim 11 | 12 | if !exists('g:plantuml_executable_script') 13 | let g:plantuml_executable_script='plantuml' 14 | endif 15 | 16 | if exists('loaded_matchit') 17 | let b:match_ignorecase = 0 18 | let b:match_words = 19 | \ '\(\\|\\|\\|\\|\\|\\|\\|\\):\:\' . 20 | \ ',\:\:\:\' . 21 | \ ',\:\' . 22 | \ ',\:\' . 23 | \ ',\:\' . 24 | \ ',\<\while\>:\' . 25 | \ ',@startuml:@enduml' . 26 | \ ',@startwbs:@endwbs' . 27 | \ ',@startmindmap:@endmindmap' 28 | endif 29 | 30 | if get(g:, 'plantuml_set_makeprg', 1) 31 | let &l:makeprg=g:plantuml_executable_script . ' %' 32 | let &l:errorformat='Error\ line %l in file: %f,%Z%m' 33 | endif 34 | 35 | setlocal comments=s1:/',mb:',ex:'/,:' commentstring=/'%s'/ formatoptions-=t formatoptions+=croql 36 | 37 | let b:endwise_addition = '\=index(["dot","mindmap","uml","salt","wbs"], submatch(0))!=-1 ? "@end" . submatch(0) : index(["note","legend"], submatch(0))!=-1 ? "end " . submatch(0) : "end"' 38 | let b:endwise_words = 'loop,group,alt,note,legend,startdot,startmindmap,startuml,startsalt,startwbs' 39 | let b:endwise_pattern = '^\s*\zs\(loop\|group\|alt\|note\ze[^:]*$\|legend\|@start\zs\(dot\|mindmap\|uml\|salt\|wbs\)\)\>.*$' 40 | let b:endwise_syngroups = 'plantumlKeyword,plantumlPreProc' 41 | 42 | let &cpoptions = s:cpo_save 43 | unlet s:cpo_save 44 | -------------------------------------------------------------------------------- /indent/plantuml.vim: -------------------------------------------------------------------------------- 1 | " Vim indent file 2 | " Language: PlantUML 3 | " License: VIM LICENSE 4 | 5 | if exists('b:did_indent') 6 | finish 7 | endif 8 | let b:did_indent = 1 9 | 10 | setlocal indentexpr=GetPlantUMLIndent() 11 | setlocal indentkeys=o,O,,<:>,!^F,0end,0else,} 12 | 13 | " only define the indent code once 14 | if exists('*GetPlantUMLIndent') 15 | finish 16 | endif 17 | 18 | let s:decIndent = '^\s*\%(end\|else\|fork again\|}\)' 19 | 20 | function! GetPlantUMLIndent(...) abort 21 | "for current line, use arg if given or v:lnum otherwise 22 | let clnum = a:0 ? a:1 : v:lnum 23 | 24 | if !s:insidePlantUMLTags(clnum) 25 | return indent(clnum) 26 | endif 27 | 28 | let pnum = prevnonblank(clnum-1) 29 | let pindent = indent(pnum) 30 | let pline = getline(pnum) 31 | let cline = getline(clnum) 32 | 33 | let s:incIndent = s:getIncIndent() 34 | 35 | if cline =~ s:decIndent 36 | if pline =~ s:incIndent 37 | return pindent 38 | else 39 | return pindent - shiftwidth() 40 | endif 41 | 42 | elseif pline =~ s:incIndent 43 | return pindent + shiftwidth() 44 | endif 45 | 46 | return pindent 47 | 48 | endfunction 49 | 50 | function! s:insidePlantUMLTags(lnum) abort 51 | call cursor(a:lnum, 1) 52 | return search('@startuml', 'Wbn') && search('@enduml', 'Wn') 53 | endfunction 54 | 55 | function! s:listSyntax(syntaxKeyword) abort 56 | " Get a list of words assigned to a syntax keyword 57 | " The 'syntax list ' command returns 58 | " a string with the keyword itself, followed by xxx, 59 | " on which we can split to extract the keywords string. 60 | " This string must then be split on whitespace 61 | let syntaxWords = split( 62 | \ execute('syntax list ' . a:syntaxKeyword), 63 | \ a:syntaxKeyword . ' xxx ')[-1] 64 | return split(syntaxWords) 65 | endfunction 66 | 67 | function! s:typeKeywordIncPattern() abort 68 | " Extract keywords for plantumlTypeKeyword, returning the inc pattern 69 | let syntaxWords = join(s:listSyntax('plantumlTypeKeyword'), '\\\|') 70 | return '^\s*\%(' . syntaxWords . '\)\>.*{' 71 | endfunction 72 | 73 | function! s:getIncIndent() abort 74 | " Function to determine the s:incIndent pattern 75 | return 76 | \ '^\s*\%(artifact\|class\|cloud\|database\|entity\|enum\|file\|folder\|frame\|interface\|namespace\|node\|object\|package\|partition\|rectangle\|skinparam\|state\|storage\|together\)\>.*{\s*$\|' . 77 | \ '^\s*\%(loop\|alt\|opt\|group\|critical\|else\|legend\|box\|if\|while\|fork\|split\)\>\|' . 78 | \ '^\s*ref\>[^:]*$\|' . 79 | \ '^\s*[hr]\?note\>\%(\%("[^"]*" \\)\@![^:]\)*$\|' . 80 | \ '^\s*title\s*$\|' . 81 | \ '^\s*skinparam\>.*{\s*$\|' . 82 | \ s:typeKeywordIncPattern() 83 | endfunction 84 | -------------------------------------------------------------------------------- /syntax/plantuml.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: PlantUML 3 | " License: VIM LICENSE 4 | if exists('b:current_syntax') 5 | finish 6 | endif 7 | 8 | if v:version < 600 9 | syntax clear 10 | endif 11 | 12 | let s:cpo_orig=&cpoptions 13 | set cpoptions&vim 14 | 15 | let b:current_syntax = 'plantuml' 16 | 17 | syntax sync minlines=100 18 | 19 | syntax match plantumlPreProc /\%(^@start\|^@end\)\%(board\|bpm\|chen\|chronology\|creole\|cute\|def\|ditaa\|dot\|ebnf\|files\|flow\|gantt\|git\|hcl\|jcckit\|json\|latex\|math\|mindmap\|nwdiag\|project\|regex\|salt\|tree\|uml\|wbs\|wire\|yaml\)/ 20 | syntax match plantumlPreProc /!\?\%(function\|procedure\|endprocedure\|endfunction\|unquoted\)/ 21 | syntax match plantumlPreProc /!\%(assert\|define\|definelong\|dump_memory\|else\|enddefinelong\|endif\|endsub\|exit\|if\|ifdef\|ifndef\|import\|include\|local\|log\|pragma\|return\|startsub\|theme\|undef\)\s*.*/ contains=plantumlDir 22 | syntax region plantumlDir start=/\s\+/ms=s+1 end=/$/ contained 23 | 24 | " Procedure and function definitions 25 | syntax region plantumlParameters contained matchgroup=Function keepend start="(" end=")\s*$" contains=TOP 26 | syntax match plantumlFunction "\%(!\%(unquoted\s\+\)\?\%(procedure\|function\)\s*\)\@<=\$\?\w\+\s*(.*)" contains=plantumlParameters 27 | 28 | " type 29 | " From 'java - jar plantuml.jar - language' results {{{ 30 | syntax keyword plantumlTypeKeyword abstract action actor agent annotation archimate artifact boundary card cloud 31 | syntax keyword plantumlTypeKeyword collections component control database diamond entity enum exception file folder 32 | syntax keyword plantumlTypeKeyword frame hexagon json label map metaclass node object package participant person 33 | syntax keyword plantumlTypeKeyword process protocol queue rectangle relationship stack state storage struct usecase 34 | " class and interface are defined as plantumlClassKeyword 35 | syntax keyword plantumlClassKeyword class interface 36 | "}}} 37 | " Not in 'java - jar plantuml.jar - language' results 38 | syntax keyword plantumlTypeKeyword concise robust 39 | 40 | " keyword 41 | " From 'java - jar plantuml.jar - language' results {{{ 42 | " Since "syntax keyword" can handle only words, "top to bottom direction", "left to right direction" are excluded. 43 | syntax keyword plantumlKeyword across activate again allow_mixing allowmixing also alt as attribute attributes 44 | syntax keyword plantumlKeyword autonumber bold bottom box break caption center circle circled circles color 45 | syntax keyword plantumlKeyword create critical dashed deactivate description destroy detach dotted down else 46 | syntax keyword plantumlKeyword elseif empty end endcaption endfooter endheader endif endlegend endtitle 47 | syntax keyword plantumlKeyword endwhile false field fields footbox footer fork group header hide hnote if is 48 | syntax keyword plantumlKeyword italic kill left legend link loop mainframe member members method methods 49 | syntax keyword plantumlKeyword namespace newpage normal note of on opt order over page par partition 50 | syntax keyword plantumlKeyword plain private protected public ref repeat return right rnote rotate show skin 51 | syntax keyword plantumlKeyword skinparam split sprite start stereotype stereotypes stop style then title 52 | syntax keyword plantumlKeyword together top true up while 53 | 54 | "}}} 55 | " Not in 'java - jar plantuml.jar - language' results 56 | syntax keyword plantumlKeyword endlegend sprite then 57 | " gantt 58 | syntax keyword plantumlTypeKeyword monday tuesday wednesday thursday friday saturday sunday today 59 | syntax keyword plantumlTypeKeyword project Project labels Labels last first column 60 | syntax keyword plantumlKeyword starts ends closed after colored lasts happens in at are to the and 61 | syntax keyword plantumlKeyword printscale ganttscale projectscale daily weekly monthly quarterly yearly zoom 62 | syntax keyword plantumlKeyword day days week weeks today then complete displays same row pauses 63 | 64 | syntax keyword plantumlCommentTODO XXX TODO FIXME NOTE contained 65 | " PlantUML colors are 6 hexa digit long plus optionaly 2 more to code transparency 66 | syntax match plantumlColor /#\x\{6\}\%(\x\{2\}\)\?\>/ 67 | syntax case ignore 68 | syntax keyword plantumlColor APPLICATION AliceBlue AntiqueWhite Aqua Aquamarine Azure BUSINESS Beige Bisque 69 | syntax keyword plantumlColor Black BlanchedAlmond Blue BlueViolet Brown BurlyWood CadetBlue Chartreuse 70 | syntax keyword plantumlColor Chocolate Coral CornflowerBlue Cornsilk Crimson Cyan DarkBlue DarkCyan 71 | syntax keyword plantumlColor DarkGoldenRod DarkGray DarkGreen DarkGrey DarkKhaki DarkMagenta DarkOliveGreen 72 | syntax keyword plantumlColor DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray 73 | syntax keyword plantumlColor DarkSlateGrey DarkTurquoise DarkViolet Darkorange DeepPink DeepSkyBlue DimGray 74 | syntax keyword plantumlColor DimGrey DodgerBlue FireBrick FloralWhite ForestGreen Fuchsia Gainsboro 75 | syntax keyword plantumlColor GhostWhite Gold GoldenRod Gray Green GreenYellow Grey HoneyDew HotPink 76 | syntax keyword plantumlColor IMPLEMENTATION IndianRed Indigo Ivory Khaki Lavender LavenderBlush LawnGreen 77 | syntax keyword plantumlColor LemonChiffon LightBlue LightCoral LightCyan LightGoldenRodYellow LightGray 78 | syntax keyword plantumlColor LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue 79 | syntax keyword plantumlColor LightSlateGray LightSlateGrey LightSteelBlue LightYellow Lime LimeGreen Linen 80 | syntax keyword plantumlColor MOTIVATION Magenta Maroon MediumAquaMarine MediumBlue MediumOrchid MediumPurple 81 | syntax keyword plantumlColor MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed 82 | syntax keyword plantumlColor MidnightBlue MintCream MistyRose Moccasin NavajoWhite Navy OldLace Olive 83 | syntax keyword plantumlColor OliveDrab Orange OrangeRed Orchid PHYSICAL PaleGoldenRod PaleGreen PaleTurquoise 84 | syntax keyword plantumlColor PaleVioletRed PapayaWhip PeachPuff Peru Pink Plum PowderBlue Purple Red 85 | syntax keyword plantumlColor RosyBrown RoyalBlue STRATEGY SaddleBrown Salmon SandyBrown SeaGreen SeaShell 86 | syntax keyword plantumlColor Sienna Silver SkyBlue SlateBlue SlateGray SlateGrey Snow SpringGreen SteelBlue 87 | syntax keyword plantumlColor TECHNOLOGY Tan Teal Thistle Tomato Turquoise Violet Wheat White WhiteSmoke 88 | syntax keyword plantumlColor Yellow YellowGreen 89 | syntax case match 90 | 91 | " Arrows 92 | syntax match plantumlArrow /.\@=\([.-]\)\1\+\ze\s*\%(\w\|(\)/ 93 | 94 | syntax match plantumlClassRelationLR /\([-.]\)\1*\%(\w\{,5\}\1\+\)\?\%(|>\|>\|*\|o\|x\|#\|{\|+\|\^\)/ contains=plantumlArrowDirectedLine 95 | syntax match plantumlClassRelationRL /\%(<|\|<\|*\|o\|x\|#\|}\|+\|\^\)\([-.]\)\1*\%(\w\{,5\}\1\+\)\?/ contains=plantumlArrowDirectedLine 96 | 97 | syntax match plantumlArrowLR /\[\?\([-.]\)\1*\%(\w\{,5}\1\+\)\?\%(\[[^\]]\+\]\)\?\1*\(>\|\\\|\/\)\2\?[ox]\?\]\?\%(\[[^\]]*\]\)\?/ contains=plantumlText,plantumlArrowDirectedLine 98 | syntax match plantumlArrowRL /\[\?[ox]\?\(<\|\\\|\/\)\1\?\([-.]\)\2*\%(\w\{,5}\2\+\)\?\]\?\%(\[[^\]]*\]\)\?/ contains=plantumlText,plantumlArrowDirectedLine 99 | syntax match plantumlArrowBoth /[ox]\?\(<\|\\\|\/\)\1\?\([-.]\)\2*\%(\w\{,5}\2\+\)\?\(>\|\\\|\/\)\3\?[ox]\?/ contains=plantumlArrowDirectedLine 100 | syntax region plantumlText oneline start=/\[/ms=s+1 end=/\]/me=s-1 contained 101 | 102 | syntax match plantumlArrowDirectedLine /\([-.]\)\%(l\%[eft]\|r\%[ight]\|up\?\|d\%[own]\)\1/ contained 103 | 104 | " Note and legend 105 | syntax region plantumlNoteMultiLine start=/\%(^\s*[rh]\?\%(note\|legend\)\)\@<=\s\%([^:"]\+$\)\@=/ end=/^\%(\s*\zeend\s*[rh]\?\%(note\|legend\)$\)\|endlegend\@=/ contains=plantumlSpecialString,plantumlNoteMultiLineStart,plantumlTag 106 | syntax match plantumlNoteMultiLineStart /\%(^\s*[rh]\?\%(note\|legend\)\)\@<=\s\%([^:]\+$\)/ contained contains=plantumlKeyword,plantumlColor,plantumlString,plantumlTag 107 | 108 | " Class 109 | syntax region plantumlClass 110 | \ start=/\%(\%(class\|interface\|object\)\s[^{]\+\)\@<=\zs{/ 111 | \ end=/^\s*}/ 112 | \ contains=plantumlClassArrows, 113 | \ plantumlClassKeyword, 114 | \ @plantumlClassOp, 115 | \ plantumlClassSeparator, 116 | \ plantumlComment 117 | 118 | syntax match plantumlClassPublic /^\s*+\s*\w\+/ contained 119 | syntax match plantumlClassPrivate /^\s*-\s*\w\+/ contained 120 | syntax match plantumlClassProtected /^\s*#\s*\w\+/ contained 121 | syntax match plantumlClassPackPrivate /^\s*\~\s*\w\+/ contained 122 | syntax match plantumlClassSeparator /__\%(.\+__\)\?\|==\%(.\+==\)\?\|--\%(.\+--\)\?\|\.\.\%(.\+\.\.\)\?/ contained 123 | 124 | syntax cluster plantumlClassOp contains=plantumlClassPublic, 125 | \ plantumlClassPrivate, 126 | \ plantumlClassProtected, 127 | \ plantumlClassPackPrivate 128 | 129 | " Strings 130 | syntax match plantumlSpecialString /\\n/ contained 131 | syntax region plantumlString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=plantumlSpecialString 132 | syntax region plantumlString start=/'/ skip=/\\\\\|\\'/ end=/'/ oneline contains=plantumlSpecialString 133 | syntax match plantumlComment /^\s*'.*$/ contains=plantumlCommentTODO 134 | syntax region plantumlMultilineComment start=/\/'/ end=/'\// contains=plantumlCommentTODO 135 | 136 | syntax match plantumlTag /<\/\?[bi]>/ 137 | syntax region plantumlTag start=/<\/\?\%(back\|color\|del\|font\|img\|s\|size\|strike\|u\|w\)/ end=/>/ 138 | 139 | " Labels with a colon 140 | syntax match plantumlColonLine /\S\@<=\s*:\s*\zs.\+$/ contains=plantumlSpecialString 141 | 142 | " Stereotypes 143 | syntax match plantumlStereotype /<<[^-.]\+>>/ contains=plantumlSpecialString 144 | 145 | " Activity diagram 146 | syntax match plantumlActivityThing /([^)]*)/ 147 | syntax match plantumlActivitySynch /===[^=]\+===/ 148 | syntax match plantumlActivityLabel /\%(^\%(#\S\+\)\?\)\@<=:\_[^;|<>/\]}]\+[;|<>/\]}]$/ contains=plantumlSpecialString 149 | 150 | " Sequence diagram 151 | syntax match plantumlSequenceDivider /^\s*==[^=]\+==\s*$/ 152 | syntax match plantumlSequenceSpace /^\s*|||\+\s*$/ 153 | syntax match plantumlSequenceSpace /^\s*||\d\+||\+\s*$/ 154 | syntax match plantumlSequenceDelay /^\s*\.\{3}$/ 155 | syntax region plantumlText oneline matchgroup=plantumlSequenceDelay start=/^\s*\.\{3}/ end=/\.\{3}$/ 156 | 157 | " Usecase diagram 158 | syntax match plantumlUsecaseActor /^\s*:.\{-1,}:/ contains=plantumlSpecialString 159 | 160 | 161 | " Mindmap diagram 162 | let s:mindmapHilightLinks = [ 163 | \ 'WarningMsg', 'Directory', 'Special', 'MoreMsg', 'Statement', 'Title', 164 | \ 'Question', 'LineNr', 'ModeMsg', 'Title', 'MoreMsg', 'SignColumn', 165 | \ 'Function', 'Todo' 166 | \ ] 167 | 168 | let s:i = 1 169 | let s:contained = [] 170 | let s:mindmap_color = '\(\[#[^\]]\+\]\)\?' 171 | let s:mindmap_removing_box = '_\?' 172 | let s:mindmap_options = join([s:mindmap_color, s:mindmap_removing_box], '') 173 | while s:i < len(s:mindmapHilightLinks) 174 | execute 'syntax match plantumlMindmap' . s:i . ' /^\([-+*]\)\1\{' . (s:i - 1) . '}' . s:mindmap_options . '\(:\|\s\+\)/ contained' 175 | execute 'syntax match plantumlMindmap' . s:i . ' /^\s\{' . (s:i - 1) . '}\*' . s:mindmap_options . '\(:\|\s\+\)/ contained' 176 | execute 'highlight default link plantumlMindmap' . s:i . ' ' . s:mindmapHilightLinks[s:i - 1] 177 | call add(s:contained, 'plantumlMindmap' . s:i) 178 | let s:i = s:i + 1 179 | endwhile 180 | 181 | execute 'syntax region plantumlMindmap oneline start=/^\([-+*]\)\1*' . s:mindmap_options . '\s/ end=/$/ contains=' . join(s:contained, ',') 182 | " Multilines 183 | execute 'syntax region plantumlMindmap start=/^\([-+*]\)\1*' . s:mindmap_options . ':/ end=/;$/ contains=' . join(s:contained, ',') 184 | " Markdown syntax 185 | execute 'syntax region plantumlMindmap oneline start=/^\s*\*' . s:mindmap_options . '\s/ end=/$/ contains=' . join(s:contained, ',') 186 | 187 | " Gantt diagram 188 | syntax match plantumlGanttTask /\[[^\]]\{-}\]\%('s\)\?/ contains=plantumlSpecialString 189 | 190 | 191 | " Skinparam keywords 192 | syntax case ignore 193 | syntax keyword plantumlSkinparamKeyword ActivityBackgroundColor ActivityBorderColor ActivityBorderThickness 194 | syntax keyword plantumlSkinparamKeyword ActivityDiamondFontColor ActivityDiamondFontName ActivityDiamondFontSize 195 | syntax keyword plantumlSkinparamKeyword ActivityDiamondFontStyle ActivityFontColor ActivityFontName ActivityFontSize 196 | syntax keyword plantumlSkinparamKeyword ActivityFontStyle ActorBackgroundColor ActorBorderColor ActorFontColor 197 | syntax keyword plantumlSkinparamKeyword ActorFontName ActorFontSize ActorFontStyle ActorStereotypeFontColor 198 | syntax keyword plantumlSkinparamKeyword ActorStereotypeFontName ActorStereotypeFontSize ActorStereotypeFontStyle 199 | syntax keyword plantumlSkinparamKeyword AgentBorderThickness AgentFontColor AgentFontName AgentFontSize AgentFontStyle 200 | syntax keyword plantumlSkinparamKeyword AgentStereotypeFontColor AgentStereotypeFontName AgentStereotypeFontSize 201 | syntax keyword plantumlSkinparamKeyword AgentStereotypeFontStyle ArchimateBorderThickness ArchimateFontColor 202 | syntax keyword plantumlSkinparamKeyword ArchimateFontName ArchimateFontSize ArchimateFontStyle 203 | syntax keyword plantumlSkinparamKeyword ArchimateStereotypeFontColor ArchimateStereotypeFontName 204 | syntax keyword plantumlSkinparamKeyword ArchimateStereotypeFontSize ArchimateStereotypeFontStyle ArrowFontColor 205 | syntax keyword plantumlSkinparamKeyword ArrowFontName ArrowFontSize ArrowFontStyle ArrowHeadColor ArrowLollipopColor 206 | syntax keyword plantumlSkinparamKeyword ArrowMessageAlignment ArrowThickness ArtifactFontColor ArtifactFontName 207 | syntax keyword plantumlSkinparamKeyword ArtifactFontSize ArtifactFontStyle ArtifactStereotypeFontColor 208 | syntax keyword plantumlSkinparamKeyword ArtifactStereotypeFontName ArtifactStereotypeFontSize 209 | syntax keyword plantumlSkinparamKeyword ArtifactStereotypeFontStyle BackgroundColor BiddableBackgroundColor 210 | syntax keyword plantumlSkinparamKeyword BiddableBorderColor BoundaryFontColor BoundaryFontName BoundaryFontSize 211 | syntax keyword plantumlSkinparamKeyword BoundaryFontStyle BoundaryStereotypeFontColor BoundaryStereotypeFontName 212 | syntax keyword plantumlSkinparamKeyword BoundaryStereotypeFontSize BoundaryStereotypeFontStyle BoxPadding 213 | syntax keyword plantumlSkinparamKeyword CaptionFontColor CaptionFontName CaptionFontSize CaptionFontStyle 214 | syntax keyword plantumlSkinparamKeyword CardBorderThickness CardFontColor CardFontName CardFontSize CardFontStyle 215 | syntax keyword plantumlSkinparamKeyword CardStereotypeFontColor CardStereotypeFontName CardStereotypeFontSize 216 | syntax keyword plantumlSkinparamKeyword CardStereotypeFontStyle CircledCharacterFontColor CircledCharacterFontName 217 | syntax keyword plantumlSkinparamKeyword CircledCharacterFontSize CircledCharacterFontStyle CircledCharacterRadius 218 | syntax keyword plantumlSkinparamKeyword ClassAttributeFontColor ClassAttributeFontName ClassAttributeFontSize 219 | syntax keyword plantumlSkinparamKeyword ClassAttributeFontStyle ClassAttributeIconSize ClassBackgroundColor 220 | syntax keyword plantumlSkinparamKeyword ClassBorderColor ClassBorderThickness ClassFontColor ClassFontName ClassFontSize 221 | syntax keyword plantumlSkinparamKeyword ClassFontStyle ClassStereotypeFontColor ClassStereotypeFontName 222 | syntax keyword plantumlSkinparamKeyword ClassStereotypeFontSize ClassStereotypeFontStyle CloudFontColor CloudFontName 223 | syntax keyword plantumlSkinparamKeyword CloudFontSize CloudFontStyle CloudStereotypeFontColor CloudStereotypeFontName 224 | syntax keyword plantumlSkinparamKeyword CloudStereotypeFontSize CloudStereotypeFontStyle ColorArrowSeparationSpace 225 | syntax keyword plantumlSkinparamKeyword ComponentBorderThickness ComponentFontColor ComponentFontName ComponentFontSize 226 | syntax keyword plantumlSkinparamKeyword ComponentFontStyle ComponentStereotypeFontColor ComponentStereotypeFontName 227 | syntax keyword plantumlSkinparamKeyword ComponentStereotypeFontSize ComponentStereotypeFontStyle ComponentStyle 228 | syntax keyword plantumlSkinparamKeyword ConditionEndStyle ConditionStyle ControlFontColor ControlFontName 229 | syntax keyword plantumlSkinparamKeyword ControlFontSize ControlFontStyle ControlStereotypeFontColor 230 | syntax keyword plantumlSkinparamKeyword ControlStereotypeFontName ControlStereotypeFontSize ControlStereotypeFontStyle 231 | syntax keyword plantumlSkinparamKeyword DatabaseFontColor DatabaseFontName DatabaseFontSize DatabaseFontStyle 232 | syntax keyword plantumlSkinparamKeyword DatabaseStereotypeFontColor DatabaseStereotypeFontName 233 | syntax keyword plantumlSkinparamKeyword DatabaseStereotypeFontSize DatabaseStereotypeFontStyle DefaultFontColor 234 | syntax keyword plantumlSkinparamKeyword DefaultFontName DefaultFontSize DefaultFontStyle DefaultMonospacedFontName 235 | syntax keyword plantumlSkinparamKeyword DefaultTextAlignment DesignedBackgroundColor DesignedBorderColor 236 | syntax keyword plantumlSkinparamKeyword DesignedDomainBorderThickness DesignedDomainFontColor DesignedDomainFontName 237 | syntax keyword plantumlSkinparamKeyword DesignedDomainFontSize DesignedDomainFontStyle DesignedDomainStereotypeFontColor 238 | syntax keyword plantumlSkinparamKeyword DesignedDomainStereotypeFontName DesignedDomainStereotypeFontSize 239 | syntax keyword plantumlSkinparamKeyword DesignedDomainStereotypeFontStyle DiagramBorderColor DiagramBorderThickness 240 | syntax keyword plantumlSkinparamKeyword DomainBackgroundColor DomainBorderColor DomainBorderThickness DomainFontColor 241 | syntax keyword plantumlSkinparamKeyword DomainFontName DomainFontSize DomainFontStyle DomainStereotypeFontColor 242 | syntax keyword plantumlSkinparamKeyword DomainStereotypeFontName DomainStereotypeFontSize DomainStereotypeFontStyle Dpi 243 | syntax keyword plantumlSkinparamKeyword EntityFontColor EntityFontName EntityFontSize EntityFontStyle 244 | syntax keyword plantumlSkinparamKeyword EntityStereotypeFontColor EntityStereotypeFontName EntityStereotypeFontSize 245 | syntax keyword plantumlSkinparamKeyword EntityStereotypeFontStyle FileFontColor FileFontName FileFontSize FileFontStyle 246 | syntax keyword plantumlSkinparamKeyword FileStereotypeFontColor FileStereotypeFontName FileStereotypeFontSize 247 | syntax keyword plantumlSkinparamKeyword FileStereotypeFontStyle FixCircleLabelOverlapping FolderFontColor FolderFontName 248 | syntax keyword plantumlSkinparamKeyword FolderFontSize FolderFontStyle FolderStereotypeFontColor 249 | syntax keyword plantumlSkinparamKeyword FolderStereotypeFontName FolderStereotypeFontSize FolderStereotypeFontStyle 250 | syntax keyword plantumlSkinparamKeyword FooterFontColor FooterFontName FooterFontSize FooterFontStyle FrameFontColor 251 | syntax keyword plantumlSkinparamKeyword FrameFontName FrameFontSize FrameFontStyle FrameStereotypeFontColor 252 | syntax keyword plantumlSkinparamKeyword FrameStereotypeFontName FrameStereotypeFontSize FrameStereotypeFontStyle 253 | syntax keyword plantumlSkinparamKeyword GenericDisplay Guillemet Handwritten HeaderFontColor HeaderFontName 254 | syntax keyword plantumlSkinparamKeyword HeaderFontSize HeaderFontStyle HexagonBorderThickness HexagonFontColor 255 | syntax keyword plantumlSkinparamKeyword HexagonFontName HexagonFontSize HexagonFontStyle HexagonStereotypeFontColor 256 | syntax keyword plantumlSkinparamKeyword HexagonStereotypeFontName HexagonStereotypeFontSize HexagonStereotypeFontStyle 257 | syntax keyword plantumlSkinparamKeyword HyperlinkColor HyperlinkUnderline IconIEMandatoryColor 258 | syntax keyword plantumlSkinparamKeyword IconPackageBackgroundColor IconPackageColor IconPrivateBackgroundColor 259 | syntax keyword plantumlSkinparamKeyword IconPrivateColor IconProtectedBackgroundColor IconProtectedColor 260 | syntax keyword plantumlSkinparamKeyword IconPublicBackgroundColor IconPublicColor InterfaceFontColor InterfaceFontName 261 | syntax keyword plantumlSkinparamKeyword InterfaceFontSize InterfaceFontStyle InterfaceStereotypeFontColor 262 | syntax keyword plantumlSkinparamKeyword InterfaceStereotypeFontName InterfaceStereotypeFontSize 263 | syntax keyword plantumlSkinparamKeyword InterfaceStereotypeFontStyle LabelFontColor LabelFontName LabelFontSize 264 | syntax keyword plantumlSkinparamKeyword LabelFontStyle LabelStereotypeFontColor LabelStereotypeFontName 265 | syntax keyword plantumlSkinparamKeyword LabelStereotypeFontSize LabelStereotypeFontStyle LegendBorderThickness 266 | syntax keyword plantumlSkinparamKeyword LegendFontColor LegendFontName LegendFontSize LegendFontStyle 267 | syntax keyword plantumlSkinparamKeyword LexicalBackgroundColor LexicalBorderColor LifelineStrategy Linetype 268 | syntax keyword plantumlSkinparamKeyword MachineBackgroundColor MachineBorderColor MachineBorderThickness 269 | syntax keyword plantumlSkinparamKeyword MachineFontColor MachineFontName MachineFontSize MachineFontStyle 270 | syntax keyword plantumlSkinparamKeyword MachineStereotypeFontColor MachineStereotypeFontName MachineStereotypeFontSize 271 | syntax keyword plantumlSkinparamKeyword MachineStereotypeFontStyle MaxAsciiMessageLength MaxMessageSize MinClassWidth 272 | syntax keyword plantumlSkinparamKeyword Monochrome NodeFontColor NodeFontName NodeFontSize NodeFontStyle 273 | syntax keyword plantumlSkinparamKeyword NodeStereotypeFontColor NodeStereotypeFontName NodeStereotypeFontSize 274 | syntax keyword plantumlSkinparamKeyword NodeStereotypeFontStyle Nodesep NoteBackgroundColor NoteBorderColor 275 | syntax keyword plantumlSkinparamKeyword NoteBorderThickness NoteFontColor NoteFontName NoteFontSize NoteFontStyle 276 | syntax keyword plantumlSkinparamKeyword NoteShadowing NoteTextAlignment ObjectAttributeFontColor ObjectAttributeFontName 277 | syntax keyword plantumlSkinparamKeyword ObjectAttributeFontSize ObjectAttributeFontStyle ObjectBorderThickness 278 | syntax keyword plantumlSkinparamKeyword ObjectFontColor ObjectFontName ObjectFontSize ObjectFontStyle 279 | syntax keyword plantumlSkinparamKeyword ObjectStereotypeFontColor ObjectStereotypeFontName ObjectStereotypeFontSize 280 | syntax keyword plantumlSkinparamKeyword ObjectStereotypeFontStyle PackageBorderThickness PackageFontColor 281 | syntax keyword plantumlSkinparamKeyword PackageFontName PackageFontSize PackageFontStyle PackageStereotypeFontColor 282 | syntax keyword plantumlSkinparamKeyword PackageStereotypeFontName PackageStereotypeFontSize PackageStereotypeFontStyle 283 | syntax keyword plantumlSkinparamKeyword PackageStyle PackageTitleAlignment Padding PageBorderColor PageExternalColor 284 | syntax keyword plantumlSkinparamKeyword PageMargin ParticipantFontColor ParticipantFontName ParticipantFontSize 285 | syntax keyword plantumlSkinparamKeyword ParticipantFontStyle ParticipantPadding ParticipantStereotypeFontColor 286 | syntax keyword plantumlSkinparamKeyword ParticipantStereotypeFontName ParticipantStereotypeFontSize 287 | syntax keyword plantumlSkinparamKeyword ParticipantStereotypeFontStyle PartitionBorderThickness PartitionFontColor 288 | syntax keyword plantumlSkinparamKeyword PartitionFontName PartitionFontSize PartitionFontStyle PathHoverColor 289 | syntax keyword plantumlSkinparamKeyword PersonBorderThickness PersonFontColor PersonFontName PersonFontSize 290 | syntax keyword plantumlSkinparamKeyword PersonFontStyle PersonStereotypeFontColor PersonStereotypeFontName 291 | syntax keyword plantumlSkinparamKeyword PersonStereotypeFontSize PersonStereotypeFontStyle QueueBorderThickness 292 | syntax keyword plantumlSkinparamKeyword QueueFontColor QueueFontName QueueFontSize QueueFontStyle 293 | syntax keyword plantumlSkinparamKeyword QueueStereotypeFontColor QueueStereotypeFontName QueueStereotypeFontSize 294 | syntax keyword plantumlSkinparamKeyword QueueStereotypeFontStyle Ranksep RectangleBorderThickness RectangleFontColor 295 | syntax keyword plantumlSkinparamKeyword RectangleFontName RectangleFontSize RectangleFontStyle 296 | syntax keyword plantumlSkinparamKeyword RectangleStereotypeFontColor RectangleStereotypeFontName 297 | syntax keyword plantumlSkinparamKeyword RectangleStereotypeFontSize RectangleStereotypeFontStyle 298 | syntax keyword plantumlSkinparamKeyword RequirementBackgroundColor RequirementBorderColor RequirementBorderThickness 299 | syntax keyword plantumlSkinparamKeyword RequirementFontColor RequirementFontName RequirementFontSize 300 | syntax keyword plantumlSkinparamKeyword RequirementFontStyle RequirementStereotypeFontColor 301 | syntax keyword plantumlSkinparamKeyword RequirementStereotypeFontName RequirementStereotypeFontSize 302 | syntax keyword plantumlSkinparamKeyword RequirementStereotypeFontStyle ResponseMessageBelowArrow RoundCorner 303 | syntax keyword plantumlSkinparamKeyword SameClassWidth SequenceActorBorderThickness SequenceArrowThickness 304 | syntax keyword plantumlSkinparamKeyword SequenceBoxBorderColor SequenceBoxFontColor SequenceBoxFontName 305 | syntax keyword plantumlSkinparamKeyword SequenceBoxFontSize SequenceBoxFontStyle SequenceDelayFontColor 306 | syntax keyword plantumlSkinparamKeyword SequenceDelayFontName SequenceDelayFontSize SequenceDelayFontStyle 307 | syntax keyword plantumlSkinparamKeyword SequenceDividerBorderThickness SequenceDividerFontColor SequenceDividerFontName 308 | syntax keyword plantumlSkinparamKeyword SequenceDividerFontSize SequenceDividerFontStyle 309 | syntax keyword plantumlSkinparamKeyword SequenceGroupBodyBackgroundColor SequenceGroupBorderThickness 310 | syntax keyword plantumlSkinparamKeyword SequenceGroupFontColor SequenceGroupFontName SequenceGroupFontSize 311 | syntax keyword plantumlSkinparamKeyword SequenceGroupFontStyle SequenceGroupHeaderFontColor SequenceGroupHeaderFontName 312 | syntax keyword plantumlSkinparamKeyword SequenceGroupHeaderFontSize SequenceGroupHeaderFontStyle 313 | syntax keyword plantumlSkinparamKeyword SequenceLifeLineBorderColor SequenceLifeLineBorderThickness 314 | syntax keyword plantumlSkinparamKeyword SequenceMessageAlignment SequenceMessageTextAlignment 315 | syntax keyword plantumlSkinparamKeyword SequenceNewpageSeparatorColor SequenceParticipant 316 | syntax keyword plantumlSkinparamKeyword SequenceParticipantBorderThickness SequenceReferenceAlignment 317 | syntax keyword plantumlSkinparamKeyword SequenceReferenceBackgroundColor SequenceReferenceBorderThickness 318 | syntax keyword plantumlSkinparamKeyword SequenceReferenceFontColor SequenceReferenceFontName SequenceReferenceFontSize 319 | syntax keyword plantumlSkinparamKeyword SequenceReferenceFontStyle SequenceReferenceHeaderBackgroundColor 320 | syntax keyword plantumlSkinparamKeyword SequenceStereotypeFontColor SequenceStereotypeFontName 321 | syntax keyword plantumlSkinparamKeyword SequenceStereotypeFontSize SequenceStereotypeFontStyle Shadowing StackFontColor 322 | syntax keyword plantumlSkinparamKeyword StackFontName StackFontSize StackFontStyle StackStereotypeFontColor 323 | syntax keyword plantumlSkinparamKeyword StackStereotypeFontName StackStereotypeFontSize StackStereotypeFontStyle 324 | syntax keyword plantumlSkinparamKeyword StateAttributeFontColor StateAttributeFontName StateAttributeFontSize 325 | syntax keyword plantumlSkinparamKeyword StateAttributeFontStyle StateBorderColor StateFontColor StateFontName 326 | syntax keyword plantumlSkinparamKeyword StateFontSize StateFontStyle StateMessageAlignment StereotypePosition 327 | syntax keyword plantumlSkinparamKeyword StorageFontColor StorageFontName StorageFontSize StorageFontStyle 328 | syntax keyword plantumlSkinparamKeyword StorageStereotypeFontColor StorageStereotypeFontName StorageStereotypeFontSize 329 | syntax keyword plantumlSkinparamKeyword StorageStereotypeFontStyle Style SvglinkTarget SwimlaneBorderThickness 330 | syntax keyword plantumlSkinparamKeyword SwimlaneTitleFontColor SwimlaneTitleFontName SwimlaneTitleFontSize 331 | syntax keyword plantumlSkinparamKeyword SwimlaneTitleFontStyle SwimlaneWidth SwimlaneWrapTitleWidth TabSize 332 | syntax keyword plantumlSkinparamKeyword TimingFontColor TimingFontName TimingFontSize TimingFontStyle 333 | syntax keyword plantumlSkinparamKeyword TitleBorderRoundCorner TitleBorderThickness TitleFontColor TitleFontName 334 | syntax keyword plantumlSkinparamKeyword TitleFontSize TitleFontStyle UsecaseBorderThickness UsecaseFontColor 335 | syntax keyword plantumlSkinparamKeyword UsecaseFontName UsecaseFontSize UsecaseFontStyle UsecaseStereotypeFontColor 336 | syntax keyword plantumlSkinparamKeyword UsecaseStereotypeFontName UsecaseStereotypeFontSize UsecaseStereotypeFontStyle 337 | syntax keyword plantumlSkinparamKeyword WrapWidth 338 | 339 | " Not in 'java - jar plantuml.jar - language' output 340 | syntax keyword plantumlSkinparamKeyword activityArrowColor activityArrowFontColor activityArrowFontName 341 | syntax keyword plantumlSkinparamKeyword activityArrowFontSize activityArrowFontStyle BarColor BorderColor 342 | syntax keyword plantumlSkinparamKeyword CharacterFontColor CharacterFontName CharacterFontSize CharacterFontStyle 343 | syntax keyword plantumlSkinparamKeyword CharacterRadius classArrowColor classArrowFontColor classArrowFontName 344 | syntax keyword plantumlSkinparamKeyword classArrowFontSize classArrowFontStyle Color componentArrowColor 345 | syntax keyword plantumlSkinparamKeyword componentArrowFontColor componentArrowFontName componentArrowFontSize 346 | syntax keyword plantumlSkinparamKeyword componentArrowFontStyle componentInterfaceBackgroundColor 347 | syntax keyword plantumlSkinparamKeyword componentInterfaceBorderColor DividerBackgroundColor DividerFontColor 348 | syntax keyword plantumlSkinparamKeyword DividerFontName DividerFontSize DividerFontStyle EndColor FontColor FontName 349 | syntax keyword plantumlSkinparamKeyword FontSize FontStyle GroupBackgroundColor GroupingFontColor GroupingFontName 350 | syntax keyword plantumlSkinparamKeyword GroupingFontSize GroupingFontStyle GroupingHeaderFontColor 351 | syntax keyword plantumlSkinparamKeyword GroupingHeaderFontName GroupingHeaderFontSize GroupingHeaderFontStyle 352 | syntax keyword plantumlSkinparamKeyword LifeLineBackgroundColor LifeLineBorderColor 353 | syntax keyword plantumlSkinparamKeyword LineColor LineStyle LineThickness 354 | syntax keyword plantumlSkinparamKeyword sequenceActorBackgroundColor sequenceActorBorderColor sequenceActorFontColor 355 | syntax keyword plantumlSkinparamKeyword sequenceActorFontName sequenceActorFontSize sequenceActorFontStyle 356 | syntax keyword plantumlSkinparamKeyword sequenceArrowColor sequenceArrowFontColor sequenceArrowFontName 357 | syntax keyword plantumlSkinparamKeyword sequenceArrowFontSize sequenceArrowFontStyle sequenceGroupingFontColor 358 | syntax keyword plantumlSkinparamKeyword sequenceGroupingFontName sequenceGroupingFontSize sequenceGroupingFontStyle 359 | syntax keyword plantumlSkinparamKeyword sequenceGroupingHeaderFontColor sequenceGroupingHeaderFontName 360 | syntax keyword plantumlSkinparamKeyword sequenceGroupingHeaderFontSize sequenceGroupingHeaderFontStyle 361 | syntax keyword plantumlSkinparamKeyword sequenceParticipantBackgroundColor sequenceParticipantBorderColor 362 | syntax keyword plantumlSkinparamKeyword sequenceParticipantFontColor sequenceParticipantFontName 363 | syntax keyword plantumlSkinparamKeyword sequenceParticipantFontSize sequenceParticipantFontStyle StartColor 364 | syntax keyword plantumlSkinparamKeyword stateArrowColor stateArrowFontColor stateArrowFontName stateArrowFontSize 365 | syntax keyword plantumlSkinparamKeyword stateArrowFontStyle StereotypeFontColor StereotypeFontName StereotypeFontSize 366 | syntax keyword plantumlSkinparamKeyword StereotypeFontStyle usecaseActorBackgroundColor usecaseActorBorderColor 367 | syntax keyword plantumlSkinparamKeyword usecaseActorFontColor usecaseActorFontName usecaseActorFontSize 368 | syntax keyword plantumlSkinparamKeyword usecaseActorFontStyle usecaseActorStereotypeFontColor 369 | syntax keyword plantumlSkinparamKeyword usecaseActorStereotypeFontName usecaseActorStereotypeFontSize 370 | syntax keyword plantumlSkinparamKeyword usecaseActorStereotypeFontStyle usecaseArrowColor usecaseArrowFontColor 371 | syntax keyword plantumlSkinparamKeyword usecaseArrowFontName usecaseArrowFontSize usecaseArrowFontStyle 372 | syntax case match 373 | 374 | " Other style keywords not found in plantumlSkinparamKeyword 375 | " Some are not implemented (yet) 376 | " see https://plantuml.com/fr/style-evolution 377 | " TODO: put those keywords in a new "