]> luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/taggerscript.js
Initial commit.
[flow-web.git] / static / highlight / languages / taggerscript.js
1 /*! `taggerscript` grammar compiled for Highlight.js 11.11.1 */
2 (function(){
3 var hljsGrammar = (function () {
4 'use strict';
5
6 /*
7 Language: Tagger Script
8 Author: Philipp Wolfer <ph.wolfer@gmail.com>
9 Description: Syntax Highlighting for the Tagger Script as used by MusicBrainz Picard.
10 Website: https://picard.musicbrainz.org
11 Category: scripting
12 */
13 function taggerscript(hljs) {
14 const NOOP = {
15 className: 'comment',
16 begin: /\$noop\(/,
17 end: /\)/,
18 contains: [
19 { begin: /\\[()]/ },
20 {
21 begin: /\(/,
22 end: /\)/,
23 contains: [
24 { begin: /\\[()]/ },
25 'self'
26 ]
27 }
28 ],
29 relevance: 10
30 };
31
32 const FUNCTION = {
33 className: 'keyword',
34 begin: /\$[_a-zA-Z0-9]+(?=\()/
35 };
36
37 const VARIABLE = {
38 className: 'variable',
39 begin: /%[_a-zA-Z0-9:]+%/
40 };
41
42 const ESCAPE_SEQUENCE_UNICODE = {
43 className: 'symbol',
44 begin: /\\u[a-fA-F0-9]{4}/
45 };
46
47 const ESCAPE_SEQUENCE = {
48 className: 'symbol',
49 begin: /\\[\\nt$%,()]/
50 };
51
52 return {
53 name: 'Tagger Script',
54 contains: [
55 NOOP,
56 FUNCTION,
57 VARIABLE,
58 ESCAPE_SEQUENCE,
59 ESCAPE_SEQUENCE_UNICODE
60 ]
61 };
62 }
63
64 return taggerscript;
65
66 })();
67
68 hljs.registerLanguage('taggerscript', hljsGrammar);
69 })();