]> luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/crmsh.js
Initial commit.
[flow-web.git] / static / highlight / languages / crmsh.js
1 /*! `crmsh` grammar compiled for Highlight.js 11.11.1 */
2 (function(){
3 var hljsGrammar = (function () {
4 'use strict';
5
6 /*
7 Language: crmsh
8 Author: Kristoffer Gronlund <kgronlund@suse.com>
9 Website: http://crmsh.github.io
10 Description: Syntax Highlighting for the crmsh DSL
11 Category: config
12 */
13
14 /** @type LanguageFn */
15 function crmsh(hljs) {
16 const RESOURCES = 'primitive rsc_template';
17 const COMMANDS = 'group clone ms master location colocation order fencing_topology '
18 + 'rsc_ticket acl_target acl_group user role '
19 + 'tag xml';
20 const PROPERTY_SETS = 'property rsc_defaults op_defaults';
21 const KEYWORDS = 'params meta operations op rule attributes utilization';
22 const OPERATORS = 'read write deny defined not_defined in_range date spec in '
23 + 'ref reference attribute type xpath version and or lt gt tag '
24 + 'lte gte eq ne \\';
25 const TYPES = 'number string';
26 const LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';
27
28 return {
29 name: 'crmsh',
30 aliases: [
31 'crm',
32 'pcmk'
33 ],
34 case_insensitive: true,
35 keywords: {
36 keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,
37 literal: LITERALS
38 },
39 contains: [
40 hljs.HASH_COMMENT_MODE,
41 {
42 beginKeywords: 'node',
43 starts: {
44 end: '\\s*([\\w_-]+:)?',
45 starts: {
46 className: 'title',
47 end: '\\s*[\\$\\w_][\\w_-]*'
48 }
49 }
50 },
51 {
52 beginKeywords: RESOURCES,
53 starts: {
54 className: 'title',
55 end: '\\s*[\\$\\w_][\\w_-]*',
56 starts: { end: '\\s*@?[\\w_][\\w_\\.:-]*' }
57 }
58 },
59 {
60 begin: '\\b(' + COMMANDS.split(' ').join('|') + ')\\s+',
61 keywords: COMMANDS,
62 starts: {
63 className: 'title',
64 end: '[\\$\\w_][\\w_-]*'
65 }
66 },
67 {
68 beginKeywords: PROPERTY_SETS,
69 starts: {
70 className: 'title',
71 end: '\\s*([\\w_-]+:)?'
72 }
73 },
74 hljs.QUOTE_STRING_MODE,
75 {
76 className: 'meta',
77 begin: '(ocf|systemd|service|lsb):[\\w_:-]+',
78 relevance: 0
79 },
80 {
81 className: 'number',
82 begin: '\\b\\d+(\\.\\d+)?(ms|s|h|m)?',
83 relevance: 0
84 },
85 {
86 className: 'literal',
87 begin: '[-]?(infinity|inf)',
88 relevance: 0
89 },
90 {
91 className: 'attr',
92 begin: /([A-Za-z$_#][\w_-]+)=/,
93 relevance: 0
94 },
95 {
96 className: 'tag',
97 begin: '</?',
98 end: '/?>',
99 relevance: 0
100 }
101 ]
102 };
103 }
104
105 return crmsh;
106
107 })();
108
109 hljs.registerLanguage('crmsh', hljsGrammar);
110 })();