abc.vim 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. " Vim syntax file
  2. " Language: abc music notation language
  3. " Maintainer: James Allwright <J.R.Allwright@westminster.ac.uk>
  4. " URL: http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim
  5. " Last Change: 27th April 2001
  6. " quit when a syntax file was already loaded
  7. if exists("b:current_syntax")
  8. finish
  9. endif
  10. " tags
  11. syn region abcGuitarChord start=+"[A-G]+ end=+"+ contained
  12. syn match abcNote "z[1-9]*[0-9]*" contained
  13. syn match abcNote "z[1-9]*[0-9]*/[248]\=" contained
  14. syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*" contained
  15. syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*/[248]\=" contained
  16. syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*" contained
  17. syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*/[248]\=" contained
  18. syn match abcBar "|" contained
  19. syn match abcBar "[:|][:|]" contained
  20. syn match abcBar ":|2" contained
  21. syn match abcBar "|1" contained
  22. syn match abcBar "\[[12]" contained
  23. syn match abcTuple "([1-9]\+:\=[0-9]*:\=[0-9]*" contained
  24. syn match abcBroken "<\|<<\|<<<\|>\|>>\|>>>" contained
  25. syn match abcTie "-"
  26. syn match abcHeadField "^[A-EGHIK-TVWXZ]:.*$" contained
  27. syn match abcBodyField "^[KLMPQWVw]:.*$" contained
  28. syn region abcHeader start="^X:" end="^K:.*$" contained contains=abcHeadField,abcComment keepend
  29. syn region abcTune start="^X:" end="^ *$" contains=abcHeader,abcComment,abcBar,abcNote,abcBodyField,abcGuitarChord,abcTuple,abcBroken,abcTie
  30. syn match abcComment "%.*$"
  31. " Define the default highlighting.
  32. " Only when an item doesn't have highlighting yet
  33. hi def link abcComment Comment
  34. hi def link abcHeadField Type
  35. hi def link abcBodyField Special
  36. hi def link abcBar Statement
  37. hi def link abcTuple Statement
  38. hi def link abcBroken Statement
  39. hi def link abcTie Statement
  40. hi def link abcGuitarChord Identifier
  41. hi def link abcNote Constant
  42. let b:current_syntax = "abc"
  43. " vim: ts=4