UNPKG

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