xref: /vim-8.2.3635/runtime/syntax/slrnsc.vim (revision f37506f6)
1" Vim syntax file
2" Language:	Slrn score file (based on slrn 0.9.8.0)
3" Maintainer:	Preben 'Peppe' Guldberg <[email protected]>
4" Last Change:	8 Oct 2004
5
6" quit when a syntax file was already loaded
7if exists("b:current_syntax")
8  finish
9endif
10
11" characters in newsgroup names
12setlocal isk=@,48-57,.,-,_,+
13
14syn match slrnscComment		"%.*$"
15syn match slrnscSectionCom	".].*"lc=2
16
17syn match slrnscGroup		contained "\(\k\|\*\)\+"
18syn match slrnscNumber		contained "\d\+"
19syn match slrnscDate		contained "\(\d\{1,2}[-/]\)\{2}\d\{4}"
20syn match slrnscDelim		contained ":"
21syn match slrnscComma		contained ","
22syn match slrnscOper		contained "\~"
23syn match slrnscEsc		contained "\\[ecC<>.]"
24syn match slrnscEsc		contained "[?^]"
25syn match slrnscEsc		contained "[^\\]$\s*$"lc=1
26
27syn keyword slrnscInclude	contained include
28syn match slrnscIncludeLine	"^\s*Include\s\+\S.*$"
29
30syn region slrnscSection	matchgroup=slrnscSectionStd start="^\s*\[" end='\]' contains=slrnscGroup,slrnscComma,slrnscSectionCom
31syn region slrnscSection	matchgroup=slrnscSectionNot start="^\s*\[\~" end='\]' contains=slrnscGroup,slrnscCommas,slrnscSectionCom
32
33syn keyword slrnscItem		contained Age Bytes Date Expires From Has-Body Lines Message-Id Newsgroup References Subject Xref
34
35syn match slrnscScoreItem	contained "%.*$"						skipempty nextgroup=slrnscScoreItem contains=slrnscComment
36syn match slrnscScoreItem	contained "^\s*Expires:\s*\(\d\{1,2}[-/]\)\{2}\d\{4}\s*$"	skipempty nextgroup=slrnscScoreItem contains=slrnscItem,slrnscDelim,slrnscDate
37syn match slrnscScoreItem	contained "^\s*\~\=\(Age\|Bytes\|Has-Body\|Lines\):\s*\d\+\s*$"	skipempty nextgroup=slrnscScoreItem contains=slrnscOper,slrnscItem,slrnscDelim,slrnscNumber
38syn match slrnscScoreItemFill	contained ".*$"							skipempty nextgroup=slrnscScoreItem contains=slrnscEsc
39syn match slrnscScoreItem	contained "^\s*\~\=\(Date\|From\|Message-Id\|Newsgroup\|References\|Subject\|Xref\):"	nextgroup=slrnscScoreItemFill contains=slrnscOper,slrnscItem,slrnscDelim
40syn region slrnscScoreItem	contained matchgroup=Special start="^\s*\~\={::\=" end="^\s*}" skipempty nextgroup=slrnscScoreItem contains=slrnscScoreItem
41
42syn keyword slrnscScore		contained Score
43syn match slrnscScoreIdent	contained "%.*"
44syn match slrnScoreLine		"^\s*Score::\=\s\+=\=[-+]\=\d\+\s*\(%.*\)\=$" skipempty nextgroup=slrnscScoreItem contains=slrnscScore,slrnscDelim,slrnscOper,slrnscNumber,slrnscScoreIdent
45
46" Define the default highlighting.
47" Only when an item doesn't have highlighting yet
48
49hi def link slrnscComment		Comment
50hi def link slrnscSectionCom	slrnscComment
51hi def link slrnscGroup		String
52hi def link slrnscNumber		Number
53hi def link slrnscDate		Special
54hi def link slrnscDelim		Delimiter
55hi def link slrnscComma		SpecialChar
56hi def link slrnscOper		SpecialChar
57hi def link slrnscEsc		String
58hi def link slrnscSectionStd	Type
59hi def link slrnscSectionNot	Delimiter
60hi def link slrnscItem		Statement
61hi def link slrnscScore		Keyword
62hi def link slrnscScoreIdent	Identifier
63hi def link slrnscInclude		Keyword
64
65
66let b:current_syntax = "slrnsc"
67
68"EOF	vim: ts=8 noet tw=200 sw=8 sts=0
69