├── README.md ├── info.plist └── Syntaxes └── HTML (Cheetah).tmLanguage /README.md: -------------------------------------------------------------------------------- 1 | Cheetah.tmbundle 2 | ================ 3 | 4 | Cheetah syntax highlight for Sublime 5 | 6 | 7 | Clone the repo and put it into your Sublime Text 3/Packages/ 8 | 9 | Then you should see HTML(Cheetah) syntax available :) 10 | -------------------------------------------------------------------------------- /info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Cheetah 7 | ordering 8 | 9 | D09CAD0A-1362-4434-A4CC-B3D6FBED3DF6 10 | 2B225AE4-D5B9-4AF4-92A2-830867E05343 11 | 9DD24FCA-A42A-4158-993B-FB3B05DB4736 12 | D57F1578-FC8B-4FA2-BFA3-2A789B511FD7 13 | 14 | uuid 15 | 972C4DE7-540D-4B80-A466-A28B9F59673A 16 | 17 | 18 | -------------------------------------------------------------------------------- /Syntaxes/HTML (Cheetah).tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | tmpl 8 | 9 | foldingStartMarker 10 | ^#(block|def) 11 | foldingStopMarker 12 | ^#end (block|def) 13 | keyEquivalent 14 | ^~h 15 | name 16 | HTML (Cheetah) 17 | patterns 18 | 19 | 20 | match 21 | ##.*$ 22 | name 23 | comment.line.cheetah 24 | 25 | 26 | begin 27 | #\* 28 | end 29 | \*# 30 | name 31 | comment.block.cheetah 32 | 33 | 34 | begin 35 | ^(#cache) 36 | beginCaptures 37 | 38 | 1 39 | 40 | name 41 | support.other.directive.cheetah 42 | 43 | 44 | end 45 | $ 46 | name 47 | meta.directive.cache.cheetah 48 | patterns 49 | 50 | 51 | captures 52 | 53 | 1 54 | 55 | name 56 | variable.parameter.cheetah 57 | 58 | 2 59 | 60 | name 61 | entity.name.directive.cache.cheetah 62 | 63 | 64 | match 65 | (id)='([a-zA-Z_][a-zA-Z0-9_]*)' 66 | name 67 | meta.directive.cache 68 | 69 | 70 | captures 71 | 72 | 1 73 | 74 | name 75 | variable.parameter.cheetah 76 | 77 | 78 | match 79 | (id|timer|test)= 80 | name 81 | meta.directive.cache 82 | 83 | 84 | 85 | 86 | begin 87 | ^(#end cache)(.*)? 88 | beginCaptures 89 | 90 | 1 91 | 92 | name 93 | support.other.directive.cheetah 94 | 95 | 2 96 | 97 | name 98 | entity.name.directive.cache.cheetah 99 | 100 | 101 | end 102 | $ 103 | name 104 | meta.directive.cache.cheetah 105 | 106 | 107 | begin 108 | (#(end )?(block|def|call))( [$a-zA-Z_\.][a-zA-Z0-9_\.]*)? 109 | beginCaptures 110 | 111 | 1 112 | 113 | name 114 | storage.type.cheetah 115 | 116 | 2 117 | 118 | name 119 | support.other.cheetah 120 | 121 | 4 122 | 123 | name 124 | entity.name.function.cheetah 125 | 126 | 127 | end 128 | $ 129 | name 130 | meta.declaration.cheetah 131 | 132 | 133 | match 134 | \$[a-zA-Z\_\.\-\s\d]* 135 | name 136 | variable.other.cheetah 137 | 138 | 139 | captures 140 | 141 | 1 142 | 143 | name 144 | keyword.other.include.import.cheetah 145 | 146 | 2 147 | 148 | name 149 | keyword.other.include.as.cheetah 150 | 151 | 3 152 | 153 | name 154 | entity.name.function.cheetah 155 | 156 | 157 | match 158 | ^(#import)\s+[a-zA-Z_\.\,][a-zA-Z0-9_\.\,]*\s+(as)? 159 | name 160 | meta.other.include.cheetah 161 | 162 | 163 | captures 164 | 165 | 1 166 | 167 | name 168 | keyword.other.include.from.cheetah 169 | 170 | 2 171 | 172 | name 173 | keyword.other.include.import.cheetah 174 | 175 | 3 176 | 177 | name 178 | keyword.other.include.as.cheetah 179 | 180 | 181 | match 182 | ^(#from)\s+[a-zA-Z_][a-zA-Z0-9_\.\,]*\s+(import)\s+[a-zA-Z_][a-zA-Z0-9_\,\.]*\s+(as)? 183 | name 184 | meta.other.include.cheetah 185 | 186 | 187 | captures 188 | 189 | 1 190 | 191 | name 192 | keyword.other.extends.cheetah 193 | 194 | 2 195 | 196 | name 197 | entity.other.inherited-class 198 | 199 | 200 | match 201 | ^(#extends)\s+([a-zA-Z_][a-zA-Z0-9_\.]*) 202 | name 203 | meta.other.extends.cheetah 204 | 205 | 206 | captures 207 | 208 | 1 209 | 210 | name 211 | keyword.other.implements.cheetah 212 | 213 | 2 214 | 215 | name 216 | entity.name.function.cheetah 217 | 218 | 219 | match 220 | ^(#implements)\s+([a-zA-Z_][a-zA-Z0-9_]*) 221 | name 222 | meta.other.implements.cheetah 223 | 224 | 225 | match 226 | #(end )?(for|if|elif|repeat|try|unless|while)\b 227 | name 228 | keyword.control.cheetah 229 | 230 | 231 | match 232 | #(end )?(raw)\b 233 | name 234 | keyword.other.cheetah 235 | 236 | 237 | match 238 | #(assert|break|continue|else|except|finally|pass|raise|stop)\b 239 | name 240 | keyword.control.cheetah 241 | 242 | 243 | match 244 | #(attr|del|echo|filter|silent|super|return)\b 245 | name 246 | keyword.other.cheetah 247 | 248 | 249 | match 250 | #set(\s+global)? 251 | name 252 | keyword.other.cheetah 253 | 254 | 255 | match 256 | #slurp 257 | name 258 | keyword.directive.cheetah 259 | 260 | 261 | match 262 | ^#((end )?(compiler-settings)|breakpoint)\b 263 | name 264 | support.other.directive.cheetah 265 | 266 | 267 | comment 268 | Since html is valid in Cheetah templates include the html patterns 269 | include 270 | text.html.basic 271 | 272 | 273 | scopeName 274 | text.html.cheetah 275 | uuid 276 | D57F1578-FC8B-4FA2-BFA3-2A789B511FD7 277 | 278 | 279 | --------------------------------------------------------------------------------