Skip to content

Commit bd836c8

Browse files
committed
Add Prism.js and highlight.js syntax highlight definitions
1 parent f575b43 commit bd836c8

File tree

4 files changed

+72
-1
lines changed

4 files changed

+72
-1
lines changed

editors/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,11 @@
55
1. Open an `idea` folder
66
2. Add all files and folders to zip archive, e.g. `settings.zip`
77
3. File -> Manage IDE Settings -> Import. Select your zip file.
8+
9+
## Prism.js
10+
11+
```javascript
12+
import Prism from 'prismjs';
13+
import definePrismOwnLang from './prismjs/own-language.js'
14+
definePrismOwnLang(Prism)
15+
```

editors/highlighjs/own.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
export default function(hljs) {
2+
const STRING = {
3+
className: 'string',
4+
variants: [{
5+
begin: '"', end: '"',
6+
contains: [hljs.BACKSLASH_ESCAPE]
7+
}]
8+
};
9+
10+
const EXTENDED_LITERAL = {
11+
className: 'literal',
12+
variants: [{
13+
begin: '`', end: '`',
14+
illegal: '\\n'
15+
}]
16+
};
17+
18+
const METHOD = {
19+
className: 'function',
20+
beginKeywords: 'def',
21+
end: /[:={\[(\n;]/,
22+
excludeEnd: true,
23+
contains: [{
24+
className: 'title',
25+
begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
26+
relevance: 0
27+
}]
28+
};
29+
30+
return {
31+
keywords: {
32+
literal: 'true false this null',
33+
keyword: 'break class continue def else for if match print println return use while do case extract include'
34+
},
35+
contains: [
36+
hljs.C_LINE_COMMENT_MODE,
37+
hljs.C_BLOCK_COMMENT_MODE,
38+
STRING,
39+
EXTENDED_LITERAL,
40+
METHOD,
41+
hljs.C_NUMBER_MODE
42+
]
43+
};
44+
};

editors/idea/filetypes/OwnLang.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</options>
1414
<keywords keywords="break;case;class;continue;def;do;else;extract;for;if;match;new;print;println;return;while" ignore_case="false" />
1515
<keywords2 keywords="echo;newarray;try" />
16-
<keywords3 keywords="false;this;true" />
16+
<keywords3 keywords="false;null;this;true" />
1717
<keywords4 keywords="include;use" />
1818
</highlighting>
1919
<extensionMap>

editors/prismjs/own-language.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
export default function(Prism) {
2+
Prism.languages.own = Prism.languages.extend('clike', {
3+
'string': {
4+
pattern: /(^|[^\\])"(?:\\.|[^"\\])*"/,
5+
lookbehind: true,
6+
greedy: true
7+
},
8+
'keyword': /\b(?:break|case|class|continue|def|do|else|extract|for|if|include|match|new|print|println|return|while|use)\b/,
9+
'function': {
10+
pattern: /((?:^|\s)def\s*)([a-zA-Z_]\w*)?(?=\s*\()/g,
11+
lookbehind: true
12+
},
13+
'operator': {
14+
pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\*\*|\|\||::|\.\.\.?|[?:~]|[-+*/%&|^!=<>]=?)/m,
15+
lookbehind: true
16+
},
17+
'punctuation': /[{}[\];(),.:`]/
18+
});
19+
}

0 commit comments

Comments
 (0)