showoffer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. data/LICENSE +20 -0
  2. data/README.rdoc +559 -0
  3. data/Rakefile +27 -0
  4. data/bin/showoffer +189 -0
  5. data/lib/commandline_parser.rb +67 -0
  6. data/lib/showoff.rb +515 -0
  7. data/lib/showoff/version.rb +3 -0
  8. data/lib/showoff_utils.rb +360 -0
  9. data/public/css/960.css +653 -0
  10. data/public/css/fg.menu.css +114 -0
  11. data/public/css/onepage.css +60 -0
  12. data/public/css/pdf.css +12 -0
  13. data/public/css/presenter.css +76 -0
  14. data/public/css/reset.css +53 -0
  15. data/public/css/sh_style.css +66 -0
  16. data/public/css/showoff.css +403 -0
  17. data/public/css/spinner_bar.gif +0 -0
  18. data/public/css/theme/images/ui-bg_diagonals-small_100_f0efea_40x40.png +0 -0
  19. data/public/css/theme/images/ui-bg_flat_35_f0f0f0_40x100.png +0 -0
  20. data/public/css/theme/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
  21. data/public/css/theme/images/ui-bg_glow-ball_25_2e2e28_600x600.png +0 -0
  22. data/public/css/theme/images/ui-bg_highlight-soft_100_f0efea_1x100.png +0 -0
  23. data/public/css/theme/images/ui-bg_highlight-soft_25_327E04_1x100.png +0 -0
  24. data/public/css/theme/images/ui-bg_highlight-soft_25_5A9D1A_1x100.png +0 -0
  25. data/public/css/theme/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
  26. data/public/css/theme/images/ui-bg_inset-soft_22_3b3b35_1x100.png +0 -0
  27. data/public/css/theme/images/ui-icons_808080_256x240.png +0 -0
  28. data/public/css/theme/images/ui-icons_8DC262_256x240.png +0 -0
  29. data/public/css/theme/images/ui-icons_cd0a0a_256x240.png +0 -0
  30. data/public/css/theme/images/ui-icons_e7e6e4_256x240.png +0 -0
  31. data/public/css/theme/images/ui-icons_eeeeee_256x240.png +0 -0
  32. data/public/css/theme/images/ui-icons_ffffff_256x240.png +0 -0
  33. data/public/css/theme/ui.accordion.css +9 -0
  34. data/public/css/theme/ui.all.css +2 -0
  35. data/public/css/theme/ui.base.css +9 -0
  36. data/public/css/theme/ui.core.css +37 -0
  37. data/public/css/theme/ui.datepicker.css +62 -0
  38. data/public/css/theme/ui.dialog.css +13 -0
  39. data/public/css/theme/ui.progressbar.css +4 -0
  40. data/public/css/theme/ui.resizable.css +13 -0
  41. data/public/css/theme/ui.slider.css +17 -0
  42. data/public/css/theme/ui.tabs.css +9 -0
  43. data/public/css/theme/ui.theme.css +245 -0
  44. data/public/favicon.ico +0 -0
  45. data/public/highlight/AUTHORS.en.txt +46 -0
  46. data/public/highlight/AUTHORS.ru.txt +46 -0
  47. data/public/highlight/LICENSE +24 -0
  48. data/public/highlight/README.md +136 -0
  49. data/public/highlight/README.ru.md +140 -0
  50. data/public/highlight/classref.txt +437 -0
  51. data/public/highlight/export.html +87 -0
  52. data/public/highlight/highlight.js +630 -0
  53. data/public/highlight/highlight.pack.js +1 -0
  54. data/public/highlight/languages/1c.js +68 -0
  55. data/public/highlight/languages/apache.js +432 -0
  56. data/public/highlight/languages/avrasm.js +75 -0
  57. data/public/highlight/languages/axapta.js +43 -0
  58. data/public/highlight/languages/bash.js +56 -0
  59. data/public/highlight/languages/cmake.js +24 -0
  60. data/public/highlight/languages/cpp.js +62 -0
  61. data/public/highlight/languages/cs.js +41 -0
  62. data/public/highlight/languages/css.js +101 -0
  63. data/public/highlight/languages/delphi.js +70 -0
  64. data/public/highlight/languages/diff.js +64 -0
  65. data/public/highlight/languages/django.js +72 -0
  66. data/public/highlight/languages/dos.js +29 -0
  67. data/public/highlight/languages/erlang-repl.js +81 -0
  68. data/public/highlight/languages/erlang.js +201 -0
  69. data/public/highlight/languages/go.js +58 -0
  70. data/public/highlight/languages/haskell.js +77 -0
  71. data/public/highlight/languages/ini.js +32 -0
  72. data/public/highlight/languages/java.js +45 -0
  73. data/public/highlight/languages/javascript.js +53 -0
  74. data/public/highlight/languages/lisp.js +87 -0
  75. data/public/highlight/languages/lua.js +75 -0
  76. data/public/highlight/languages/mel.js +40 -0
  77. data/public/highlight/languages/nginx.js +224 -0
  78. data/public/highlight/languages/objectivec.js +94 -0
  79. data/public/highlight/languages/parser3.js +52 -0
  80. data/public/highlight/languages/perl.js +143 -0
  81. data/public/highlight/languages/php.js +55 -0
  82. data/public/highlight/languages/profile.js +49 -0
  83. data/public/highlight/languages/python.js +71 -0
  84. data/public/highlight/languages/renderman.js +230 -0
  85. data/public/highlight/languages/ruby.js +203 -0
  86. data/public/highlight/languages/scala.js +60 -0
  87. data/public/highlight/languages/smalltalk.js +55 -0
  88. data/public/highlight/languages/sql.js +90 -0
  89. data/public/highlight/languages/tex.js +62 -0
  90. data/public/highlight/languages/vala.js +75 -0
  91. data/public/highlight/languages/vbscript.js +30 -0
  92. data/public/highlight/languages/vhdl.js +30 -0
  93. data/public/highlight/languages/xml.js +103 -0
  94. data/public/highlight/styles/arta.css +151 -0
  95. data/public/highlight/styles/ascetic.css +45 -0
  96. data/public/highlight/styles/brown_paper.css +105 -0
  97. data/public/highlight/styles/brown_papersq.png +0 -0
  98. data/public/highlight/styles/dark.css +103 -0
  99. data/public/highlight/styles/default.css +121 -0
  100. data/public/highlight/styles/far.css +118 -0
  101. data/public/highlight/styles/github.css +129 -0
  102. data/public/highlight/styles/idea.css +118 -0
  103. data/public/highlight/styles/ir_black.css +103 -0
  104. data/public/highlight/styles/magula.css +118 -0
  105. data/public/highlight/styles/school_book.css +111 -0
  106. data/public/highlight/styles/school_book.png +0 -0
  107. data/public/highlight/styles/solarized_dark.css +96 -0
  108. data/public/highlight/styles/solarized_light.css +96 -0
  109. data/public/highlight/styles/sunburst.css +147 -0
  110. data/public/highlight/styles/vs.css +84 -0
  111. data/public/highlight/styles/zenburn.css +115 -0
  112. data/public/highlight/test.html +1609 -0
  113. data/public/js/coffee-script.js +8 -0
  114. data/public/js/core.js +79 -0
  115. data/public/js/fg.menu.js +645 -0
  116. data/public/js/jTypeWriter.js +26 -0
  117. data/public/js/jquery-1.4.2.min.js +154 -0
  118. data/public/js/jquery-print.js +109 -0
  119. data/public/js/jquery.batchImageLoad.js +56 -0
  120. data/public/js/jquery.cookie.js +96 -0
  121. data/public/js/jquery.cycle.all.js +1284 -0
  122. data/public/js/jquery.doubletap-0.1.js +105 -0
  123. data/public/js/jquery.uuid.js +24 -0
  124. data/public/js/jquery.ws-0.3pre.js +201 -0
  125. data/public/js/onepage.js +5 -0
  126. data/public/js/presenter.js +193 -0
  127. data/public/js/sh_lang/sh_bison.min.js +1 -0
  128. data/public/js/sh_lang/sh_c.min.js +1 -0
  129. data/public/js/sh_lang/sh_caml.min.js +1 -0
  130. data/public/js/sh_lang/sh_changelog.min.js +1 -0
  131. data/public/js/sh_lang/sh_coffeescript.min.js +1 -0
  132. data/public/js/sh_lang/sh_cpp.min.js +1 -0
  133. data/public/js/sh_lang/sh_csharp.min.js +1 -0
  134. data/public/js/sh_lang/sh_css.min.js +1 -0
  135. data/public/js/sh_lang/sh_cucumber.min.js +2 -0
  136. data/public/js/sh_lang/sh_desktop.min.js +1 -0
  137. data/public/js/sh_lang/sh_diff.min.js +1 -0
  138. data/public/js/sh_lang/sh_erlang.min.js +1 -0
  139. data/public/js/sh_lang/sh_flex.min.js +1 -0
  140. data/public/js/sh_lang/sh_glsl.min.js +1 -0
  141. data/public/js/sh_lang/sh_haxe.min.js +1 -0
  142. data/public/js/sh_lang/sh_html.min.js +1 -0
  143. data/public/js/sh_lang/sh_java.min.js +1 -0
  144. data/public/js/sh_lang/sh_javascript.min.js +1 -0
  145. data/public/js/sh_lang/sh_javascript_dom.min.js +1 -0
  146. data/public/js/sh_lang/sh_latex.min.js +1 -0
  147. data/public/js/sh_lang/sh_ldap.min.js +1 -0
  148. data/public/js/sh_lang/sh_log.min.js +1 -0
  149. data/public/js/sh_lang/sh_lsm.min.js +1 -0
  150. data/public/js/sh_lang/sh_m4.min.js +1 -0
  151. data/public/js/sh_lang/sh_makefile.min.js +1 -0
  152. data/public/js/sh_lang/sh_oracle.min.js +1 -0
  153. data/public/js/sh_lang/sh_pascal.min.js +1 -0
  154. data/public/js/sh_lang/sh_perl.min.js +1 -0
  155. data/public/js/sh_lang/sh_php.min.js +1 -0
  156. data/public/js/sh_lang/sh_prolog.min.js +1 -0
  157. data/public/js/sh_lang/sh_properties.min.js +1 -0
  158. data/public/js/sh_lang/sh_python.min.js +1 -0
  159. data/public/js/sh_lang/sh_ruby.min.js +1 -0
  160. data/public/js/sh_lang/sh_scala.min.js +1 -0
  161. data/public/js/sh_lang/sh_sh.min.js +1 -0
  162. data/public/js/sh_lang/sh_slang.min.js +1 -0
  163. data/public/js/sh_lang/sh_sml.min.js +1 -0
  164. data/public/js/sh_lang/sh_spec.min.js +1 -0
  165. data/public/js/sh_lang/sh_sql.min.js +1 -0
  166. data/public/js/sh_lang/sh_tcl.min.js +1 -0
  167. data/public/js/sh_lang/sh_xml.min.js +1 -0
  168. data/public/js/sh_lang/sh_xorg.min.js +1 -0
  169. data/public/js/sh_main.min.js +4 -0
  170. data/public/js/showoff.js +652 -0
  171. data/public/js/showoffcore.js +13 -0
  172. data/public/scripts/script.js +280 -0
  173. data/public/themes/ribbon/fonts/DroidSansMono.svg +626 -0
  174. data/public/themes/ribbon/fonts/DroidSansMono.ttf +0 -0
  175. data/public/themes/ribbon/fonts/PTSans.Bold.Italic.svg +728 -0
  176. data/public/themes/ribbon/fonts/PTSans.Bold.Italic.ttf +0 -0
  177. data/public/themes/ribbon/fonts/PTSans.Bold.Italic.woff +0 -0
  178. data/public/themes/ribbon/fonts/PTSans.Bold.svg +728 -0
  179. data/public/themes/ribbon/fonts/PTSans.Bold.ttf +0 -0
  180. data/public/themes/ribbon/fonts/PTSans.Bold.woff +0 -0
  181. data/public/themes/ribbon/fonts/PTSans.Italic.svg +728 -0
  182. data/public/themes/ribbon/fonts/PTSans.Italic.ttf +0 -0
  183. data/public/themes/ribbon/fonts/PTSans.Italic.woff +0 -0
  184. data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.svg +728 -0
  185. data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.ttf +0 -0
  186. data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.woff +0 -0
  187. data/public/themes/ribbon/fonts/PTSans.Narrow.svg +728 -0
  188. data/public/themes/ribbon/fonts/PTSans.Narrow.ttf +0 -0
  189. data/public/themes/ribbon/fonts/PTSans.Narrow.woff +0 -0
  190. data/public/themes/ribbon/fonts/PTSans.svg +728 -0
  191. data/public/themes/ribbon/fonts/PTSans.ttf +0 -0
  192. data/public/themes/ribbon/fonts/PTSans.woff +0 -0
  193. data/public/themes/ribbon/fonts/TargetBlank.otf +0 -0
  194. data/public/themes/ribbon/fonts/TargetBlank.svg +14 -0
  195. data/public/themes/ribbon/images/grid.png +0 -0
  196. data/public/themes/ribbon/images/linen.png +0 -0
  197. data/public/themes/ribbon/images/ribbon.svg +4 -0
  198. data/public/themes/ribbon/styles/fonts.css +63 -0
  199. data/public/themes/ribbon/styles/print.css +68 -0
  200. data/public/themes/ribbon/styles/reset.css +42 -0
  201. data/public/themes/ribbon/styles/style.css +408 -0
  202. data/views/header.erb +11 -0
  203. data/views/index.erb +13 -0
  204. data/views/onepage.erb +39 -0
  205. data/views/presenter.erb +70 -0
  206. metadata +328 -0
