ini.js 1.5 KB

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