haml.json 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. {
  2. "case_insensitive": true,
  3. "contains": [
  4. {
  5. "className": "meta",
  6. "begin": "^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",
  7. "relevance": 10
  8. },
  9. {
  10. "className": "comment",
  11. "begin": "^\\s*(!=#|=#|-#|\/).*$",
  12. "end": false,
  13. "contains": [
  14. {
  15. "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b"
  16. },
  17. {
  18. "className": "doctag",
  19. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  20. "relevance": 0
  21. }
  22. ],
  23. "relevance": 0
  24. },
  25. {
  26. "begin": "^\\s*(-|=|!=)(?!#)",
  27. "starts": {
  28. "end": "\\n",
  29. "subLanguage": "ruby"
  30. }
  31. },
  32. {
  33. "className": "tag",
  34. "begin": "^\\s*%",
  35. "contains": [
  36. {
  37. "className": "selector-tag",
  38. "begin": "\\w+"
  39. },
  40. {
  41. "className": "selector-id",
  42. "begin": "#[\\w\\-]+"
  43. },
  44. {
  45. "className": "selector-class",
  46. "begin": "\\.[\\w\\-]+"
  47. },
  48. {
  49. "begin": "{\\s*",
  50. "end": "\\s*}",
  51. "contains": [
  52. {
  53. "begin": ":\\w+\\s*=>",
  54. "end": ",\\s+",
  55. "returnBegin": true,
  56. "endsWithParent": true,
  57. "contains": [
  58. {
  59. "className": "attr",
  60. "begin": ":\\w+"
  61. },
  62. {
  63. "className": "string",
  64. "begin": "'",
  65. "end": "'",
  66. "illegal": "\\n",
  67. "contains": [
  68. {
  69. "begin": "\\\\[\\s\\S]",
  70. "relevance": 0
  71. }
  72. ]
  73. },
  74. {
  75. "className": "string",
  76. "begin": "\"",
  77. "end": "\"",
  78. "illegal": "\\n",
  79. "contains": [
  80. {
  81. "$ref": "#contains.3.contains.3.contains.0.contains.1.contains.0"
  82. }
  83. ]
  84. },
  85. {
  86. "begin": "\\w+",
  87. "relevance": 0
  88. }
  89. ]
  90. }
  91. ]
  92. },
  93. {
  94. "begin": "\\(\\s*",
  95. "end": "\\s*\\)",
  96. "excludeEnd": true,
  97. "contains": [
  98. {
  99. "begin": "\\w+\\s*=",
  100. "end": "\\s+",
  101. "returnBegin": true,
  102. "endsWithParent": true,
  103. "contains": [
  104. {
  105. "className": "attr",
  106. "begin": "\\w+",
  107. "relevance": 0
  108. },
  109. {
  110. "$ref": "#contains.3.contains.3.contains.0.contains.1"
  111. },
  112. {
  113. "$ref": "#contains.3.contains.3.contains.0.contains.2"
  114. },
  115. {
  116. "begin": "\\w+",
  117. "relevance": 0
  118. }
  119. ]
  120. }
  121. ]
  122. }
  123. ]
  124. },
  125. {
  126. "begin": "^\\s*[=~]\\s*"
  127. },
  128. {
  129. "begin": "#{",
  130. "starts": {
  131. "end": "}",
  132. "subLanguage": "ruby"
  133. }
  134. }
  135. ]
  136. }