1 | (function (Prism) {
|
2 |
|
3 | var codeLines = {
|
4 | 'code': {
|
5 | pattern: /(^(?:\s*(?:\*\s*)*)).*[^*\s].+$/m,
|
6 | lookbehind: true,
|
7 | inside: Prism.languages.java,
|
8 | alias: 'language-java'
|
9 | }
|
10 | };
|
11 |
|
12 | Prism.languages.javadoc = Prism.languages.extend('javadoclike', {});
|
13 | Prism.languages.insertBefore('javadoc', 'keyword', {
|
14 | 'class-name': [
|
15 | {
|
16 | pattern: /(@(?:exception|throws|see|link|linkplain|value)\s+(?:[a-z\d]+\.)*)[A-Z](?:\w*[a-z]\w*)?(?:\.[A-Z](?:\w*[a-z]\w*)?)*/,
|
17 | lookbehind: true,
|
18 | inside: {
|
19 | 'punctuation': /\./
|
20 | }
|
21 | },
|
22 | {
|
23 |
|
24 | pattern: /(@param\s+)<[A-Z]\w*>/,
|
25 | lookbehind: true,
|
26 | inside: {
|
27 | 'punctuation': /[.<>]/
|
28 | }
|
29 | }
|
30 | ],
|
31 | 'namespace': {
|
32 | pattern: /(@(?:exception|throws|see|link|linkplain)\s+)(?:[a-z\d]+\.)+/,
|
33 | lookbehind: true,
|
34 | inside: {
|
35 | 'punctuation': /\./
|
36 | }
|
37 | },
|
38 | 'code-section': [
|
39 | {
|
40 | pattern: /(\{@code\s+)(?:[^{}]|\{[^{}]*\})+?(?=\s*\})/,
|
41 | lookbehind: true,
|
42 | inside: codeLines
|
43 | },
|
44 | {
|
45 | pattern: /(<(code|tt)>\s*)[\s\S]+?(?=\s*<\/\2>)/,
|
46 | lookbehind: true,
|
47 | inside: codeLines
|
48 | }
|
49 | ],
|
50 | 'tag': Prism.languages.markup.tag,
|
51 | });
|
52 |
|
53 | Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc);
|
54 | }(Prism));
|