ini.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. hljs.COMMENT(';', '$'),
  43. hljs.HASH_COMMENT_MODE,
  44. {
  45. className: 'literal',
  46. begin: /\bon|off|true|false|yes|no\b/
  47. },
  48. {
  49. className: 'variable',
  50. variants: [
  51. {begin: /\$[\w\d"][\w\d_]*/},
  52. {begin: /\$\{(.*?)}/}
  53. ]
  54. },
  55. STRING,
  56. {
  57. className: 'number',
  58. begin: /([\+\-]+)?[\d]+_[\d_]+/
  59. },
  60. hljs.NUMBER_MODE
  61. ]
  62. }
  63. ]
  64. }
  65. ]
  66. };
  67. };