neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

slrnsc.vim (3098B)


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