177afef4e68800c8423bb829efb8b98f37482cf3ab89714486c8a977431e119ff16999211fa755609a9dda78076f396be41531b2d3b2776cd355466380237f 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. Category: scripting
  7. */
  8. function taggerscript(hljs) {
  9. const NOOP = {
  10. className: 'comment',
  11. begin: /\$noop\(/,
  12. end: /\)/,
  13. contains: [
  14. { begin: /\\[()]/ },
  15. {
  16. begin: /\(/,
  17. end: /\)/,
  18. contains: [
  19. { begin: /\\[()]/ },
  20. 'self'
  21. ]
  22. }
  23. ],
  24. relevance: 10
  25. };
  26. const FUNCTION = {
  27. className: 'keyword',
  28. begin: /\$[_a-zA-Z0-9]+(?=\()/
  29. };
  30. const VARIABLE = {
  31. className: 'variable',
  32. begin: /%[_a-zA-Z0-9:]+%/
  33. };
  34. const ESCAPE_SEQUENCE_UNICODE = {
  35. className: 'symbol',
  36. begin: /\\u[a-fA-F0-9]{4}/
  37. };
  38. const ESCAPE_SEQUENCE = {
  39. className: 'symbol',
  40. begin: /\\[\\nt$%,()]/
  41. };
  42. return {
  43. name: 'Tagger Script',
  44. contains: [
  45. NOOP,
  46. FUNCTION,
  47. VARIABLE,
  48. ESCAPE_SEQUENCE,
  49. ESCAPE_SEQUENCE_UNICODE
  50. ]
  51. };
  52. }
  53. export { taggerscript as default };