2022-11-24 03:23:50 -07:00
|
|
|
" Vim syntax file
|
|
|
|
" Language: Mermaid
|
|
|
|
" Maintainer: Craig MacEahern <https://github.com/craigmac/vim-mermaid>
|
|
|
|
" Filenames: *.mmd
|
2023-12-27 11:03:37 -07:00
|
|
|
" Last Change: 2023 Dec 26
|
2022-11-24 03:23:50 -07:00
|
|
|
|
|
|
|
if exists("b:current_syntax")
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
|
|
|
let s:cpo_save = &cpo
|
|
|
|
set cpo&vim
|
|
|
|
|
|
|
|
syntax iskeyword @,48-57,192-255,$,_,-,:
|
|
|
|
syntax keyword mermaidKeyword
|
|
|
|
\ _blank
|
|
|
|
\ _self
|
|
|
|
\ _parent
|
|
|
|
\ _top
|
|
|
|
\ ::icon
|
|
|
|
\ accDescr
|
|
|
|
\ accTitle
|
|
|
|
\ actor
|
|
|
|
\ activate
|
|
|
|
\ alt
|
|
|
|
\ and
|
|
|
|
\ as
|
|
|
|
\ autonumber
|
|
|
|
\ branch
|
|
|
|
\ break
|
|
|
|
\ callback
|
|
|
|
\ checkout
|
|
|
|
\ class
|
|
|
|
\ classDef
|
|
|
|
\ classDiagram
|
|
|
|
\ click
|
|
|
|
\ commit
|
|
|
|
\ commitgitGraph
|
|
|
|
\ critical
|
|
|
|
\ dataFormat
|
|
|
|
\ dateFormat
|
|
|
|
\ deactivate
|
|
|
|
\ direction
|
|
|
|
\ element
|
|
|
|
\ else
|
|
|
|
\ end
|
|
|
|
\ erDiagram
|
|
|
|
\ flowchart
|
|
|
|
\ gantt
|
|
|
|
\ gitGraph
|
|
|
|
\ graph
|
|
|
|
\ journey
|
|
|
|
\ link
|
|
|
|
\ LR
|
|
|
|
\ TD
|
|
|
|
\ TB
|
|
|
|
\ RL
|
|
|
|
\ loop
|
|
|
|
\ merge
|
|
|
|
\ mindmap root
|
|
|
|
\ Note
|
|
|
|
\ Note right of
|
|
|
|
\ Note left of
|
|
|
|
\ Note over
|
|
|
|
\ note
|
|
|
|
\ note right of
|
|
|
|
\ note left of
|
|
|
|
\ note over
|
|
|
|
\ opt
|
|
|
|
\ option
|
|
|
|
\ par
|
|
|
|
\ participant
|
|
|
|
\ pie
|
|
|
|
\ rect
|
|
|
|
\ requirement
|
|
|
|
\ rgb
|
|
|
|
\ section
|
|
|
|
\ sequenceDiagram
|
|
|
|
\ state
|
|
|
|
\ stateDiagram
|
|
|
|
\ stateDiagram-v2
|
|
|
|
\ style
|
|
|
|
\ subgraph
|
|
|
|
\ title
|
|
|
|
highlight link mermaidKeyword Keyword
|
|
|
|
|
|
|
|
syntax match mermaidStatement "|"
|
|
|
|
syntax match mermaidStatement "\~\~\~"
|
|
|
|
syntax match mermaidStatement "--"
|
2023-12-27 11:03:37 -07:00
|
|
|
syntax match mermaidStatement "\%(<|\|[<*o]\)\?\%(--\|\.\.\)\%(|>\|[>*o]\)\?"
|
|
|
|
syntax match mermaidStatement "-\{2,4}[>ox-]"
|
|
|
|
syntax match mermaidStatement "\.-[>ox]"
|
2022-11-24 03:23:50 -07:00
|
|
|
syntax match mermaidStatement "-\."
|
2023-12-27 11:03:37 -07:00
|
|
|
syntax match mermaidStatement "-\.\{1,3}-"
|
2022-11-24 03:23:50 -07:00
|
|
|
syntax match mermaidStatement "=="
|
2023-12-27 11:03:37 -07:00
|
|
|
syntax match mermaidStatement "=\{2,4}[>ox=]"
|
2022-11-24 03:23:50 -07:00
|
|
|
syntax match mermaidStatement "&"
|
2023-12-27 11:03:37 -07:00
|
|
|
syntax match mermaidStatement "--\?[>x)]>\?[+-]\?"
|
2022-11-24 03:23:50 -07:00
|
|
|
syntax match mermaidStatement "x--x"
|
2023-12-27 11:03:37 -07:00
|
|
|
syntax match mermaidStatement "o--o\?"
|
|
|
|
syntax match mermaidStatement "<-->\?"
|
2022-11-24 03:23:50 -07:00
|
|
|
syntax match mermaidStatement ":::"
|
|
|
|
syntax match mermaidStatement "||--o{"
|
|
|
|
highlight link mermaidStatement Statement
|
|
|
|
|
2023-12-27 11:03:37 -07:00
|
|
|
" FIXME: This unexpectedly matches flow chart node `id1(text)` or others.
|
|
|
|
"syntax match mermaidIdentifier "[\+-]\?\w\+(.*)[\$\*]\?"
|
|
|
|
"highlight link mermaidIdentifier Identifier
|
2022-11-24 03:23:50 -07:00
|
|
|
|
2023-12-27 11:03:37 -07:00
|
|
|
syntax match mermaidType "[\+-\#\~]\?\c\%(const\s\+\|\*\s*\)*\%(unsigned\s\+\)\?\%(int\|u\?int\%(8\|16\|32\|64\)_t\|char\|long\|long\s\+long\)\>\%(\s\+const\|\s*[\*&]\)*"
|
|
|
|
syntax match mermaidType "[\+-\#\~]\?\c\%(const\s\+\|\*\s*\)*\%(double\|float\|String\|bool\)\>\%(\s\+const\|\s*[\*&]\)*"
|
2022-11-24 03:23:50 -07:00
|
|
|
syntax match mermaidType "[\+-\#\~]\?\cBigDecimal\>"
|
|
|
|
syntax match mermaidType "[\+-\#\~]\?\cList\~.\+\~"
|
|
|
|
syntax match mermaidType "<<\w\+>>"
|
|
|
|
highlight link mermaidType Type
|
|
|
|
|
|
|
|
syntax match mermaidComment "%%.*$"
|
|
|
|
highlight link mermaidComment Comment
|
|
|
|
|
|
|
|
syntax region mermaidDirective start="%%{" end="\}%%"
|
|
|
|
highlight link mermaidDirective PreProc
|
|
|
|
|
|
|
|
syntax region mermaidString start=/"/ skip=/\\"/ end=/"/
|
|
|
|
highlight link mermaidString String
|
|
|
|
|
|
|
|
let b:current_syntax = "mermaid"
|
|
|
|
|
|
|
|
let &cpo = s:cpo_save
|
|
|
|
unlet s:cpo_save
|
|
|
|
|
|
|
|
" vim:set sw=2:
|