r.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. Language: R
  3. Author: Joe Cheng <[email protected]>
  4. Category: scientific
  5. */
  6. function(hljs) {
  7. var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
  8. return {
  9. contains: [
  10. hljs.HASH_COMMENT_MODE,
  11. {
  12. begin: IDENT_RE,
  13. lexemes: IDENT_RE,
  14. keywords: {
  15. keyword:
  16. 'function if in break next repeat else for return switch while try tryCatch ' +
  17. 'stop warning require library attach detach source setMethod setGeneric ' +
  18. 'setGroupGeneric setClass ...',
  19. literal:
  20. 'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
  21. 'NA_complex_|10'
  22. },
  23. relevance: 0
  24. },
  25. {
  26. // hex value
  27. className: 'number',
  28. begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
  29. relevance: 0
  30. },
  31. {
  32. // explicit integer
  33. className: 'number',
  34. begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
  35. relevance: 0
  36. },
  37. {
  38. // number with trailing decimal
  39. className: 'number',
  40. begin: "\\d+\\.(?!\\d)(?:i\\b)?",
  41. relevance: 0
  42. },
  43. {
  44. // number
  45. className: 'number',
  46. begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
  47. relevance: 0
  48. },
  49. {
  50. // number with leading decimal
  51. className: 'number',
  52. begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
  53. relevance: 0
  54. },
  55. {
  56. // escaped identifier
  57. begin: '`',
  58. end: '`',
  59. relevance: 0
  60. },
  61. {
  62. className: 'string',
  63. contains: [hljs.BACKSLASH_ESCAPE],
  64. variants: [
  65. {begin: '"', end: '"'},
  66. {begin: "'", end: "'"}
  67. ]
  68. }
  69. ]
  70. };
  71. }