@@ -0,0 +1,64 @@
1
+ /*
2
+ Language: Diff
3
+ Description: Unified and context diff
4
+ Author: Vasily Polovnyov <vast@whiteants.net>
5
+ */
6
+
7
+ hljs.LANGUAGES.diff = {
8
+ case_insensitive: true,
9
+ defaultMode: {
10
+ contains: [
11
+ {
12
+ className: 'chunk',
13
+ begin: '^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$',
14
+ relevance: 10
15
+ },
16
+ {
17
+ className: 'chunk',
18
+ begin: '^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$',
19
+ relevance: 10
20
+ },
21
+ {
22
+ className: 'chunk',
23
+ begin: '^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$',
24
+ relevance: 10
25
+ },
26
+ {
27
+ className: 'header',
28
+ begin: 'Index: ', end: '$'
29
+ },
30
+ {
31
+ className: 'header',
32
+ begin: '=====', end: '=====$'
33
+ },
34
+ {
35
+ className: 'header',
36
+ begin: '^\\-\\-\\-', end: '$'
37
+ },
38
+ {
39
+ className: 'header',
40
+ begin: '^\\*{3} ', end: '$'
41
+ },
42
+ {
43
+ className: 'header',
44
+ begin: '^\\+\\+\\+', end: '$'
45
+ },
46
+ {
47
+ className: 'header',
48
+ begin: '\\*{5}', end: '\\*{5}$'
49
+ },
50
+ {
51
+ className: 'addition',
52
+ begin: '^\\+', end: '$'
53
+ },
54
+ {
55
+ className: 'deletion',
56
+ begin: '^\\-', end: '$'
57
+ },
58
+ {
59
+ className: 'change',
60
+ begin: '^\\!', end: '$'
61
+ }
62
+ ]
63
+ }
64
+ };
@@ -0,0 +1,72 @@
1
+ /*
2
+ Language: Django
3
+ Requires: xml.js
4
+ */
5
+
6
+ hljs.LANGUAGES.django = function() {
7
+
8
+ function allowsDjangoSyntax(mode, parent) {
9
+ return (
10
+ parent == undefined || // defaultMode
11
+ (!mode.className && parent.className == 'tag') || // tag_internal
12
+ mode.className == 'value' // value
13
+ );
14
+ }
15
+
16
+ function copy(mode, parent) {
17
+ var result = {};
18
+ for (var key in mode) {
19
+ if (key != 'contains') {
20
+ result[key] = mode[key];
21
+ };
22
+ var contains = [];
23
+ for (var i = 0; mode.contains && i < mode.contains.length; i++) {
24
+ contains.push(copy(mode.contains[i], mode));
25
+ }
26
+ if (allowsDjangoSyntax(mode, parent)) {
27
+ contains = DJANGO_CONTAINS.concat(contains);
28
+ }
29
+ if (contains.length) {
30
+ result.contains = contains;
31
+ }
32
+ }
33
+ return result;
34
+ }
35
+
36
+ var FILTER = {
37
+ className: 'filter',
38
+ begin: '\\|[A-Za-z]+\\:?', excludeEnd: true,
39
+ keywords: {'truncatewords': 1, 'removetags': 1, 'linebreaksbr': 1, 'yesno': 1, 'get_digit': 1, 'timesince': 1, 'random': 1, 'striptags': 1, 'filesizeformat': 1, 'escape': 1, 'linebreaks': 1, 'length_is': 1, 'ljust': 1, 'rjust': 1, 'cut': 1, 'urlize': 1, 'fix_ampersands': 1, 'title': 1, 'floatformat': 1, 'capfirst': 1, 'pprint': 1, 'divisibleby': 1, 'add': 1, 'make_list': 1, 'unordered_list': 1, 'urlencode': 1, 'timeuntil': 1, 'urlizetrunc': 1, 'wordcount': 1, 'stringformat': 1, 'linenumbers': 1, 'slice': 1, 'date': 1, 'dictsort': 1, 'dictsortreversed': 1, 'default_if_none': 1, 'pluralize': 1, 'lower': 1, 'join': 1, 'center': 1, 'default': 1, 'truncatewords_html': 1, 'upper': 1, 'length': 1, 'phone2numeric': 1, 'wordwrap': 1, 'time': 1, 'addslashes': 1, 'slugify': 1, 'first': 1},
40
+ contains: [
41
+ {className: 'argument', begin: '"', end: '"'}
42
+ ]
43
+ };
44
+
45
+ var DJANGO_CONTAINS = [
46
+ {
47
+ className: 'template_comment',
48
+ begin: '{%\\s*comment\\s*%}', end: '{%\\s*endcomment\\s*%}'
49
+ },
50
+ {
51
+ className: 'template_comment',
52
+ begin: '{#', end: '#}'
53
+ },
54
+ {
55
+ className: 'template_tag',
56
+ begin: '{%', end: '%}',
57
+ keywords: {'comment': 1, 'endcomment': 1, 'load': 1, 'templatetag': 1, 'ifchanged': 1, 'endifchanged': 1, 'if': 1, 'endif': 1, 'firstof': 1, 'for': 1, 'endfor': 1, 'in': 1, 'ifnotequal': 1, 'endifnotequal': 1, 'widthratio': 1, 'extends': 1, 'include': 1, 'spaceless': 1, 'endspaceless': 1, 'regroup': 1, 'by': 1, 'as': 1, 'ifequal': 1, 'endifequal': 1, 'ssi': 1, 'now': 1, 'with': 1, 'cycle': 1, 'url': 1, 'filter': 1, 'endfilter': 1, 'debug': 1, 'block': 1, 'endblock': 1, 'else': 1},
58
+ contains: [FILTER]
59
+ },
60
+ {
61
+ className: 'variable',
62
+ begin: '{{', end: '}}',
63
+ contains: [FILTER]
64
+ }
65
+ ];
66
+
67
+ return {
68
+ case_insensitive: true,
69
+ defaultMode: copy(hljs.LANGUAGES.xml.defaultMode)
70
+ };
71
+
72
+ }();
@@ -0,0 +1,29 @@
1
+ /*
2
+ Language: DOS .bat
3
+ Author: Alexander Makarov (http://rmcreative.ru/)
4
+ */
5
+
6
+ hljs.LANGUAGES.dos = {
7
+ case_insensitive: true,
8
+ defaultMode: {
9
+ keywords: {
10
+ 'flow': {'if':1, 'else':1, 'goto':1, 'for':1, 'in':1, 'do':1, 'call':1, 'exit':1, 'not':1, 'exist':1, 'errorlevel':1, 'defined':1, 'equ':1, 'neq':1, 'lss':1, 'leq':1, 'gtr':1, 'geq':1},
11
+ 'keyword':{'shift':1, 'cd':1, 'dir':1, 'echo':1, 'setlocal':1, 'endlocal':1, 'set':1, 'pause':1, 'copy':1},
12
+ 'stream':{'prn':1, 'nul':1, 'lpt3':1, 'lpt2':1, 'lpt1':1, 'con':1, 'com4':1, 'com3':1, 'com2':1, 'com1':1, 'aux':1},
13
+ 'winutils':{'ping':1, 'net':1, 'ipconfig':1, 'taskkill':1, 'xcopy':1, 'ren':1, 'del':1}
14
+ },
15
+ contains: [
16
+ {
17
+ className: 'envvar', begin: '%[^ ]+?%'
18
+ },
19
+ {
20
+ className: 'number', begin: '\\b\\d+',
21
+ relevance: 0
22
+ },
23
+ {
24
+ className: 'comment',
25
+ begin: '@?rem', end: '$'
26
+ }
27
+ ]
28
+ }
29
+ };
@@ -0,0 +1,81 @@
1
+ /*
2
+ Language: Erlang REPL
3
+ Author: Sergey Ignatov <sergey@ignatov.spb.su>
4
+ */
5
+
6
+ hljs.LANGUAGES.erlang_repl = {
7
+ defaultMode: {
8
+ keywords: {
9
+ 'special_functions':{
10
+ 'spawn':10,
11
+ 'spawn_link':10,
12
+ 'self':2
13
+ },
14
+ 'reserved':{
15
+ 'after':1,
16
+ 'and':1,
17
+ 'andalso':5,
18
+ 'band':1,
19
+ 'begin':1,
20
+ 'bnot':1,
21
+ 'bor':1,
22
+ 'bsl':1,
23
+ 'bsr':1,
24
+ 'bxor':1,
25
+ 'case':1,
26
+ 'catch':0,
27
+ 'cond':1,
28
+ 'div':1,
29
+ 'end':1,
30
+ 'fun':0,
31
+ 'if':0,
32
+ 'let':1,
33
+ 'not':0,
34
+ 'of':1,
35
+ 'or':1,
36
+ 'orelse':5,
37
+ 'query':1,
38
+ 'receive':0,
39
+ 'rem':1,
40
+ 'try':0,
41
+ 'when':1,
42
+ 'xor':1
43
+ }
44
+ },
45
+ contains: [
46
+ {
47
+ className: 'input_number', begin: '^[0-9]+> ',
48
+ relevance: 10
49
+ },
50
+ {
51
+ className: 'comment',
52
+ begin: '%', end: '$'
53
+ },
54
+ hljs.NUMBER_MODE,
55
+ hljs.APOS_STRING_MODE,
56
+ hljs.QUOTE_STRING_MODE,
57
+ {
58
+ className: 'constant', begin: '\\?(::)?([A-Z]\\w*(::)?)+'
59
+ },
60
+ {
61
+ className: 'arrow', begin: '->'
62
+ },
63
+ {
64
+ className: 'ok', begin: 'ok'
65
+ },
66
+ {
67
+ className: 'exclamation_mark', begin: '!'
68
+ },
69
+ {
70
+ className: 'function_or_atom',
71
+ begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
72
+ relevance: 0
73
+ },
74
+ {
75
+ className: 'variable',
76
+ begin: '[A-Z][a-zA-Z0-9_\']*',
77
+ relevance: 0
78
+ }
79
+ ]
80
+ }
81
+ };
@@ -0,0 +1,201 @@
1
+ /*
2
+ Language: Erlang
3
+ Description: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.
4
+ Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
5
+ */
6
+
7
+ hljs.LANGUAGES.erlang = function(){
8
+ var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
9
+ var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
10
+ var ERLANG_RESERVED = {
11
+ 'keyword': {
12
+ 'after': 1,
13
+ 'and': 1,
14
+ 'andalso': 10,
15
+ 'band': 1,
16
+ 'begin': 1,
17
+ 'bnot': 1,
18
+ 'bor': 1,
19
+ 'bsl': 1,
20
+ 'bzr': 1,
21
+ 'bxor': 1,
22
+ 'case': 1,
23
+ 'catch': 1,
24
+ 'cond': 1,
25
+ 'div': 1,
26
+ 'end': 1,
27
+ 'fun': 1,
28
+ 'let': 1,
29
+ 'not': 1,
30
+ 'of': 1,
31
+ 'orelse': 10,
32
+ 'query': 1,
33
+ 'receive': 1,
34
+ 'rem': 1,
35
+ 'try': 1,
36
+ 'when': 1,
37
+ 'xor': 1
38
+ },
39
+ 'literal': {'false': 1, 'true': 1}
40
+ };
41
+
42
+ var COMMENT = {
43
+ className: 'comment',
44
+ begin: '%', end: '$',
45
+ relevance: 0
46
+ };
47
+ var NAMED_FUN = {
48
+ begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
49
+ };
50
+ var FUNCTION_CALL = {
51
+ begin: FUNCTION_NAME_RE + '\\(', end: '\\)',
52
+ returnBegin: true,
53
+ relevance: 0,
54
+ contains: [
55
+ {
56
+ className: 'function_name', begin: FUNCTION_NAME_RE,
57
+ relevance: 0
58
+ },
59
+ {
60
+ begin: '\\(', end: '\\)', endsWithParent: true,
61
+ returnEnd: true,
62
+ relevance: 0
63
+ // "contains" defined later
64
+ }
65
+ ]
66
+ };
67
+ var TUPLE = {
68
+ className: 'tuple',
69
+ begin: '{', end: '}',
70
+ relevance: 0
71
+ // "contains" defined later
72
+ };
73
+ var VAR1 = {
74
+ className: 'variable',
75
+ begin: '\\b_([A-Z][A-Za-z0-9_]*)?',
76
+ relevance: 0
77
+ };
78
+ var VAR2 = {
79
+ className: 'variable',
80
+ begin: '[A-Z][a-zA-Z0-9_]*',
81
+ relevance: 0
82
+ };
83
+ var RECORD_ACCESS = {
84
+ begin: '#', end: '}',
85
+ illegal: '.',
86
+ relevance: 0,
87
+ returnBegin: true,
88
+ contains: [
89
+ {
90
+ className: 'record_name',
91
+ begin: '#' + hljs.UNDERSCORE_IDENT_RE,
92
+ relevance: 0
93
+ },
94
+ {
95
+ begin: '{', endsWithParent: true,
96
+ relevance: 0
97
+ // "contains" defined later
98
+ }
99
+ ]
100
+ };
101
+
102
+ var BLOCK_STATEMENTS = {
103
+ keywords: ERLANG_RESERVED,
104
+ begin: '(fun|receive|if|try|case)', end: 'end'
105
+ };
106
+ BLOCK_STATEMENTS.contains = [
107
+ COMMENT,
108
+ NAMED_FUN,
109
+ hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}),
110
+ BLOCK_STATEMENTS,
111
+ FUNCTION_CALL,
112
+ hljs.QUOTE_STRING_MODE,
113
+ hljs.C_NUMBER_MODE,
114
+ TUPLE,
115
+ VAR1, VAR2,
116
+ RECORD_ACCESS
117
+ ];
118
+
119
+ var BASIC_MODES = [
120
+ COMMENT,
121
+ NAMED_FUN,
122
+ BLOCK_STATEMENTS,
123
+ FUNCTION_CALL,
124
+ hljs.QUOTE_STRING_MODE,
125
+ hljs.C_NUMBER_MODE,
126
+ TUPLE,
127
+ VAR1, VAR2,
128
+ RECORD_ACCESS
129
+ ];
130
+ FUNCTION_CALL.contains[1].contains = BASIC_MODES;
131
+ TUPLE.contains = BASIC_MODES;
132
+ RECORD_ACCESS.contains[1].contains = BASIC_MODES;
133
+
134
+ var PARAMS = {
135
+ className: 'params',
136
+ begin: '\\(', end: '\\)',
137
+ endsWithParent: true,
138
+ contains: BASIC_MODES
139
+ };
140
+ return {
141
+ defaultMode: {
142
+ keywords: ERLANG_RESERVED,
143
+ illegal: '(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))',
144
+ contains: [
145
+ {
146
+ className: 'function',
147
+ begin: '^' + BASIC_ATOM_RE + '\\(', end: ';|\\.',
148
+ returnBegin: true,
149
+ contains: [
150
+ PARAMS,
151
+ {
152
+ className: 'title', begin: BASIC_ATOM_RE
153
+ },
154
+ {
155
+ keywords: ERLANG_RESERVED,
156
+ begin: '->', endsWithParent: true,
157
+ contains: BASIC_MODES
158
+ }
159
+ ]
160
+ },
161
+ COMMENT,
162
+ {
163
+ className: 'pp',
164
+ begin: '^-', end: '\\.',
165
+ relevance: 0,
166
+ excludeEnd: true,
167
+ returnBegin: true,
168
+ lexems: '-' + hljs.IDENT_RE,
169
+ keywords: {
170
+ '-module':1,
171
+ '-record':1,
172
+ '-undef':1,
173
+ '-export':1,
174
+ '-ifdef':1,
175
+ '-ifndef':1,
176
+ '-author':1,
177
+ '-copyright':1,
178
+ '-doc':1,
179
+ '-vsn':1,
180
+ '-import': 1,
181
+ '-include': 1,
182
+ '-include_lib': 1,
183
+ '-compile': 1,
184
+ '-define': 1,
185
+ '-else': 1,
186
+ '-endif': 1,
187
+ '-file': 1,
188
+ '-behaviour': 1,
189
+ '-behavior': 1
190
+ },
191
+ contains: [PARAMS]
192
+ },
193
+ hljs.C_NUMBER_MODE,
194
+ hljs.QUOTE_STRING_MODE,
195
+ RECORD_ACCESS,
196
+ VAR1, VAR2,
197
+ TUPLE
198
+ ]
199
+ }
200
+ };
201
+ }();