UNPKG

1.07 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 }
22 ],
23 relevance: 10
24 };
25
26 const FUNCTION = {
27 className: 'keyword',
28 begin: /\$[_a-zA-Z0-9]+(?=\()/
29 };
30
31 const VARIABLE = {
32 className: 'variable',
33 begin: /%[_a-zA-Z0-9:]+%/
34 };
35
36 const ESCAPE_SEQUENCE_UNICODE = {
37 className: 'symbol',
38 begin: /\\u[a-fA-F0-9]{4}/
39 };
40
41 const ESCAPE_SEQUENCE = {
42 className: 'symbol',
43 begin: /\\[\\nt$%,()]/
44 };
45
46 return {
47 name: 'Tagger Script',
48 contains: [
49 NOOP,
50 FUNCTION,
51 VARIABLE,
52 ESCAPE_SEQUENCE,
53 ESCAPE_SEQUENCE_UNICODE
54 ]
55 };
56}
57
58module.exports = taggerscript;