source: node_modules/refractor/lang/javadoc.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 3.0 KB
RevLine 
[d24f17c]1'use strict'
2var refractorJava = require('./java.js')
3var refractorJavadoclike = require('./javadoclike.js')
4module.exports = javadoc
5javadoc.displayName = 'javadoc'
6javadoc.aliases = []
7function javadoc(Prism) {
8 Prism.register(refractorJava)
9 Prism.register(refractorJavadoclike)
10 ;(function (Prism) {
11 var codeLinePattern = /(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m
12 var memberReference = /#\s*\w+(?:\s*\([^()]*\))?/.source
13 var reference =
14 /(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*<mem>)?|<mem>/.source.replace(
15 /<mem>/g,
16 function () {
17 return memberReference
18 }
19 )
20 Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})
21 Prism.languages.insertBefore('javadoc', 'keyword', {
22 reference: {
23 pattern: RegExp(
24 /(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/
25 .source +
26 '(?:' +
27 reference +
28 ')'
29 ),
30 lookbehind: true,
31 inside: {
32 function: {
33 pattern: /(#\s*)\w+(?=\s*\()/,
34 lookbehind: true
35 },
36 field: {
37 pattern: /(#\s*)\w+/,
38 lookbehind: true
39 },
40 namespace: {
41 pattern: /\b(?:[a-z]\w*\s*\.\s*)+/,
42 inside: {
43 punctuation: /\./
44 }
45 },
46 'class-name': /\b[A-Z]\w*/,
47 keyword: Prism.languages.java.keyword,
48 punctuation: /[#()[\],.]/
49 }
50 },
51 'class-name': {
52 // @param <T> the first generic type parameter
53 pattern: /(@param\s+)<[A-Z]\w*>/,
54 lookbehind: true,
55 inside: {
56 punctuation: /[.<>]/
57 }
58 },
59 'code-section': [
60 {
61 pattern:
62 /(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,
63 lookbehind: true,
64 inside: {
65 code: {
66 // there can't be any HTML inside of {@code} tags
67 pattern: codeLinePattern,
68 lookbehind: true,
69 inside: Prism.languages.java,
70 alias: 'language-java'
71 }
72 }
73 },
74 {
75 pattern:
76 /(<(code|pre|tt)>(?!<code>)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,
77 lookbehind: true,
78 inside: {
79 line: {
80 pattern: codeLinePattern,
81 lookbehind: true,
82 inside: {
83 // highlight HTML tags and entities
84 tag: Prism.languages.markup.tag,
85 entity: Prism.languages.markup.entity,
86 code: {
87 // everything else is Java code
88 pattern: /.+/,
89 inside: Prism.languages.java,
90 alias: 'language-java'
91 }
92 }
93 }
94 }
95 }
96 ],
97 tag: Prism.languages.markup.tag,
98 entity: Prism.languages.markup.entity
99 })
100 Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)
101 })(Prism)
102}
Note: See TracBrowser for help on using the repository browser.