blob: a5dfa55e54f3d5ab6c7998cebcdab7b2dae9c242 [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
48command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020050HiLink slrnscComment Comment
51HiLink slrnscSectionCom slrnscComment
52HiLink slrnscGroup String
53HiLink slrnscNumber Number
54HiLink slrnscDate Special
55HiLink slrnscDelim Delimiter
56HiLink slrnscComma SpecialChar
57HiLink slrnscOper SpecialChar
58HiLink slrnscEsc String
59HiLink slrnscSectionStd Type
60HiLink slrnscSectionNot Delimiter
61HiLink slrnscItem Statement
62HiLink slrnscScore Keyword
63HiLink slrnscScoreIdent Identifier
64HiLink slrnscInclude Keyword
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020066delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000067
68let b:current_syntax = "slrnsc"
69
70"EOF vim: ts=8 noet tw=200 sw=8 sts=0