highlight_js-rails 0.0.2 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. data/AUTHORS.en.txt +20 -2
  2. data/AUTHORS.ru.txt +20 -2
  3. data/classref.txt +122 -6
  4. data/lib/highlight_js/version.rb +1 -1
  5. data/vendor/assets/images/highlight_js/pojoaque.jpg +0 -0
  6. data/vendor/assets/javascripts/highlight_js/highlight.js +116 -80
  7. data/vendor/assets/javascripts/highlight_js/languages/1c.js +34 -8
  8. data/vendor/assets/javascripts/highlight_js/languages/actionscript.js +85 -0
  9. data/vendor/assets/javascripts/highlight_js/languages/apache.js +96 -409
  10. data/vendor/assets/javascripts/highlight_js/languages/avrasm.js +53 -66
  11. data/vendor/assets/javascripts/highlight_js/languages/axapta.js +41 -38
  12. data/vendor/assets/javascripts/highlight_js/languages/bash.js +19 -16
  13. data/vendor/assets/javascripts/highlight_js/languages/clojure.js +105 -0
  14. data/vendor/assets/javascripts/highlight_js/languages/cmake.js +33 -17
  15. data/vendor/assets/javascripts/highlight_js/languages/coffeescript.js +112 -0
  16. data/vendor/assets/javascripts/highlight_js/languages/cpp.js +26 -37
  17. data/vendor/assets/javascripts/highlight_js/languages/cs.js +46 -34
  18. data/vendor/assets/javascripts/highlight_js/languages/css.js +6 -9
  19. data/vendor/assets/javascripts/highlight_js/languages/d.js +269 -0
  20. data/vendor/assets/javascripts/highlight_js/languages/delphi.js +20 -11
  21. data/vendor/assets/javascripts/highlight_js/languages/diff.js +60 -58
  22. data/vendor/assets/javascripts/highlight_js/languages/django.js +23 -5
  23. data/vendor/assets/javascripts/highlight_js/languages/dos.js +31 -23
  24. data/vendor/assets/javascripts/highlight_js/languages/erlang-repl.js +52 -76
  25. data/vendor/assets/javascripts/highlight_js/languages/erlang.js +27 -64
  26. data/vendor/assets/javascripts/highlight_js/languages/glsl.js +101 -0
  27. data/vendor/assets/javascripts/highlight_js/languages/go.js +14 -25
  28. data/vendor/assets/javascripts/highlight_js/languages/haskell.js +34 -21
  29. data/vendor/assets/javascripts/highlight_js/languages/http.js +41 -0
  30. data/vendor/assets/javascripts/highlight_js/languages/ini.js +30 -28
  31. data/vendor/assets/javascripts/highlight_js/languages/java.js +46 -40
  32. data/vendor/assets/javascripts/highlight_js/languages/javascript.js +55 -49
  33. data/vendor/assets/javascripts/highlight_js/languages/json.js +44 -0
  34. data/vendor/assets/javascripts/highlight_js/languages/lisp.js +27 -26
  35. data/vendor/assets/javascripts/highlight_js/languages/lua.js +31 -39
  36. data/vendor/assets/javascripts/highlight_js/languages/markdown.js +87 -0
  37. data/vendor/assets/javascripts/highlight_js/languages/matlab.js +64 -0
  38. data/vendor/assets/javascripts/highlight_js/languages/mel.js +232 -34
  39. data/vendor/assets/javascripts/highlight_js/languages/nginx.js +85 -207
  40. data/vendor/assets/javascripts/highlight_js/languages/objectivec.js +33 -37
  41. data/vendor/assets/javascripts/highlight_js/languages/parser3.js +10 -10
  42. data/vendor/assets/javascripts/highlight_js/languages/perl.js +50 -22
  43. data/vendor/assets/javascripts/highlight_js/languages/php.js +106 -49
  44. data/vendor/assets/javascripts/highlight_js/languages/profile.js +44 -42
  45. data/vendor/assets/javascripts/highlight_js/languages/python.js +59 -46
  46. data/vendor/assets/javascripts/highlight_js/languages/r.js +82 -0
  47. data/vendor/assets/javascripts/highlight_js/languages/rib.js +34 -0
  48. data/vendor/assets/javascripts/highlight_js/languages/rsl.js +46 -0
  49. data/vendor/assets/javascripts/highlight_js/languages/ruby.js +96 -107
  50. data/vendor/assets/javascripts/highlight_js/languages/rust.js +62 -0
  51. data/vendor/assets/javascripts/highlight_js/languages/scala.js +10 -7
  52. data/vendor/assets/javascripts/highlight_js/languages/smalltalk.js +3 -3
  53. data/vendor/assets/javascripts/highlight_js/languages/sql.js +61 -85
  54. data/vendor/assets/javascripts/highlight_js/languages/tex.js +4 -6
  55. data/vendor/assets/javascripts/highlight_js/languages/vala.js +62 -68
  56. data/vendor/assets/javascripts/highlight_js/languages/vbscript.js +41 -23
  57. data/vendor/assets/javascripts/highlight_js/languages/vhdl.js +45 -24
  58. data/vendor/assets/javascripts/highlight_js/languages/xml.js +13 -9
  59. data/vendor/assets/stylesheets/highlight_js/arta.css +15 -11
  60. data/vendor/assets/stylesheets/highlight_js/ascetic.css +8 -3
  61. data/vendor/assets/stylesheets/highlight_js/{brown_paper.css.erb → brown_paper.scss} +11 -14
  62. data/vendor/assets/stylesheets/highlight_js/dark.css +10 -12
  63. data/vendor/assets/stylesheets/highlight_js/default.css +27 -16
  64. data/vendor/assets/stylesheets/highlight_js/far.css +14 -21
  65. data/vendor/assets/stylesheets/highlight_js/github.css +14 -12
  66. data/vendor/assets/stylesheets/highlight_js/googlecode.css +144 -0
  67. data/vendor/assets/stylesheets/highlight_js/idea.css +7 -4
  68. data/vendor/assets/stylesheets/highlight_js/ir_black.css +9 -14
  69. data/vendor/assets/stylesheets/highlight_js/magula.css +8 -7
  70. data/vendor/assets/stylesheets/highlight_js/monokai.css +112 -0
  71. data/vendor/assets/stylesheets/highlight_js/pojoaque.scss +104 -0
  72. data/vendor/assets/stylesheets/highlight_js/rainbow.css +114 -0
  73. data/vendor/assets/stylesheets/highlight_js/{school_book.css.erb → school_book.scss} +11 -13
  74. data/vendor/assets/stylesheets/highlight_js/solarized_dark.css +10 -18
  75. data/vendor/assets/stylesheets/highlight_js/solarized_light.css +10 -18
  76. data/vendor/assets/stylesheets/highlight_js/sunburst.css +8 -7
  77. data/vendor/assets/stylesheets/highlight_js/tomorrow-night-blue.css +42 -0
  78. data/vendor/assets/stylesheets/highlight_js/tomorrow-night-bright.css +41 -0
  79. data/vendor/assets/stylesheets/highlight_js/tomorrow-night-eighties.css +41 -0
  80. data/vendor/assets/stylesheets/highlight_js/tomorrow-night.css +42 -0
  81. data/vendor/assets/stylesheets/highlight_js/tomorrow.css +39 -0
  82. data/vendor/assets/stylesheets/highlight_js/vs.css +8 -7
  83. data/vendor/assets/stylesheets/highlight_js/xcode.css +154 -0
  84. data/vendor/assets/stylesheets/highlight_js/zenburn.css +9 -11
  85. metadata +42 -8
  86. data/vendor/assets/javascripts/highlight_js/languages/renderman.js +0 -230
