Skip to content

Commit f199826

Browse files
committed
V2 proper colour scheme
1 parent bd11b06 commit f199826

7 files changed

Lines changed: 143 additions & 77 deletions

File tree

‎README.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# MELFA language support for Highlight.js
22

3+
*I appreciate any feedback on the colour scheme.*
4+
35
## Usage
46

57
Detailed information on [Highlight.js](https://highlightjs.org/)
68

79
### Online usage for HTMLs
810

9-
Check
11+
Check [examples](https://github.com/zserub/MELFA-highlight.js/blob/main/examples/online_test.html)
1012

1113
```html
1214
<link rel="stylesheet" href="https://zserub.github.io/MELFA-highlight.js/dist/melfa_dark.min.css">
@@ -19,7 +21,9 @@ Check
1921
```
2022

2123
### Offline usage for HTMLs
24+
2225
Download `dist/melfa.min.js` and `melfa_dark.min.css`
26+
2327
```html
2428
<link rel="stylesheet" href="/path/to/melfa_dark.min.css">
2529
<pre><code class="language-melfa">

‎dist/melfa.es.min.js‎

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,24 @@
22
var hljsGrammar=(()=>{"use strict";return e=>({name:"MELFA",keywords:{
33
keyword:"While Select Case ElseIf For To Return Default If Then With Then EndIf EndSelect FEnd Next WEnd Break And Not Or Xor Exit GoTo GoSub Dly Wait Error Priority ResetErr Stop Hlt Clear Skip XLoad XRun XRst XClr XStp On Off",
44
built_in:"Pos Jnt Inte Float Mov Mvs Mr Mr2 Mr3 Mc Ma Tune Spl Act Ovrd Spd JOvrd Cnt Accel Tool CmpJnt CmpPos CmpTool CmpOff CmpG Prec Torq JRC Fine Servo HOpen HClose ColChk"
5-
},contains:[{className:"comment",begin:"'.*"},{className:"meta",begin:"^\\d+"},{
6-
className:"number",begin:"-?&O[0-7]+",relevance:0,illegal:"\\S"},{
7-
className:"number",begin:"-?&H[0-9A-F]+",relevance:0,illegal:"\\S"},{
5+
},contains:[{className:"comment",begin:"'.*"},{className:"linenumber",
6+
begin:"^\\d+"},{className:"number",begin:"-?&O[0-7]+",relevance:0,illegal:"\\S"
7+
},{className:"number",begin:"-?&H[0-9A-F]+",relevance:0,illegal:"\\S"},{
88
className:"number",begin:"-?\\d+(\\.\\d+)?",relevance:0,illegal:"\\S"},{
9-
className:"keyword",
10-
begin:"\\b(While|Select|Case|Else(If)?|For|To|Return|Default|If|Then|With|EndIf|EndSelect|FEnd|Next|WEnd|Break|And|Not|Or|Xor|Exit|Go(To|Sub)|Dly|Wait|Error|Priority|ResetErr|Stop|Hlt|Clear|Skip|X(Load|Run|Rst|Clr|Stp)|On|Off)\\b",
11-
relevance:0,illegal:"\\S"},{className:"keyword",
9+
className:"control",
10+
begin:"\\b(While|Select|Case|Else(If)?|For|To|Return|Default|If|Then|With|WthIf|EndIf|EndSelect|FEnd|Next|WEnd|Break|And|Not|Or|Xor)\\b",
11+
relevance:0,illegal:"\\S"},{className:"operator",
1212
begin:"!|\\$|%|&|\\-|\\+|~|==|=|!=|!==|<=|>=|#=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=\\b"
13-
},{className:"string",begin:'"',end:'"'},{className:"type",begin:"\\B\\*\\w+"},{
14-
className:"function",begin:"\\b(Call|Function|Def)\\b",case_insensitive:!0},{
13+
},{className:"other",
14+
begin:"\\b(Exit|Go(To|Sub)|Dly|Wait|Error|Priority|ResetErr|Stop|Hlt|Clear|Skip|X(Load|Run|Rst|Clr|Stp))\\b",
15+
case_insensitive:!0},{className:"string",begin:'"',end:'"'},{className:"type",
16+
begin:"\\B\\*\\w+"},{className:"keyword_bold",
17+
begin:"\\b(Call|Function|Def|On|Off)\\b",case_insensitive:!0},{
1518
className:"function",
1619
begin:"((\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))"},{
1720
className:"type",begin:"\\b(Pos|Jnt|Inte|Float)\\b",case_insensitive:!0},{
1821
className:"function",
1922
begin:"\\b(Mov|Mv(s|r|r2|r3|c|a| Tune|Spl)|Act|Ovrd|Spd|JOvrd|Cnt|Accel|Tool|Cmp( Jnt| Pos| Tool| Off|G)|Prec|Torq|JRC|Fine|Servo|H(Open|Close)|ColChk)\\b",
2023
case_insensitive:!0},{className:"variable",begin:"\\b(M_\\w+|J_\\w+|P_\\w+)\\b",
21-
case_insensitive:!0},{className:"variable",begin:"\\b(\\.X|\\.Y|\\.Z)\\b",
24+
case_insensitive:!0},{className:"axis",begin:"\\b(\\.X|\\.Y|\\.Z)\\b",
2225
case_insensitive:!0}]})})();export default hljsGrammar;

‎dist/melfa.min.js‎

Lines changed: 24 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,25 @@
11
/*! `melfa` grammar compiled for Highlight.js 11.9.0 */
2-
(() => {
3-
var e = (() => {
4-
"use strict"; return e => ({
5-
name: "MELFA", keywords: {
6-
keyword: "While Select Case ElseIf For To Return Default If Then With Then EndIf EndSelect FEnd Next WEnd Break And Not Or Xor Exit GoTo GoSub Dly Wait Error Priority ResetErr Stop Hlt Clear Skip XLoad XRun XRst XClr XStp On Off",
7-
built_in: "Pos Jnt Inte Float Mov Mvs Mr Mr2 Mr3 Mc Ma Tune Spl Act Ovrd Spd JOvrd Cnt Accel Tool CmpJnt CmpPos CmpTool CmpOff CmpG Prec Torq JRC Fine Servo HOpen HClose ColChk"
8-
}, contains: [{ className: "comment", begin: "'.*" }, { className: "meta", begin: "^\\d+" }, {
9-
className: "number", begin: "-?&O[0-7]+", relevance: 0, illegal: "\\S"
10-
}, {
11-
className: "number", begin: "-?&H[0-9A-F]+", relevance: 0, illegal: "\\S"
12-
}, {
13-
className: "number", begin: "-?\\d+(\\.\\d+)?", relevance: 0, illegal: "\\S"
14-
}, {
15-
className: "keyword",
16-
begin: "\\b(While|Select|Case|Else(If)?|For|To|Return|Default|If|Then|With|EndIf|EndSelect|FEnd|Next|WEnd|Break|And|Not|Or|Xor|Exit|Go(To|Sub)|Dly|Wait|Error|Priority|ResetErr|Stop|Hlt|Clear|Skip|X(Load|Run|Rst|Clr|Stp)|On|Off)\\b",
17-
relevance: 0, illegal: "\\S"
18-
}, {
19-
className: "keyword",
20-
begin: "!|\\$|%|&|\\-|\\+|~|==|=|!=|!==|<=|>=|#=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=\\b"
21-
}, { className: "string", begin: '"', end: '"' }, { className: "type", begin: "\\B\\*\\w+" }, {
22-
className: "function", begin: "\\b(Call|Function|Def)\\b", case_insensitive: !0
23-
}, {
24-
className: "function",
25-
begin: "((\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))"
26-
}, {
27-
className: "type", begin: "\\b(Pos|Jnt|Inte|Float)\\b", case_insensitive: !0
28-
}, {
29-
className: "function",
30-
begin: "\\b(Mov|Mv(s|r|r2|r3|c|a| Tune|Spl)|Act|Ovrd|Spd|JOvrd|Cnt|Accel|Tool|Cmp( Jnt| Pos| Tool| Off|G)|Prec|Torq|JRC|Fine|Servo|H(Open|Close)|ColChk)\\b",
31-
case_insensitive: !0
32-
}, {
33-
className: "variable", begin: "\\b(M_\\w+|J_\\w+|P_\\w+)\\b",
34-
case_insensitive: !0
35-
}, {
36-
className: "variable", begin: "\\b(\\.X|\\.Y|\\.Z)\\b",
37-
case_insensitive: !0
38-
}]
39-
})
40-
})(); hljs.registerLanguage("melfa", e)
41-
})();
2+
(()=>{var e=(()=>{"use strict";return e=>({name:"MELFA",keywords:{
3+
keyword:"While Select Case ElseIf For To Return Default If Then With Then EndIf EndSelect FEnd Next WEnd Break And Not Or Xor Exit GoTo GoSub Dly Wait Error Priority ResetErr Stop Hlt Clear Skip XLoad XRun XRst XClr XStp On Off",
4+
built_in:"Pos Jnt Inte Float Mov Mvs Mr Mr2 Mr3 Mc Ma Tune Spl Act Ovrd Spd JOvrd Cnt Accel Tool CmpJnt CmpPos CmpTool CmpOff CmpG Prec Torq JRC Fine Servo HOpen HClose ColChk"
5+
},contains:[{className:"comment",begin:"'.*"},{className:"linenumber",
6+
begin:"^\\d+"},{className:"number",begin:"-?&O[0-7]+",relevance:0,illegal:"\\S"
7+
},{className:"number",begin:"-?&H[0-9A-F]+",relevance:0,illegal:"\\S"},{
8+
className:"number",begin:"-?\\d+(\\.\\d+)?",relevance:0,illegal:"\\S"},{
9+
className:"control",
10+
begin:"\\b(While|Select|Case|Else(If)?|For|To|Return|Default|If|Then|With|WthIf|EndIf|EndSelect|FEnd|Next|WEnd|Break|And|Not|Or|Xor)\\b",
11+
relevance:0,illegal:"\\S"},{className:"operator",
12+
begin:"!|\\$|%|&|\\-|\\+|~|==|=|!=|!==|<=|>=|#=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=\\b"
13+
},{className:"other",
14+
begin:"\\b(Exit|Go(To|Sub)|Dly|Wait|Error|Priority|ResetErr|Stop|Hlt|Clear|Skip|X(Load|Run|Rst|Clr|Stp))\\b",
15+
case_insensitive:!0},{className:"string",begin:'"',end:'"'},{className:"type",
16+
begin:"\\B\\*\\w+"},{className:"keyword_bold",
17+
begin:"\\b(Call|Function|Def|On|Off)\\b",case_insensitive:!0},{
18+
className:"function",
19+
begin:"((\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))"},{
20+
className:"type",begin:"\\b(Pos|Jnt|Inte|Float)\\b",case_insensitive:!0},{
21+
className:"function",
22+
begin:"\\b(Mov|Mv(s|r|r2|r3|c|a| Tune|Spl)|Act|Ovrd|Spd|JOvrd|Cnt|Accel|Tool|Cmp( Jnt| Pos| Tool| Off|G)|Prec|Torq|JRC|Fine|Servo|H(Open|Close)|ColChk)\\b",
23+
case_insensitive:!0},{className:"variable",begin:"\\b(M_\\w+|J_\\w+|P_\\w+)\\b",
24+
case_insensitive:!0},{className:"axis",begin:"\\b(\\.X|\\.Y|\\.Z)\\b",
25+
case_insensitive:!0}]})})();hljs.registerLanguage("melfa",e)})();

‎dist/melfa_dark.min.css‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎examples/offline_test.html‎

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55
<meta charset="UTF-8">
66
<title>Testing</title>
77
<link rel="stylesheet"
8-
href="d:\Github\highlight.js\extra\MELFA-highlight.js\dist\melfa_dark.min.css">
8+
href="d:\Github\highlight.js\extra\MELFA-highlight.js\src\themes\melfa_dark.css">
99
</head>
1010

11-
<body style="background-color: #23241F; color: #fff;">
12-
<pre><code class="language-melfa">
13-
28 'Initialize variables
11+
<body style="background-color: #23241F; color: #fff; font-size: 20px;">
12+
<pre><code class="language-melfa">28 'Initialize variables
1413
29 GoSub *INIT
1514
30 '
1615
31 'Get Mechanism
@@ -47,6 +46,43 @@
4746
62 Case 1
4847
63 'Write positions
4948
64 P_MinCDD_1 = P_MinCDD_1_T1
49+
496 If (P_MinCDD_1.X = 0) Or (P_HiResCDD_1.X = 0) Or (P_MinCID_1.X = 0) Or (P_HiResCID_1.X = 0) Or (P_HiResCID_2.X = 0) Or (P_ALS_1.X = 0) Or (P_MinICD_1.X = 0) Or (P_HiResICD_1.X = 0) Then
50+
497 'Set Error signal
51+
498 M_Out(2118) = 1
52+
499 Error 9057
53+
500 EndIf
54+
502 'Write actual type number
55+
503 M_Act_type = M_Inb(2176)
56+
504 '
57+
505 Return
58+
506 '
59+
507 '-------------------------------------------------------------------------
60+
508 '
61+
509 *SERVICE
62+
510 '
63+
511 'Enable Continuous Movement
64+
512 Cnt 1
65+
513 'Set Speed
66+
514 Ovrd M_High_Speed
67+
515 '
68+
516 'Select Zone
69+
517 M_Dest_zone = 4
70+
518 'Move to Selected Zone
71+
519 GoSub *ZONE_MOVE
72+
520 '
73+
521 'Move to Intermediate postion
74+
522 Mov J_Corner_1 WthIf M_RDst <= 10, M_Act_point = 101
75+
523 'Disable Continuous Movement
76+
524 Cnt 0
77+
525 'Move to Service position
78+
526 Fine 0.1, P
79+
527 Mov J_Service WthIf M_RDst <= 10, M_Act_point = 411
80+
528 Fine 0, P
81+
529 '
82+
530 Return
83+
531 '
84+
532 '-------------------------------------------------------------------------
85+
M_error = "test string P_asd"
5086

5187
</code></pre>
5288
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>

‎src/languages/melfa.js‎

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,42 @@ export default function (hljs) {
1717
begin: "'.*"
1818
},
1919
{
20-
className: 'meta',
20+
className: 'linenumber',
2121
begin: '^\\d+'
2222
},
2323
{
24-
className: 'number',
24+
className: 'number', //octal
2525
begin: '-?&O[0-7]+',
2626
relevance: 0,
2727
illegal: '\\S'
2828
},
2929
{
30-
className: 'number',
30+
className: 'number', //hex
3131
begin: '-?&H[0-9A-F]+',
3232
relevance: 0,
3333
illegal: '\\S'
3434
},
3535
{
36-
className: 'number',
36+
className: 'number', //decimal
3737
begin: '-?\\d+(\\.\\d+)?',
3838
relevance: 0,
3939
illegal: '\\S'
4040
},
4141
{
42-
className: 'keyword',
43-
begin: '\\b(While|Select|Case|Else(If)?|For|To|Return|Default|If|Then|With|EndIf|EndSelect|FEnd|Next|WEnd|Break|And|Not|Or|Xor|Exit|Go(To|Sub)|Dly|Wait|Error|Priority|ResetErr|Stop|Hlt|Clear|Skip|X(Load|Run|Rst|Clr|Stp)|On|Off)\\b',
42+
className: 'control',
43+
begin: '\\b(While|Select|Case|Else(If)?|For|To|Return|Default|If|Then|With|WthIf|EndIf|EndSelect|FEnd|Next|WEnd|Break|And|Not|Or|Xor)\\b',
4444
relevance: 0,
4545
illegal: '\\S'
4646
},
4747
{
48-
className: 'keyword',
48+
className: 'operator',
4949
begin: '!|\\$|%|&|\\-|\\+|~|==|=|!=|!==|<=|>=|#=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=\\b'
5050
},
51+
{
52+
className: 'other',
53+
begin: '\\b(Exit|Go(To|Sub)|Dly|Wait|Error|Priority|ResetErr|Stop|Hlt|Clear|Skip|X(Load|Run|Rst|Clr|Stp))\\b',
54+
case_insensitive: true
55+
},
5156
{
5257
className: 'string',
5358
begin: '"',
@@ -58,8 +63,8 @@ export default function (hljs) {
5863
begin: '\\B\\*\\w+'
5964
},
6065
{
61-
className: 'function',
62-
begin: '\\b(Call|Function|Def)\\b',
66+
className: 'keyword_bold',
67+
begin: '\\b(Call|Function|Def|On|Off)\\b',
6368
case_insensitive: true
6469
},
6570
{
@@ -82,7 +87,7 @@ export default function (hljs) {
8287
case_insensitive: true
8388
},
8489
{
85-
className: 'variable',
90+
className: 'axis',
8691
begin: '\\b(\\.X|\\.Y|\\.Z)\\b',
8792
case_insensitive: true
8893
}

‎src/themes/melfa_dark.css‎

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,78 @@
1+
pre code.hljs {
2+
display: block;
3+
overflow-x: auto;
4+
padding: 1em;
5+
}
6+
code.hljs {
7+
padding: 3px 5px;
8+
}
9+
.hljs {
10+
background: #23241f;
11+
color: #f8f8f2;
12+
}
13+
114
/* Comments */
215
.hljs-comment {
3-
color: #6A9955;
16+
color: #6a9955;
417
}
518

6-
/* Meta */
7-
.hljs-meta {
8-
color: #DDBC7A;
19+
/* Line numbers */
20+
.hljs-linenumber {
21+
color: #6e7681;
922
}
1023

1124
/* Numbers */
1225
.hljs-number {
13-
color: #569CD6;
26+
color: #ddbc7a;
1427
}
1528

1629
/* Keywords */
1730
.hljs-keyword {
18-
color: #569CD6;
31+
color: #569cd6;
32+
}
33+
34+
/* Bold keywords */
35+
.hljs-keyword_bold {
36+
color: #569cd6;
37+
font-weight: bold;
1938
}
2039

2140
/* Operators */
22-
.hljs-keyword-operator {
23-
color: #b16262;
41+
.hljs-operator {
42+
color: #b16262;
2443
}
2544

2645
/* Strings */
2746
.hljs-string {
28-
color: #CE9178;
47+
color: #ce9178;
2948
}
3049

3150
/* Types */
3251
.hljs-type {
33-
color: #4EC9B0;
52+
color: #4ec9b0;
3453
}
3554

3655
/* Functions */
3756
.hljs-function {
38-
color: #4EC9B0;
57+
color: #dcdcaa;
3958
}
4059

4160
/* Variables */
4261
.hljs-variable {
43-
color: #DDBC7A;
62+
color: #9cdcfe;
63+
}
64+
65+
/* Controls */
66+
.hljs-control {
67+
color: #c586c0;
68+
}
69+
70+
/* Axis */
71+
.hljs-axis {
72+
color: #ce9178;
73+
}
74+
75+
/* Other */
76+
.hljs-other {
77+
color: #7f4bbb;
4478
}

0 commit comments

Comments
 (0)