showoffer 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.rdoc +559 -0
- data/Rakefile +27 -0
- data/bin/showoffer +189 -0
- data/lib/commandline_parser.rb +67 -0
- data/lib/showoff.rb +515 -0
- data/lib/showoff/version.rb +3 -0
- data/lib/showoff_utils.rb +360 -0
- data/public/css/960.css +653 -0
- data/public/css/fg.menu.css +114 -0
- data/public/css/onepage.css +60 -0
- data/public/css/pdf.css +12 -0
- data/public/css/presenter.css +76 -0
- data/public/css/reset.css +53 -0
- data/public/css/sh_style.css +66 -0
- data/public/css/showoff.css +403 -0
- data/public/css/spinner_bar.gif +0 -0
- data/public/css/theme/images/ui-bg_diagonals-small_100_f0efea_40x40.png +0 -0
- data/public/css/theme/images/ui-bg_flat_35_f0f0f0_40x100.png +0 -0
- data/public/css/theme/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
- data/public/css/theme/images/ui-bg_glow-ball_25_2e2e28_600x600.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_100_f0efea_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_25_327E04_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_25_5A9D1A_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_inset-soft_22_3b3b35_1x100.png +0 -0
- data/public/css/theme/images/ui-icons_808080_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_8DC262_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_e7e6e4_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_eeeeee_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/theme/ui.accordion.css +9 -0
- data/public/css/theme/ui.all.css +2 -0
- data/public/css/theme/ui.base.css +9 -0
- data/public/css/theme/ui.core.css +37 -0
- data/public/css/theme/ui.datepicker.css +62 -0
- data/public/css/theme/ui.dialog.css +13 -0
- data/public/css/theme/ui.progressbar.css +4 -0
- data/public/css/theme/ui.resizable.css +13 -0
- data/public/css/theme/ui.slider.css +17 -0
- data/public/css/theme/ui.tabs.css +9 -0
- data/public/css/theme/ui.theme.css +245 -0
- data/public/favicon.ico +0 -0
- data/public/highlight/AUTHORS.en.txt +46 -0
- data/public/highlight/AUTHORS.ru.txt +46 -0
- data/public/highlight/LICENSE +24 -0
- data/public/highlight/README.md +136 -0
- data/public/highlight/README.ru.md +140 -0
- data/public/highlight/classref.txt +437 -0
- data/public/highlight/export.html +87 -0
- data/public/highlight/highlight.js +630 -0
- data/public/highlight/highlight.pack.js +1 -0
- data/public/highlight/languages/1c.js +68 -0
- data/public/highlight/languages/apache.js +432 -0
- data/public/highlight/languages/avrasm.js +75 -0
- data/public/highlight/languages/axapta.js +43 -0
- data/public/highlight/languages/bash.js +56 -0
- data/public/highlight/languages/cmake.js +24 -0
- data/public/highlight/languages/cpp.js +62 -0
- data/public/highlight/languages/cs.js +41 -0
- data/public/highlight/languages/css.js +101 -0
- data/public/highlight/languages/delphi.js +70 -0
- data/public/highlight/languages/diff.js +64 -0
- data/public/highlight/languages/django.js +72 -0
- data/public/highlight/languages/dos.js +29 -0
- data/public/highlight/languages/erlang-repl.js +81 -0
- data/public/highlight/languages/erlang.js +201 -0
- data/public/highlight/languages/go.js +58 -0
- data/public/highlight/languages/haskell.js +77 -0
- data/public/highlight/languages/ini.js +32 -0
- data/public/highlight/languages/java.js +45 -0
- data/public/highlight/languages/javascript.js +53 -0
- data/public/highlight/languages/lisp.js +87 -0
- data/public/highlight/languages/lua.js +75 -0
- data/public/highlight/languages/mel.js +40 -0
- data/public/highlight/languages/nginx.js +224 -0
- data/public/highlight/languages/objectivec.js +94 -0
- data/public/highlight/languages/parser3.js +52 -0
- data/public/highlight/languages/perl.js +143 -0
- data/public/highlight/languages/php.js +55 -0
- data/public/highlight/languages/profile.js +49 -0
- data/public/highlight/languages/python.js +71 -0
- data/public/highlight/languages/renderman.js +230 -0
- data/public/highlight/languages/ruby.js +203 -0
- data/public/highlight/languages/scala.js +60 -0
- data/public/highlight/languages/smalltalk.js +55 -0
- data/public/highlight/languages/sql.js +90 -0
- data/public/highlight/languages/tex.js +62 -0
- data/public/highlight/languages/vala.js +75 -0
- data/public/highlight/languages/vbscript.js +30 -0
- data/public/highlight/languages/vhdl.js +30 -0
- data/public/highlight/languages/xml.js +103 -0
- data/public/highlight/styles/arta.css +151 -0
- data/public/highlight/styles/ascetic.css +45 -0
- data/public/highlight/styles/brown_paper.css +105 -0
- data/public/highlight/styles/brown_papersq.png +0 -0
- data/public/highlight/styles/dark.css +103 -0
- data/public/highlight/styles/default.css +121 -0
- data/public/highlight/styles/far.css +118 -0
- data/public/highlight/styles/github.css +129 -0
- data/public/highlight/styles/idea.css +118 -0
- data/public/highlight/styles/ir_black.css +103 -0
- data/public/highlight/styles/magula.css +118 -0
- data/public/highlight/styles/school_book.css +111 -0
- data/public/highlight/styles/school_book.png +0 -0
- data/public/highlight/styles/solarized_dark.css +96 -0
- data/public/highlight/styles/solarized_light.css +96 -0
- data/public/highlight/styles/sunburst.css +147 -0
- data/public/highlight/styles/vs.css +84 -0
- data/public/highlight/styles/zenburn.css +115 -0
- data/public/highlight/test.html +1609 -0
- data/public/js/coffee-script.js +8 -0
- data/public/js/core.js +79 -0
- data/public/js/fg.menu.js +645 -0
- data/public/js/jTypeWriter.js +26 -0
- data/public/js/jquery-1.4.2.min.js +154 -0
- data/public/js/jquery-print.js +109 -0
- data/public/js/jquery.batchImageLoad.js +56 -0
- data/public/js/jquery.cookie.js +96 -0
- data/public/js/jquery.cycle.all.js +1284 -0
- data/public/js/jquery.doubletap-0.1.js +105 -0
- data/public/js/jquery.uuid.js +24 -0
- data/public/js/jquery.ws-0.3pre.js +201 -0
- data/public/js/onepage.js +5 -0
- data/public/js/presenter.js +193 -0
- data/public/js/sh_lang/sh_bison.min.js +1 -0
- data/public/js/sh_lang/sh_c.min.js +1 -0
- data/public/js/sh_lang/sh_caml.min.js +1 -0
- data/public/js/sh_lang/sh_changelog.min.js +1 -0
- data/public/js/sh_lang/sh_coffeescript.min.js +1 -0
- data/public/js/sh_lang/sh_cpp.min.js +1 -0
- data/public/js/sh_lang/sh_csharp.min.js +1 -0
- data/public/js/sh_lang/sh_css.min.js +1 -0
- data/public/js/sh_lang/sh_cucumber.min.js +2 -0
- data/public/js/sh_lang/sh_desktop.min.js +1 -0
- data/public/js/sh_lang/sh_diff.min.js +1 -0
- data/public/js/sh_lang/sh_erlang.min.js +1 -0
- data/public/js/sh_lang/sh_flex.min.js +1 -0
- data/public/js/sh_lang/sh_glsl.min.js +1 -0
- data/public/js/sh_lang/sh_haxe.min.js +1 -0
- data/public/js/sh_lang/sh_html.min.js +1 -0
- data/public/js/sh_lang/sh_java.min.js +1 -0
- data/public/js/sh_lang/sh_javascript.min.js +1 -0
- data/public/js/sh_lang/sh_javascript_dom.min.js +1 -0
- data/public/js/sh_lang/sh_latex.min.js +1 -0
- data/public/js/sh_lang/sh_ldap.min.js +1 -0
- data/public/js/sh_lang/sh_log.min.js +1 -0
- data/public/js/sh_lang/sh_lsm.min.js +1 -0
- data/public/js/sh_lang/sh_m4.min.js +1 -0
- data/public/js/sh_lang/sh_makefile.min.js +1 -0
- data/public/js/sh_lang/sh_oracle.min.js +1 -0
- data/public/js/sh_lang/sh_pascal.min.js +1 -0
- data/public/js/sh_lang/sh_perl.min.js +1 -0
- data/public/js/sh_lang/sh_php.min.js +1 -0
- data/public/js/sh_lang/sh_prolog.min.js +1 -0
- data/public/js/sh_lang/sh_properties.min.js +1 -0
- data/public/js/sh_lang/sh_python.min.js +1 -0
- data/public/js/sh_lang/sh_ruby.min.js +1 -0
- data/public/js/sh_lang/sh_scala.min.js +1 -0
- data/public/js/sh_lang/sh_sh.min.js +1 -0
- data/public/js/sh_lang/sh_slang.min.js +1 -0
- data/public/js/sh_lang/sh_sml.min.js +1 -0
- data/public/js/sh_lang/sh_spec.min.js +1 -0
- data/public/js/sh_lang/sh_sql.min.js +1 -0
- data/public/js/sh_lang/sh_tcl.min.js +1 -0
- data/public/js/sh_lang/sh_xml.min.js +1 -0
- data/public/js/sh_lang/sh_xorg.min.js +1 -0
- data/public/js/sh_main.min.js +4 -0
- data/public/js/showoff.js +652 -0
- data/public/js/showoffcore.js +13 -0
- data/public/scripts/script.js +280 -0
- data/public/themes/ribbon/fonts/DroidSansMono.svg +626 -0
- data/public/themes/ribbon/fonts/DroidSansMono.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.Italic.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.Italic.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.Italic.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Italic.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Italic.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Italic.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.woff +0 -0
- data/public/themes/ribbon/fonts/TargetBlank.otf +0 -0
- data/public/themes/ribbon/fonts/TargetBlank.svg +14 -0
- data/public/themes/ribbon/images/grid.png +0 -0
- data/public/themes/ribbon/images/linen.png +0 -0
- data/public/themes/ribbon/images/ribbon.svg +4 -0
- data/public/themes/ribbon/styles/fonts.css +63 -0
- data/public/themes/ribbon/styles/print.css +68 -0
- data/public/themes/ribbon/styles/reset.css +42 -0
- data/public/themes/ribbon/styles/style.css +408 -0
- data/views/header.erb +11 -0
- data/views/index.erb +13 -0
- data/views/onepage.erb +39 -0
- data/views/presenter.erb +70 -0
- 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
|
+
}();
|