blob: 25c9c5433b90748da7ca1258ffbbb1a3a5d7094e [file] [log] [blame]
Bram Moolenaar6aa57292021-08-14 21:25:52 +02001" Syntax file for scdoc files
2" Maintainer: Gregory Anders <greg@gpanders.com>
3" Last Updated: 2021-08-04
4
5if exists('b:current_syntax')
6 finish
7endif
8let b:current_syntax = 'scdoc'
9
10syntax match scdocFirstLineError "\%^.*$"
11syntax match scdocFirstLineValid "\%^\S\+(\d[0-9A-Za-z]*)\%(\s\+\"[^"]*\"\%(\s\+\"[^"]*\"\)\=\)\=$"
12
13syntax region scdocCommentError start="^;\S" end="$" keepend
14syntax region scdocComment start="^; " end="$" keepend
15
16syntax region scdocHeaderError start="^#\{3,}" end="$" keepend
17syntax region scdocHeader start="^#\{1,2}" end="$" keepend
18
19syntax match scdocIndentError "^[ ]\+"
20
21syntax match scdocLineBreak "++$"
22
23syntax match scdocOrderedListMarker "^\s*\.\%(\s\+\S\)\@="
24syntax match scdocListMarker "^\s*-\%(\s\+\S\)\@="
25
26syntax match scdocTableStartMarker "^[\[|\]][\[\-\]]"
27syntax match scdocTableMarker "^[|:][\[\-\] ]"
28
29syntax region scdocBold concealends matchgroup=scdocBoldDelimiter start="\\\@<!\*" end="\\\@<!\*"
30syntax region scdocUnderline concealends matchgroup=scdocUnderlineDelimiter start="\<\\\@<!_" end="\\\@<!_\>"
31syntax region scdocPre matchgroup=scdocPreDelimiter start="^\t*```" end="^\t*```"
32
33hi link scdocFirstLineValid Comment
34hi link scdocComment Comment
35hi link scdocHeader Title
36hi link scdocOrderedListMarker Statement
37hi link scdocListMarker scdocOrderedListMarker
38hi link scdocLineBreak Special
39hi link scdocTableMarker Statement
40hi link scdocTableStartMarker scdocTableMarker
41
42hi link scdocFirstLineError Error
43hi link scdocCommentError Error
44hi link scdocHeaderError Error
45hi link scdocIndentError Error
46
47hi link scdocPreDelimiter Delimiter
48
49hi scdocBold term=bold cterm=bold gui=bold
50hi scdocUnderline term=underline cterm=underline gui=underline
51hi link scdocBoldDelimiter scdocBold
52hi link scdocUnderlineDelimiter scdocUnderline