blob: 9f51cad380676e8284e42ef0e3be53e0050d7ae5 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Slrn score file (based on slrn 0.9.8.0)
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00003" Maintainer: Preben 'Peppe' Guldberg <peppe@wielders.org>
4" Last Change: 8 Oct 2004
Bram Moolenaar071d4272004-06-13 20:20:40 +00005
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02006" quit when a syntax file was already loaded
7if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00008 finish
9endif
10
11" characters in newsgroup names
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012setlocal isk=@,48-57,.,-,_,+
Bram Moolenaar071d4272004-06-13 20:20:40 +000013
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 "%.*"
Bram Moolenaar7b0294c2004-10-11 10:16:09 +000044syn match slrnScoreLine "^\s*Score::\=\s\+=\=[-+]\=\d\+\s*\(%.*\)\=$" skipempty nextgroup=slrnscScoreItem contains=slrnscScore,slrnscDelim,slrnscOper,slrnscNumber,slrnscScoreIdent
Bram Moolenaar071d4272004-06-13 20:20:40 +000045
46" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020047" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000048
Bram Moolenaarf37506f2016-08-31 22:22:10 +020049hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000064
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
66let b:current_syntax = "slrnsc"
67
68"EOF vim: ts=8 noet tw=200 sw=8 sts=0