neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

mermaid.vim (2865B)


      1 " Vim syntax file
      2 " Language:     Mermaid
      3 " Maintainer:   Craig MacEahern <https://github.com/craigmac/vim-mermaid>
      4 " Filenames:    *.mmd
      5 " Last Change:  2023 Dec 26
      6 
      7 if exists("b:current_syntax")
      8  finish
      9 endif
     10 
     11 let s:cpo_save = &cpo
     12 set cpo&vim
     13 
     14 syntax iskeyword @,48-57,192-255,$,_,-,:
     15 syntax keyword mermaidKeyword
     16 \ _blank
     17 \ _self
     18 \ _parent
     19 \ _top
     20 \ ::icon
     21 \ accDescr
     22 \ accTitle
     23 \ actor
     24 \ activate
     25 \ alt
     26 \ and
     27 \ as
     28 \ autonumber
     29 \ branch
     30 \ break
     31 \ callback
     32 \ checkout
     33 \ class
     34 \ classDef
     35 \ classDiagram
     36 \ click
     37 \ commit
     38 \ commitgitGraph
     39 \ critical
     40 \ dataFormat
     41 \ dateFormat
     42 \ deactivate
     43 \ direction
     44 \ element
     45 \ else
     46 \ end
     47 \ erDiagram
     48 \ flowchart
     49 \ gantt
     50 \ gitGraph
     51 \ graph
     52 \ journey
     53 \ link
     54 \ LR
     55 \ TD
     56 \ TB
     57 \ RL
     58 \ loop
     59 \ merge
     60 \ mindmap root
     61 \ Note
     62 \ Note right of
     63 \ Note left of
     64 \ Note over
     65 \ note
     66 \ note right of
     67 \ note left of
     68 \ note over
     69 \ opt
     70 \ option
     71 \ par
     72 \ participant
     73 \ pie
     74 \ rect
     75 \ requirement
     76 \ rgb
     77 \ section
     78 \ sequenceDiagram
     79 \ state
     80 \ stateDiagram
     81 \ stateDiagram-v2
     82 \ style
     83 \ subgraph
     84 \ title
     85 highlight link mermaidKeyword Keyword
     86 
     87 syntax match mermaidStatement "|"
     88 syntax match mermaidStatement "\~\~\~"
     89 syntax match mermaidStatement "--"
     90 syntax match mermaidStatement "\%(<|\|[<*o]\)\?\%(--\|\.\.\)\%(|>\|[>*o]\)\?"
     91 syntax match mermaidStatement "-\{2,4}[>ox-]"
     92 syntax match mermaidStatement "\.-[>ox]"
     93 syntax match mermaidStatement "-\."
     94 syntax match mermaidStatement "-\.\{1,3}-"
     95 syntax match mermaidStatement "=="
     96 syntax match mermaidStatement "=\{2,4}[>ox=]"
     97 syntax match mermaidStatement "&"
     98 syntax match mermaidStatement "--\?[>x)]>\?[+-]\?"
     99 syntax match mermaidStatement "x--x"
    100 syntax match mermaidStatement "o--o\?"
    101 syntax match mermaidStatement "<-->\?"
    102 syntax match mermaidStatement ":::"
    103 syntax match mermaidStatement "||--o{"
    104 highlight link mermaidStatement Statement
    105 
    106 " FIXME: This unexpectedly matches flow chart node `id1(text)` or others.
    107 "syntax match mermaidIdentifier "[\+-]\?\w\+(.*)[\$\*]\?"
    108 "highlight link mermaidIdentifier Identifier
    109 
    110 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*[\*&]\)*"
    111 syntax match mermaidType "[\+-\#\~]\?\c\%(const\s\+\|\*\s*\)*\%(double\|float\|String\|bool\)\>\%(\s\+const\|\s*[\*&]\)*"
    112 syntax match mermaidType "[\+-\#\~]\?\cBigDecimal\>"
    113 syntax match mermaidType "[\+-\#\~]\?\cList\~.\+\~"
    114 syntax match mermaidType "<<\w\+>>"
    115 highlight link mermaidType Type
    116 
    117 syntax match mermaidComment "%%.*$"
    118 highlight link mermaidComment Comment
    119 
    120 syntax region mermaidDirective start="%%{" end="\}%%"
    121 highlight link mermaidDirective PreProc
    122 
    123 syntax region mermaidString start=/"/ skip=/\\"/ end=/"/
    124 highlight link mermaidString String
    125 
    126 let b:current_syntax = "mermaid"
    127 
    128 let &cpo = s:cpo_save
    129 unlet s:cpo_save
    130 
    131 " vim:set sw=2: