slrnsc.vim 3.0 KB

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