847b7708c61dc0432322aaafbf15ef3981e15630846d6e33beb34db3c28599ce697dc9de995ba575b49cec8651a1adc78f812d8c67848bcb563b1e5d80f336 950 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. Language: Tagger Script
  3. Author: Philipp Wolfer <ph.wolfer@gmail.com>
  4. Description: Syntax Highlighting for the Tagger Script as used by MusicBrainz Picard.
  5. Website: https://picard.musicbrainz.org
  6. */
  7. function taggerscript(hljs) {
  8. const COMMENT = {
  9. className: 'comment',
  10. begin: /\$noop\(/,
  11. end: /\)/,
  12. contains: [ {
  13. begin: /\(/,
  14. end: /\)/,
  15. contains: [ 'self',
  16. {
  17. begin: /\\./
  18. } ]
  19. } ],
  20. relevance: 10
  21. };
  22. const FUNCTION = {
  23. className: 'keyword',
  24. begin: /\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,
  25. end: /\(/,
  26. excludeEnd: true
  27. };
  28. const VARIABLE = {
  29. className: 'variable',
  30. begin: /%[_a-zA-Z0-9:]*/,
  31. end: '%'
  32. };
  33. const ESCAPE_SEQUENCE = {
  34. className: 'symbol',
  35. begin: /\\./
  36. };
  37. return {
  38. name: 'Tagger Script',
  39. contains: [
  40. COMMENT,
  41. FUNCTION,
  42. VARIABLE,
  43. ESCAPE_SEQUENCE
  44. ]
  45. };
  46. }
  47. module.exports = taggerscript;