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