ini.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. module.exports = function(hljs) {
  2. var STRING = {
  3. className: "string",
  4. contains: [hljs.BACKSLASH_ESCAPE],
  5. variants: [
  6. {
  7. begin: "'''", end: "'''",
  8. relevance: 10
  9. }, {
  10. begin: '"""', end: '"""',
  11. relevance: 10
  12. }, {
  13. begin: '"', end: '"'
  14. }, {
  15. begin: "'", end: "'"
  16. }
  17. ]
  18. };
  19. return {
  20. aliases: ['toml'],
  21. case_insensitive: true,
  22. illegal: /\S/,
  23. contains: [
  24. hljs.COMMENT(';', '$'),
  25. hljs.HASH_COMMENT_MODE,
  26. {
  27. className: 'section',
  28. begin: /^\s*\[+/, end: /\]+/
  29. },
  30. {
  31. begin: /^[a-z0-9\[\]_\.-]+\s*=\s*/, end: '$',
  32. returnBegin: true,
  33. contains: [
  34. {
  35. className: 'attr',
  36. begin: /[a-z0-9\[\]_\.-]+/
  37. },
  38. {
  39. begin: /=/, endsWithParent: true,
  40. relevance: 0,
  41. contains: [
  42. {
  43. className: 'literal',
  44. begin: /\bon|off|true|false|yes|no\b/
  45. },
  46. {
  47. className: 'variable',
  48. variants: [
  49. {begin: /\$[\w\d"][\w\d_]*/},
  50. {begin: /\$\{(.*?)}/}
  51. ]
  52. },
  53. STRING,
  54. {
  55. className: 'number',
  56. begin: /([\+\-]+)?[\d]+_[\d_]+/
  57. },
  58. hljs.NUMBER_MODE
  59. ]
  60. }
  61. ]
  62. }
  63. ]
  64. };
  65. };