r.js 1.9 KB

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