changeset 34023:681a291388d5

runtime(mermaid): Syntax fix (#13774) Commit: https://github.com/vim/vim/commit/a03647acc313edfcc4f9cde07efe388762ada436 Author: KSR-Yasuda <31273423+KSR-Yasuda@users.noreply.github.com> Date: Thu Dec 28 03:02:35 2023 +0900 runtime(mermaid): Syntax fix (https://github.com/vim/vim/issues/13774) * runtime(mermaid): Fix arrow syntax * runtime(mermaid): Disable syntax for identifier to avoid false match * runtime(mermaid): Add some C++ type syntax highlight * runtime(mermaid): Update last change time in header Signed-off-by: yasuda <yasuda@kyoto-sr.co.jp> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 27 Dec 2023 19:15:05 +0100
parents dc7094ebb231
children 5491229840a3
files runtime/syntax/mermaid.vim
diffstat 1 files changed, 14 insertions(+), 38 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/syntax/mermaid.vim
+++ b/runtime/syntax/mermaid.vim
@@ -2,7 +2,7 @@
 " Language:     Mermaid
 " Maintainer:   Craig MacEahern <https://github.com/craigmac/vim-mermaid>
 " Filenames:    *.mmd
-" Last Change:  2022 Nov 22
+" Last Change:  2023 Dec 26
 
 if exists("b:current_syntax")
   finish
@@ -85,54 +85,30 @@ syntax keyword mermaidKeyword
 highlight link mermaidKeyword Keyword
 
 syntax match mermaidStatement "|"
-syntax match mermaidStatement "--\?[>x)]>\?+\?-\?"
 syntax match mermaidStatement "\~\~\~"
 syntax match mermaidStatement "--"
-syntax match mermaidStatement "---"
-syntax match mermaidStatement "-->"
+syntax match mermaidStatement "\%(<|\|[<*o]\)\?\%(--\|\.\.\)\%(|>\|[>*o]\)\?"
+syntax match mermaidStatement "-\{2,4}[>ox-]"
+syntax match mermaidStatement "\.-[>ox]"
 syntax match mermaidStatement "-\."
-syntax match mermaidStatement "\.->"
-syntax match mermaidStatement "-\.-"
-syntax match mermaidStatement "-\.\.-"
-syntax match mermaidStatement "-\.\.\.-"
+syntax match mermaidStatement "-\.\{1,3}-"
 syntax match mermaidStatement "=="
-syntax match mermaidStatement "==>"
-syntax match mermaidStatement "===>"
-syntax match mermaidStatement "====>"
+syntax match mermaidStatement "=\{2,4}[>ox=]"
 syntax match mermaidStatement "&"
-syntax match mermaidStatement "--o"
-syntax match mermaidStatement "--x"
+syntax match mermaidStatement "--\?[>x)]>\?[+-]\?"
 syntax match mermaidStatement "x--x"
-syntax match mermaidStatement "-----"
-syntax match mermaidStatement "---->"
-syntax match mermaidStatement "==="
-syntax match mermaidStatement "===="
-syntax match mermaidStatement "====="
+syntax match mermaidStatement "o--o\?"
+syntax match mermaidStatement "<-->\?"
 syntax match mermaidStatement ":::"
-syntax match mermaidStatement "<|--"
-syntax match mermaidStatement "\*--"
-syntax match mermaidStatement "o--"
-syntax match mermaidStatement "o--o"
-syntax match mermaidStatement "<--"
-syntax match mermaidStatement "<-->"
-syntax match mermaidStatement "\.\."
-syntax match mermaidStatement "<\.\."
-syntax match mermaidStatement "<|\.\."
-syntax match mermaidStatement "--|>"
-syntax match mermaidStatement "--\*"
-syntax match mermaidStatement "--o"
-syntax match mermaidStatement "\.\.>"
-syntax match mermaidStatement "\.\.|>"
-syntax match mermaidStatement "<|--|>"
 syntax match mermaidStatement "||--o{"
 highlight link mermaidStatement Statement
 
-syntax match mermaidIdentifier "[\+-]\?\w\+(.*)[\$\*]\?"
-highlight link mermaidIdentifier Identifier
+" FIXME: This unexpectedly matches flow chart node `id1(text)` or others.
+"syntax match mermaidIdentifier "[\+-]\?\w\+(.*)[\$\*]\?"
+"highlight link mermaidIdentifier Identifier
 
-syntax match mermaidType "[\+-\#\~]\?\cint\>"
-syntax match mermaidType "[\+-\#\~]\?\cString\>"
-syntax match mermaidType "[\+-\#\~]\?\cbool\>"
+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*[\*&]\)*"
 syntax match mermaidType "[\+-\#\~]\?\cBigDecimal\>"
 syntax match mermaidType "[\+-\#\~]\?\cList\~.\+\~"
 syntax match mermaidType "<<\w\+>>"