blob: c10f1a4569eb9aebb723b83be06d5d9761228d1b [file] [log] [blame]
Bram Moolenaar89a9c152021-08-29 21:55:35 +02001" Vim syntax file
2" Language: Structurizr DSL
3" Maintainer: Bastian Venthur <venthur@debian.org>
Duke39f52a62024-11-07 22:05:32 +01004" Last Change: 2024-11-06
Bram Moolenaar89a9c152021-08-29 21:55:35 +02005" Remark: For a language reference, see
Duke39f52a62024-11-07 22:05:32 +01006" https://docs.structurizr.com/dsl/language
Bram Moolenaar89a9c152021-08-29 21:55:35 +02007
8if exists("b:current_syntax")
9 finish
10endif
11
12syn case ignore
13
14" comments
15syn match scomment "#.*$"
16syn match scomment "//.*$"
17syn region scomment start="/\*" end="\*/"
18
19" keywords
20syn keyword skeyword animation
21syn keyword skeyword autoLayout
Duke39f52a62024-11-07 22:05:32 +010022syn keyword skeyword background
23syn keyword skeyword border
Bram Moolenaar89a9c152021-08-29 21:55:35 +020024syn keyword skeyword branding
Duke39f52a62024-11-07 22:05:32 +010025syn keyword skeyword color
26syn keyword skeyword colour
Bram Moolenaar89a9c152021-08-29 21:55:35 +020027syn keyword skeyword component
28syn keyword skeyword configuration
29syn keyword skeyword container
30syn keyword skeyword containerinstance
31syn keyword skeyword custom
Bram Moolenaar10e8ff92023-06-10 21:40:39 +010032syn keyword skeyword default
Bram Moolenaar89a9c152021-08-29 21:55:35 +020033syn keyword skeyword deployment
34syn keyword skeyword deploymentenvironment
35syn keyword skeyword deploymentgroup
36syn keyword skeyword deploymentnode
Bram Moolenaar944697a2022-02-20 19:48:20 +000037syn keyword skeyword description
Bram Moolenaar89a9c152021-08-29 21:55:35 +020038syn keyword skeyword dynamic
39syn keyword skeyword element
40syn keyword skeyword enterprise
41syn keyword skeyword exclude
42syn keyword skeyword filtered
Duke39f52a62024-11-07 22:05:32 +010043syn keyword skeyword font
44syn keyword skeyword fontsize
Bram Moolenaar89a9c152021-08-29 21:55:35 +020045syn keyword skeyword group
46syn keyword skeyword healthcheck
Duke39f52a62024-11-07 22:05:32 +010047syn keyword skeyword height
48syn keyword skeyword icon
49syn keyword skeyword image
Bram Moolenaar89a9c152021-08-29 21:55:35 +020050syn keyword skeyword include
51syn keyword skeyword infrastructurenode
Bram Moolenaar10e8ff92023-06-10 21:40:39 +010052syn keyword skeyword instances
Duke39f52a62024-11-07 22:05:32 +010053syn keyword skeyword logo
54syn keyword skeyword metadata
Bram Moolenaar89a9c152021-08-29 21:55:35 +020055syn keyword skeyword model
Duke39f52a62024-11-07 22:05:32 +010056syn keyword skeyword opacity
Bram Moolenaar89a9c152021-08-29 21:55:35 +020057syn keyword skeyword person
58syn keyword skeyword perspectives
59syn keyword skeyword properties
60syn keyword skeyword relationship
Duke39f52a62024-11-07 22:05:32 +010061syn keyword skeyword routing
62syn keyword skeyword scope
63syn keyword skeyword shape
Bram Moolenaar89a9c152021-08-29 21:55:35 +020064syn keyword skeyword softwaresystem
65syn keyword skeyword softwaresysteminstance
Duke39f52a62024-11-07 22:05:32 +010066syn keyword skeyword stroke
67syn keyword skeyword strokewidth
Bram Moolenaar89a9c152021-08-29 21:55:35 +020068syn keyword skeyword styles
69syn keyword skeyword systemcontext
70syn keyword skeyword systemlandscape
Duke39f52a62024-11-07 22:05:32 +010071syn keyword skeyword tag
Bram Moolenaar89a9c152021-08-29 21:55:35 +020072syn keyword skeyword tags
Bram Moolenaar944697a2022-02-20 19:48:20 +000073syn keyword skeyword technology
Bram Moolenaar89a9c152021-08-29 21:55:35 +020074syn keyword skeyword terminology
75syn keyword skeyword theme
Bram Moolenaar10e8ff92023-06-10 21:40:39 +010076syn keyword skeyword themes
Duke39f52a62024-11-07 22:05:32 +010077syn keyword skeyword thickness
78syn keyword skeyword this
Bram Moolenaar89a9c152021-08-29 21:55:35 +020079syn keyword skeyword title
80syn keyword skeyword url
81syn keyword skeyword users
82syn keyword skeyword views
Duke39f52a62024-11-07 22:05:32 +010083syn keyword skeyword visibility
84syn keyword skeyword width
Bram Moolenaar89a9c152021-08-29 21:55:35 +020085syn keyword skeyword workspace
86
87syn match skeyword "\!adrs\s\+"
Duke39f52a62024-11-07 22:05:32 +010088syn match skeyword "\!components\s\+"
Bram Moolenaar89a9c152021-08-29 21:55:35 +020089syn match skeyword "\!docs\s\+"
Duke39f52a62024-11-07 22:05:32 +010090syn match skeyword "\!element\s\+"
91syn match skeyword "\!elements\s\+"
92syn match skeyword "\!extend\s\+"
Bram Moolenaar89a9c152021-08-29 21:55:35 +020093syn match skeyword "\!identifiers\s\+"
Bram Moolenaar944697a2022-02-20 19:48:20 +000094syn match skeyword "\!impliedrelationships\s\+"
Bram Moolenaar89a9c152021-08-29 21:55:35 +020095syn match skeyword "\!include\s\+"
Bram Moolenaar944697a2022-02-20 19:48:20 +000096syn match skeyword "\!plugin\s\+"
97syn match skeyword "\!ref\s\+"
Duke39f52a62024-11-07 22:05:32 +010098syn match skeyword "\!relationship\s\+"
99syn match skeyword "\!relationships\s\+"
Bram Moolenaar944697a2022-02-20 19:48:20 +0000100syn match skeyword "\!script\s\+"
Bram Moolenaar89a9c152021-08-29 21:55:35 +0200101
102syn region sstring oneline start='"' end='"'
103
104syn region sblock start='{' end='}' fold transparent
105
Duke39f52a62024-11-07 22:05:32 +0100106syn match soperator "\->\s+"
107
Bram Moolenaar89a9c152021-08-29 21:55:35 +0200108hi def link sstring string
109hi def link scomment comment
110hi def link skeyword keyword
Duke39f52a62024-11-07 22:05:32 +0100111hi def link soperator operator
Bram Moolenaar89a9c152021-08-29 21:55:35 +0200112
113let b:current_syntax = "structurizr"