/samples/scalate-sample-sitegen/src/highlight/languages/scala.js

http://github.com/scalate/scalate · JavaScript · 63 lines · 58 code · 1 blank · 4 comment · 0 complexity · 756399e5e4ffc57cee8f531344bb4248 MD5 · raw file

  1. /*
  2. Language: Scala
  3. Author: Jan Berkel <jan.berkel@gmail.com>
  4. */
  5. hljs.LANGUAGES.scala = {
  6. defaultMode: {
  7. lexems: [hljs.UNDERSCORE_IDENT_RE],
  8. contains: ['javadoc', 'comment', 'string', 'class', 'number', 'annotation'],
  9. keywords: { 'type': 1, 'yield': 1, 'lazy': 1, 'override': 1, 'def': 1, 'with': 1, 'val':1, 'var': 1, 'false': 1, 'true': 1, 'sealed': 1, 'abstract': 1, 'private': 1, 'trait': 1, 'object': 1, 'null': 1, 'if': 1, 'for': 1, 'while': 1, 'throw': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'import': 1, 'final': 1, 'return': 1, 'else': 1, 'break': 1, 'new': 1, 'catch': 1, 'super': 1, 'class': 1, 'case': 1,'package': 1, 'default': 1, 'try': 1, 'this': 1, 'match': 1, 'continue': 1, 'throws': 1}
  10. },
  11. modes: [
  12. {
  13. className: 'class',
  14. lexems: [hljs.UNDERSCORE_IDENT_RE],
  15. begin: '((case )?class |object |trait )', end: '({|$)',
  16. illegal: ':',
  17. keywords: {'case' : 1, 'class': 1, 'trait': 1, 'object': 1},
  18. contains: ['inheritance', 'title', 'params']
  19. },
  20. {
  21. className: 'inheritance',
  22. begin: '(extends|with)', end: '^', noMarkup: true,
  23. lexems: [hljs.IDENT_RE],
  24. keywords: {'extends': 1, 'with': 1},
  25. relevance: 10
  26. },
  27. {
  28. className: 'title',
  29. begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
  30. },
  31. {
  32. className: 'params',
  33. begin: '\\(', end: '\\)',
  34. contains: ['string', 'annotation']
  35. },
  36. hljs.C_NUMBER_MODE,
  37. hljs.APOS_STRING_MODE,
  38. hljs.QUOTE_STRING_MODE,
  39. hljs.BACKSLASH_ESCAPE,
  40. hljs.C_LINE_COMMENT_MODE,
  41. {
  42. className: 'javadoc',
  43. begin: '/\\*\\*', end: '\\*/',
  44. contains: ['javadoctag'],
  45. relevance: 10
  46. },
  47. {
  48. className: 'javadoctag',
  49. begin: '@[A-Za-z]+', end: '^'
  50. },
  51. hljs.C_BLOCK_COMMENT_MODE,
  52. {
  53. className: 'annotation',
  54. begin: '@[A-Za-z]+', end: '^'
  55. },
  56. {
  57. className: 'string',
  58. begin: 'u?r?"""', end: '"""',
  59. relevance: 10
  60. }
  61. ]
  62. };