@@ -2,70 +2,83 @@
2
2
  Language: Python
3
3
  */
4
4
 
5
- hljs.LANGUAGES.python = function() {
6
- var STR1 = {
7
- className: 'string',
8
- begin: '(u|b)?r?\'\'\'', end: '\'\'\'',
9
- relevance: 10
10
- };
11
- var STR2 = {
12
- className: 'string',
13
- begin: '(u|b)?r?"""', end: '"""',
14
- relevance: 10
15
- };
16
- var STR3 = {
17
- className: 'string',
18
- begin: '(u|r|ur|b|br)\'', end: '\'',
19
- contains: [hljs.BACKSLASH_ESCAPE],
20
- relevance: 10
21
- };
22
- var STR4 = {
23
- className: 'string',
24
- begin: '(u|r|ur|b|br)"', end: '"',
25
- contains: [hljs.BACKSLASH_ESCAPE],
26
- relevance: 10
27
- };
5
+ hljs.LANGUAGES['python'] = function(hljs) {
6
+ var STRINGS = [
7
+ {
8
+ className: 'string',
9
+ begin: '(u|b)?r?\'\'\'', end: '\'\'\'',
10
+ relevance: 10
11
+ },
12
+ {
13
+ className: 'string',
14
+ begin: '(u|b)?r?"""', end: '"""',
15
+ relevance: 10
16
+ },
17
+ {
18
+ className: 'string',
19
+ begin: '(u|r|ur)\'', end: '\'',
20
+ contains: [hljs.BACKSLASH_ESCAPE],
21
+ relevance: 10
22
+ },
23
+ {
24
+ className: 'string',
25
+ begin: '(u|r|ur)"', end: '"',
26
+ contains: [hljs.BACKSLASH_ESCAPE],
27
+ relevance: 10
28
+ },
29
+ {
30
+ className: 'string',
31
+ begin: '(b|br)\'', end: '\'',
32
+ contains: [hljs.BACKSLASH_ESCAPE]
33
+ },
34
+ {
35
+ className: 'string',
36
+ begin: '(b|br)"', end: '"',
37
+ contains: [hljs.BACKSLASH_ESCAPE]
38
+ }
39
+ ].concat([
40
+ hljs.APOS_STRING_MODE,
41
+ hljs.QUOTE_STRING_MODE
42
+ ]);
28
43
  var TITLE = {
29
44
  className: 'title', begin: hljs.UNDERSCORE_IDENT_RE
30
45
  };
31
46
  var PARAMS = {
32
47
  className: 'params',
33
48
  begin: '\\(', end: '\\)',
34
- contains: [STR1, STR2, STR3, STR4, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
49
+ contains: ['self', hljs.C_NUMBER_MODE].concat(STRINGS)
50
+ };
51
+ var FUNC_CLASS_PROTO = {
52
+ beginWithKeyword: true, end: ':',
53
+ illegal: '[${=;\\n]',
54
+ contains: [TITLE, PARAMS],
55
+ relevance: 10
35
56
  };
36
57
 
37
58
  return {
38
59
  defaultMode: {
39
60
  keywords: {
40
- 'keyword': {'and': 1, 'elif': 1, 'is': 1, 'global': 1, 'as': 1, 'in': 1, 'if': 1, 'from': 1, 'raise': 1, 'for': 1, 'except': 1, 'finally': 1, 'print': 1, 'import': 1, 'pass': 1, 'return': 1, 'exec': 1, 'else': 1, 'break': 1, 'not': 1, 'with': 1, 'class': 1, 'assert': 1, 'yield': 1, 'try': 1, 'while': 1, 'continue': 1, 'del': 1, 'or': 1, 'def': 1, 'lambda': 1, 'nonlocal': 10},
41
- 'built_in': {'None': 1, 'True': 1, 'False': 1, 'Ellipsis': 1, 'NotImplemented': 1}
61
+ keyword:
62
+ 'and elif is global as in if from raise for except finally print import pass return ' +
63
+ 'exec else break not with class assert yield try while continue del or def lambda ' +
64
+ 'nonlocal|10',
65
+ built_in:
66
+ 'None True False Ellipsis NotImplemented'
42
67
  },
43
68
  illegal: '(</|->|\\?)',
44
- contains: [
69
+ contains: STRINGS.concat([
45
70
  hljs.HASH_COMMENT_MODE,
46
- STR1, STR2, STR3, STR4, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
47
- {
48
- className: 'function',
49
- begin: '\\bdef ', end: ':',
50
- illegal: '$',
51
- keywords: {'def': 1},
52
- contains: [TITLE, PARAMS],
53
- relevance: 10
54
- },
55
- {
56
- className: 'class',
57
- begin: '\\bclass ', end: ':',
58
- illegal: '[${]',
59
- keywords: {'class': 1},
60
- contains: [TITLE, PARAMS],
61
- relevance: 10
62
- },
71
+ hljs.inherit(FUNC_CLASS_PROTO, {className: 'function', keywords: 'def'}),
72
+ hljs.inherit(FUNC_CLASS_PROTO, {className: 'class', keywords: 'class'}),
63
73
  hljs.C_NUMBER_MODE,
64
74
  {
65
75
  className: 'decorator',
66
76
  begin: '@', end: '$'
77
+ },
78
+ {
79
+ begin: '\\b(print|exec)\\(' // don’t highlight keywords-turned-functions in Python 3
67
80
  }
68
- ]
81
+ ])
69
82
  }
70
83
  };
71
- }();
84
+ }(hljs);
@@ -0,0 +1,82 @@
1
+ /*
2
+ Language: R
3
+ Author: Joe Cheng <joe@rstudio.org>
4
+ */
5
+
6
+ hljs.LANGUAGES['r'] = function(hljs) {
7
+ var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
8
+
9
+ return {
10
+ defaultMode: {
11
+ contains: [
12
+ hljs.HASH_COMMENT_MODE,
13
+ {
14
+ begin: IDENT_RE,
15
+ lexems: IDENT_RE,
16
+ keywords: {
17
+ keyword:
18
+ 'function if in break next repeat else for return switch while try tryCatch|10 ' +
19
+ 'stop warning require library attach detach source setMethod setGeneric ' +
20
+ 'setGroupGeneric setClass ...|10',
21
+ literal:
22
+ 'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
23
+ 'NA_complex_|10'
24
+ },
25
+ relevance: 0
26
+ },
27
+ {
28
+ // hex value
29
+ className: 'number',
30
+ begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
31
+ relevance: 0
32
+ },
33
+ {
34
+ // explicit integer
35
+ className: 'number',
36
+ begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
37
+ relevance: 0
38
+ },
39
+ {
40
+ // number with trailing decimal
41
+ className: 'number',
42
+ begin: "\\d+\\.(?!\\d)(?:i\\b)?",
43
+ relevance: 0
44
+ },
45
+ {
46
+ // number
47
+ className: 'number',
48
+ begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
49
+ relevance: 0
50
+ },
51
+ {
52
+ // number with leading decimal
53
+ className: 'number',
54
+ begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
55
+ relevance: 0
56
+ },
57
+
58
+ {
59
+ // escaped identifier
60
+ begin: '`',
61
+ end: '`',
62
+ relevance: 0
63
+ },
64
+
65
+ {
66
+ className: 'string',
67
+ begin: '"',
68
+ end: '"',
69
+ contains: [hljs.BACKSLASH_ESCAPE],
70
+ relevance: 0
71
+ },
72
+ {
73
+ className: 'string',
74
+ begin: "'",
75
+ end: "'",
76
+ contains: [hljs.BACKSLASH_ESCAPE],
77
+ relevance: 0
78
+ }
79
+ ]
80
+ }
81
+ };
82
+ }(hljs);
@@ -0,0 +1,34 @@
1
+ /*
2
+ Language: RenderMan RIB
3
+ Author: Konstantin Evdokimenko <qewerty@gmail.com>
4
+ Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
5
+ */
6
+
7
+ hljs.LANGUAGES['rib'] = function(hljs) {
8
+ return {
9
+ defaultMode: {
10
+ keywords:
11
+ 'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +
12
+ 'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +
13
+ 'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +
14
+ 'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +
15
+ 'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +
16
+ 'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +
17
+ 'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +
18
+ 'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +
19
+ 'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +
20
+ 'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +
21
+ 'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +
22
+ 'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +
23
+ 'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +
24
+ 'TransformPoints Translate TrimCurve WorldBegin WorldEnd',
25
+ illegal: '</',
26
+ contains: [
27
+ hljs.HASH_COMMENT_MODE,
28
+ hljs.C_NUMBER_MODE,
29
+ hljs.APOS_STRING_MODE,
30
+ hljs.QUOTE_STRING_MODE
31
+ ]
32
+ }
33
+ };
34
+ }(hljs);
@@ -0,0 +1,46 @@
1
+ /*
2
+ Language: RenderMan RSL
3
+ Author: Konstantin Evdokimenko <qewerty@gmail.com>
4
+ Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
5
+ */
6
+
7
+ hljs.LANGUAGES['rsl'] = function(hljs) {
8
+ return {
9
+ defaultMode: {
10
+ keywords: {
11
+ keyword:
12
+ 'float color point normal vector matrix while for if do return else break extern continue',
13
+ built_in:
14
+ 'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
15
+ 'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
16
+ 'faceforward filterstep floor format fresnel incident length lightsource log match ' +
17
+ 'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
18
+ 'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
19
+ 'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
20
+ 'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
21
+ },
22
+ illegal: '</',
23
+ contains: [
24
+ hljs.C_LINE_COMMENT_MODE,
25
+ hljs.C_BLOCK_COMMENT_MODE,
26
+ hljs.QUOTE_STRING_MODE,
27
+ hljs.APOS_STRING_MODE,
28
+ hljs.C_NUMBER_MODE,
29
+ {
30
+ className: 'preprocessor',
31
+ begin: '#', end: '$'
32
+ },
33
+ {
34
+ className: 'shader',
35
+ beginWithKeyword: true, end: '\\(',
36
+ keywords: 'surface displacement light volume imager'
37
+ },
38
+ {
39
+ className: 'shading',
40
+ beginWithKeyword: true, end: '\\(',
41
+ keywords: 'illuminate illuminance gather'
42
+ }
43
+ ]
44
+ }
45
+ };
46
+ }(hljs);
@@ -4,32 +4,36 @@ Author: Anton Kovalyov <anton@kovalyov.net>
4
4
  Contributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>
5
5
  */
6
6
 
7
- hljs.LANGUAGES.ruby = function(){
7
+ hljs.LANGUAGES['ruby'] = function(hljs) {
8
8
  var RUBY_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
9
9
  var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
10
10
  var RUBY_KEYWORDS = {
11
- 'keyword': {'and': 1, 'false': 1, 'then': 1, 'defined': 1, 'module': 1, 'in': 1, 'return': 1, 'redo': 1, 'if': 1, 'BEGIN': 1, 'retry': 1, 'end': 1, 'for': 1, 'true': 1, 'self': 1, 'when': 1, 'next': 1, 'until': 1, 'do': 1, 'begin': 1, 'unless': 1, 'END': 1, 'rescue': 1, 'nil': 1, 'else': 1, 'break': 1, 'undef': 1, 'not': 1, 'super': 1, 'class': 1, 'case': 1, 'require': 1, 'yield': 1, 'alias': 1, 'while': 1, 'ensure': 1, 'elsif': 1, 'or': 1, 'def': 1},
12
- 'keymethods': {'__id__': 1, '__send__': 1, 'abort': 1, 'abs': 1, 'all?': 1, 'allocate': 1, 'ancestors': 1, 'any?': 1, 'arity': 1, 'assoc': 1, 'at': 1, 'at_exit': 1, 'autoload': 1, 'autoload?': 1, 'between?': 1, 'binding': 1, 'binmode': 1, 'block_given?': 1, 'call': 1, 'callcc': 1, 'caller': 1, 'capitalize': 1, 'capitalize!': 1, 'casecmp': 1, 'catch': 1, 'ceil': 1, 'center': 1, 'chomp': 1, 'chomp!': 1, 'chop': 1, 'chop!': 1, 'chr': 1, 'class': 1, 'class_eval': 1, 'class_variable_defined?': 1, 'class_variables': 1, 'clear': 1, 'clone': 1, 'close': 1, 'close_read': 1, 'close_write': 1, 'closed?': 1, 'coerce': 1, 'collect': 1, 'collect!': 1, 'compact': 1, 'compact!': 1, 'concat': 1, 'const_defined?': 1, 'const_get': 1, 'const_missing': 1, 'const_set': 1, 'constants': 1, 'count': 1, 'crypt': 1, 'default': 1, 'default_proc': 1, 'delete': 1, 'delete!': 1, 'delete_at': 1, 'delete_if': 1, 'detect': 1, 'display': 1, 'div': 1, 'divmod': 1, 'downcase': 1, 'downcase!': 1, 'downto': 1, 'dump': 1, 'dup': 1, 'each': 1, 'each_byte': 1, 'each_index': 1, 'each_key': 1, 'each_line': 1, 'each_pair': 1, 'each_value': 1, 'each_with_index': 1, 'empty?': 1, 'entries': 1, 'eof': 1, 'eof?': 1, 'eql?': 1, 'equal?': 1, 'eval': 1, 'exec': 1, 'exit': 1, 'exit!': 1, 'extend': 1, 'fail': 1, 'fcntl': 1, 'fetch': 1, 'fileno': 1, 'fill': 1, 'find': 1, 'find_all': 1, 'first': 1, 'flatten': 1, 'flatten!': 1, 'floor': 1, 'flush': 1, 'for_fd': 1, 'foreach': 1, 'fork': 1, 'format': 1, 'freeze': 1, 'frozen?': 1, 'fsync': 1, 'getc': 1, 'gets': 1, 'global_variables': 1, 'grep': 1, 'gsub': 1, 'gsub!': 1, 'has_key?': 1, 'has_value?': 1, 'hash': 1, 'hex': 1, 'id': 1, 'include': 1, 'include?': 1, 'included_modules': 1, 'index': 1, 'indexes': 1, 'indices': 1, 'induced_from': 1, 'inject': 1, 'insert': 1, 'inspect': 1, 'instance_eval': 1, 'instance_method': 1, 'instance_methods': 1, 'instance_of?': 1, 'instance_variable_defined?': 1, 'instance_variable_get': 1, 'instance_variable_set': 1, 'instance_variables': 1, 'integer?': 1, 'intern': 1, 'invert': 1, 'ioctl': 1, 'is_a?': 1, 'isatty': 1, 'iterator?': 1, 'join': 1, 'key?': 1, 'keys': 1, 'kind_of?': 1, 'lambda': 1, 'last': 1, 'length': 1, 'lineno': 1, 'ljust': 1, 'load': 1, 'local_variables': 1, 'loop': 1, 'lstrip': 1, 'lstrip!': 1, 'map': 1, 'map!': 1, 'match': 1, 'max': 1, 'member?': 1, 'merge': 1, 'merge!': 1, 'method': 1, 'method_defined?': 1, 'method_missing': 1, 'methods': 1, 'min': 1, 'module_eval': 1, 'modulo': 1, 'name': 1, 'nesting': 1, 'new': 1, 'next': 1, 'next!': 1, 'nil?': 1, 'nitems': 1, 'nonzero?': 1, 'object_id': 1, 'oct': 1, 'open': 1, 'pack': 1, 'partition': 1, 'pid': 1, 'pipe': 1, 'pop': 1, 'popen': 1, 'pos': 1, 'prec': 1, 'prec_f': 1, 'prec_i': 1, 'print': 1, 'printf': 1, 'private_class_method': 1, 'private_instance_methods': 1, 'private_method_defined?': 1, 'private_methods': 1, 'proc': 1, 'protected_instance_methods': 1, 'protected_method_defined?': 1, 'protected_methods': 1, 'public_class_method': 1, 'public_instance_methods': 1, 'public_method_defined?': 1, 'public_methods': 1, 'push': 1, 'putc': 1, 'puts': 1, 'quo': 1, 'raise': 1, 'rand': 1, 'rassoc': 1, 'read': 1, 'read_nonblock': 1, 'readchar': 1, 'readline': 1, 'readlines': 1, 'readpartial': 1, 'rehash': 1, 'reject': 1, 'reject!': 1, 'remainder': 1, 'reopen': 1, 'replace': 1, 'require': 1, 'respond_to?': 1, 'reverse': 1, 'reverse!': 1, 'reverse_each': 1, 'rewind': 1, 'rindex': 1, 'rjust': 1, 'round': 1, 'rstrip': 1, 'rstrip!': 1, 'scan': 1, 'seek': 1, 'select': 1, 'send': 1, 'set_trace_func': 1, 'shift': 1, 'singleton_method_added': 1, 'singleton_methods': 1, 'size': 1, 'sleep': 1, 'slice': 1, 'slice!': 1, 'sort': 1, 'sort!': 1, 'sort_by': 1, 'split': 1, 'sprintf': 1, 'squeeze': 1, 'squeeze!': 1, 'srand': 1, 'stat': 1, 'step': 1, 'store': 1, 'strip': 1, 'strip!': 1, 'sub': 1, 'sub!': 1, 'succ': 1, 'succ!': 1, 'sum': 1, 'superclass': 1, 'swapcase': 1, 'swapcase!': 1, 'sync': 1, 'syscall': 1, 'sysopen': 1, 'sysread': 1, 'sysseek': 1, 'system': 1, 'syswrite': 1, 'taint': 1, 'tainted?': 1, 'tell': 1, 'test': 1, 'throw': 1, 'times': 1, 'to_a': 1, 'to_ary': 1, 'to_f': 1, 'to_hash': 1, 'to_i': 1, 'to_int': 1, 'to_io': 1, 'to_proc': 1, 'to_s': 1, 'to_str': 1, 'to_sym': 1, 'tr': 1, 'tr!': 1, 'tr_s': 1, 'tr_s!': 1, 'trace_var': 1, 'transpose': 1, 'trap': 1, 'truncate': 1, 'tty?': 1, 'type': 1, 'ungetc': 1, 'uniq': 1, 'uniq!': 1, 'unpack': 1, 'unshift': 1, 'untaint': 1, 'untrace_var': 1, 'upcase': 1, 'upcase!': 1, 'update': 1, 'upto': 1, 'value?': 1, 'values': 1, 'values_at': 1, 'warn': 1, 'write': 1, 'write_nonblock': 1, 'zero?': 1, 'zip': 1}
11
+ keyword:
12
+ 'and false then defined module in return redo if BEGIN retry end for true self when ' +
13
+ 'next until do begin unless END rescue nil else break undef not super class case ' +
14
+ 'require yield alias while ensure elsif or include'
13
15
  };
14
16
  var YARDOCTAG = {
15
17
  className: 'yardoctag',
16
18
  begin: '@[A-Za-z]+'
17
19
  };
18
- var COMMENT1 = {
19
- className: 'comment',
20
- begin: '#', end: '$',
21
- contains: [YARDOCTAG]
22
- };
23
- var COMMENT2 = {
24
- className: 'comment',
25
- begin: '^\\=begin', end: '^\\=end',
26
- contains: [YARDOCTAG],
27
- relevance: 10
28
- };
29
- var COMMENT3 = {
30
- className: 'comment',
31
- begin: '^__END__', end: '\\n$'
32
- };
20
+ var COMMENTS = [
21
+ {
22
+ className: 'comment',
23
+ begin: '#', end: '$',
24
+ contains: [YARDOCTAG]
25
+ },
26
+ {
27
+ className: 'comment',
28
+ begin: '^\\=begin', end: '^\\=end',
29
+ contains: [YARDOCTAG],
30
+ relevance: 10
31
+ },
32
+ {
33
+ className: 'comment',
34
+ begin: '^__END__', end: '\\n$'
35
+ }
36
+ ];
33
37
  var SUBST = {
34
38
  className: 'subst',
35
39
  begin: '#\\{', end: '}',
@@ -37,71 +41,69 @@ hljs.LANGUAGES.ruby = function(){
37
41
  keywords: RUBY_KEYWORDS
38
42
  };
39
43
  var STR_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST];
40
- var STR1 = {
41
- className: 'string',
42
- begin: '\'', end: '\'',
43
- contains: STR_CONTAINS,
44
- relevance: 0
45
- };
46
- var STR2 = {
47
- className: 'string',
48
- begin: '"', end: '"',
49
- contains: STR_CONTAINS,
50
- relevance: 0
51
- };
52
- var STR3 = {
53
- className: 'string',
54
- begin: '%[qw]?\\(', end: '\\)',
55
- contains: STR_CONTAINS,
56
- relevance: 10
57
- };
58
- var STR4 = {
59
- className: 'string',
60
- begin: '%[qw]?\\[', end: '\\]',
61
- contains: STR_CONTAINS,
62
- relevance: 10
63
- };
64
- var STR5 = {
65
- className: 'string',
66
- begin: '%[qw]?{', end: '}',
67
- contains: STR_CONTAINS,
68
- relevance: 10
69
- };
70
- var STR6 = {
71
- className: 'string',
72
- begin: '%[qw]?<', end: '>',
73
- contains: STR_CONTAINS,
74
- relevance: 10
75
- };
76
- var STR7 = {
77
- className: 'string',
78
- begin: '%[qw]?/', end: '/',
79
- contains: STR_CONTAINS,
80
- relevance: 10
81
- };
82
- var STR8 = {
83
- className: 'string',
84
- begin: '%[qw]?%', end: '%',
85
- contains: STR_CONTAINS,
86
- relevance: 10
87
- };
88
- var STR9 = {
89
- className: 'string',
90
- begin: '%[qw]?-', end: '-',
91
- contains: STR_CONTAINS,
92
- relevance: 10
93
- };
94
- var STR10 = {
95
- className: 'string',
96
- begin: '%[qw]?\\|', end: '\\|',
97
- contains: STR_CONTAINS,
98
- relevance: 10
99
- };
44
+ var STRINGS = [
45
+ {
46
+ className: 'string',
47
+ begin: '\'', end: '\'',
48
+ contains: STR_CONTAINS,
49
+ relevance: 0
50
+ },
51
+ {
52
+ className: 'string',
53
+ begin: '"', end: '"',
54
+ contains: STR_CONTAINS,
55
+ relevance: 0
56
+ },
57
+ {
58
+ className: 'string',
59
+ begin: '%[qw]?\\(', end: '\\)',
60
+ contains: STR_CONTAINS
61
+ },
62
+ {
63
+ className: 'string',
64
+ begin: '%[qw]?\\[', end: '\\]',
65
+ contains: STR_CONTAINS
66
+ },
67
+ {
68
+ className: 'string',
69
+ begin: '%[qw]?{', end: '}',
70
+ contains: STR_CONTAINS
71
+ },
72
+ {
73
+ className: 'string',
74
+ begin: '%[qw]?<', end: '>',
75
+ contains: STR_CONTAINS,
76
+ relevance: 10
77
+ },
78
+ {
79
+ className: 'string',
80
+ begin: '%[qw]?/', end: '/',
81
+ contains: STR_CONTAINS,
82
+ relevance: 10
83
+ },
84
+ {
85
+ className: 'string',
86
+ begin: '%[qw]?%', end: '%',
87
+ contains: STR_CONTAINS,
88
+ relevance: 10
89
+ },
90
+ {
91
+ className: 'string',
92
+ begin: '%[qw]?-', end: '-',
93
+ contains: STR_CONTAINS,
94
+ relevance: 10
95
+ },
96
+ {
97
+ className: 'string',
98
+ begin: '%[qw]?\\|', end: '\\|',
99
+ contains: STR_CONTAINS,
100
+ relevance: 10
101
+ }
102
+ ];
100
103
  var FUNCTION = {
101
104
  className: 'function',
102
- begin: '\\bdef\\s+', end: ' |$|;',
103
- lexems: RUBY_IDENT_RE,
104
- keywords: RUBY_KEYWORDS,
105
+ beginWithKeyword: true, end: ' |$|;',
106
+ keywords: 'def',
105
107
  contains: [
106
108
  {
107
109
  className: 'title',
@@ -114,25 +116,15 @@ hljs.LANGUAGES.ruby = function(){
114
116
  begin: '\\(', end: '\\)',
115
117
  lexems: RUBY_IDENT_RE,
116
118
  keywords: RUBY_KEYWORDS
117
- },
118
- COMMENT1, COMMENT2, COMMENT3
119
- ]
120
- };
121
- var IDENTIFIER = {
122
- className: 'identifier',
123
- begin: RUBY_IDENT_RE,
124
- lexems: RUBY_IDENT_RE,
125
- keywords: RUBY_KEYWORDS,
126
- relevance: 0
119
+ }
120
+ ].concat(COMMENTS)
127
121
  };
128
122
 
129
- var RUBY_DEFAULT_CONTAINS = [
130
- COMMENT1, COMMENT2, COMMENT3,
131
- STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10,
123
+ var RUBY_DEFAULT_CONTAINS = COMMENTS.concat(STRINGS.concat([
132
124
  {
133
125
  className: 'class',
134
- begin: '\\b(class|module)\\b', end: '$|;',
135
- keywords: {'class': 1, 'module': 1},
126
+ beginWithKeyword: true, end: '$|;',
127
+ keywords: 'class module',
136
128
  contains: [
137
129
  {
138
130
  className: 'title',
@@ -146,20 +138,19 @@ hljs.LANGUAGES.ruby = function(){
146
138
  className: 'parent',
147
139
  begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE
148
140
  }]
149
- },
150
- COMMENT1, COMMENT2, COMMENT3
151
- ]
141
+ }
142
+ ].concat(COMMENTS)
152
143
  },
153
144
  FUNCTION,
154
145
  {
155
146
  className: 'constant',
156
- begin: '(::)?([A-Z]\\w*(::)?)+',
147
+ begin: '(::)?(\\b[A-Z]\\w*(::)?)+',
157
148
  relevance: 0
158
149
  },
159
150
  {
160
151
  className: 'symbol',
161
152
  begin: ':',
162
- contains: [STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10, IDENTIFIER],
153
+ contains: STRINGS.concat([{begin: RUBY_IDENT_RE}]),
163
154
  relevance: 0
164
155
  },
165
156
  {
@@ -175,21 +166,19 @@ hljs.LANGUAGES.ruby = function(){
175
166
  className: 'variable',
176
167
  begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
177
168
  },
178
- IDENTIFIER,
179
169
  { // regexp container
180
170
  begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
181
- contains: [
182
- COMMENT1, COMMENT2, COMMENT3,
171
+ contains: COMMENTS.concat([
183
172
  {
184
173
  className: 'regexp',
185
174
  begin: '/', end: '/[a-z]*',
186
175
  illegal: '\\n',
187
176
  contains: [hljs.BACKSLASH_ESCAPE]
188
177
  }
189
- ],
178
+ ]),
190
179
  relevance: 0
191
180
  }
192
- ];
181
+ ]));
193
182
  SUBST.contains = RUBY_DEFAULT_CONTAINS;
194
183
  FUNCTION.contains[1].contains = RUBY_DEFAULT_CONTAINS;
195
184
 
@@ -200,4 +189,4 @@ hljs.LANGUAGES.ruby = function(){
200
189
  contains: RUBY_DEFAULT_CONTAINS
201
190
  }
202
191
  };
203
- }();
192
+ }(hljs);