git.templeos.me/xultist/go-enry/v2@v2.0.0-20230215093429-6ef3e87f47c0/internal/code-generator/generator/test_files/content.gold (about) 1 // Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT. 2 // Extracted from github/linguist commit: d7799da826e01acdb8f84694d33116dccaabe9c2 3 4 package data 5 6 import ( 7 "regexp" 8 9 "github.com/go-enry/go-enry/v2/data/rule" 10 ) 11 12 var ContentHeuristics = map[string]*Heuristics{ 13 ".1": &Heuristics{ 14 rule.And( 15 rule.MatchingLanguages("Roff Manpage"), 16 rule.Or( 17 rule.MatchingLanguages(""), 18 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 19 ), 20 rule.Or( 21 rule.MatchingLanguages(""), 22 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 23 ), 24 rule.Or( 25 rule.MatchingLanguages(""), 26 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 27 ), 28 ), 29 rule.And( 30 rule.MatchingLanguages("Roff Manpage"), 31 rule.Or( 32 rule.MatchingLanguages(""), 33 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 34 ), 35 rule.Or( 36 rule.MatchingLanguages(""), 37 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 38 ), 39 ), 40 rule.Or( 41 rule.MatchingLanguages("Roff"), 42 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 43 ), 44 }, 45 ".1in": &Heuristics{ 46 rule.And( 47 rule.MatchingLanguages("Roff Manpage"), 48 rule.Or( 49 rule.MatchingLanguages(""), 50 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 51 ), 52 rule.Or( 53 rule.MatchingLanguages(""), 54 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 55 ), 56 rule.Or( 57 rule.MatchingLanguages(""), 58 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 59 ), 60 ), 61 rule.And( 62 rule.MatchingLanguages("Roff Manpage"), 63 rule.Or( 64 rule.MatchingLanguages(""), 65 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 66 ), 67 rule.Or( 68 rule.MatchingLanguages(""), 69 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 70 ), 71 ), 72 rule.Always( 73 rule.MatchingLanguages("Roff"), 74 ), 75 }, 76 ".1m": &Heuristics{ 77 rule.And( 78 rule.MatchingLanguages("Roff Manpage"), 79 rule.Or( 80 rule.MatchingLanguages(""), 81 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 82 ), 83 rule.Or( 84 rule.MatchingLanguages(""), 85 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 86 ), 87 rule.Or( 88 rule.MatchingLanguages(""), 89 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 90 ), 91 ), 92 rule.And( 93 rule.MatchingLanguages("Roff Manpage"), 94 rule.Or( 95 rule.MatchingLanguages(""), 96 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 97 ), 98 rule.Or( 99 rule.MatchingLanguages(""), 100 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 101 ), 102 ), 103 rule.Always( 104 rule.MatchingLanguages("Roff"), 105 ), 106 }, 107 ".1x": &Heuristics{ 108 rule.And( 109 rule.MatchingLanguages("Roff Manpage"), 110 rule.Or( 111 rule.MatchingLanguages(""), 112 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 113 ), 114 rule.Or( 115 rule.MatchingLanguages(""), 116 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 117 ), 118 rule.Or( 119 rule.MatchingLanguages(""), 120 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 121 ), 122 ), 123 rule.And( 124 rule.MatchingLanguages("Roff Manpage"), 125 rule.Or( 126 rule.MatchingLanguages(""), 127 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 128 ), 129 rule.Or( 130 rule.MatchingLanguages(""), 131 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 132 ), 133 ), 134 rule.Always( 135 rule.MatchingLanguages("Roff"), 136 ), 137 }, 138 ".2": &Heuristics{ 139 rule.And( 140 rule.MatchingLanguages("Roff Manpage"), 141 rule.Or( 142 rule.MatchingLanguages(""), 143 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 144 ), 145 rule.Or( 146 rule.MatchingLanguages(""), 147 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 148 ), 149 rule.Or( 150 rule.MatchingLanguages(""), 151 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 152 ), 153 ), 154 rule.And( 155 rule.MatchingLanguages("Roff Manpage"), 156 rule.Or( 157 rule.MatchingLanguages(""), 158 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 159 ), 160 rule.Or( 161 rule.MatchingLanguages(""), 162 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 163 ), 164 ), 165 rule.Or( 166 rule.MatchingLanguages("Roff"), 167 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 168 ), 169 }, 170 ".3": &Heuristics{ 171 rule.And( 172 rule.MatchingLanguages("Roff Manpage"), 173 rule.Or( 174 rule.MatchingLanguages(""), 175 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 176 ), 177 rule.Or( 178 rule.MatchingLanguages(""), 179 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 180 ), 181 rule.Or( 182 rule.MatchingLanguages(""), 183 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 184 ), 185 ), 186 rule.And( 187 rule.MatchingLanguages("Roff Manpage"), 188 rule.Or( 189 rule.MatchingLanguages(""), 190 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 191 ), 192 rule.Or( 193 rule.MatchingLanguages(""), 194 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 195 ), 196 ), 197 rule.Or( 198 rule.MatchingLanguages("Roff"), 199 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 200 ), 201 }, 202 ".3in": &Heuristics{ 203 rule.And( 204 rule.MatchingLanguages("Roff Manpage"), 205 rule.Or( 206 rule.MatchingLanguages(""), 207 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 208 ), 209 rule.Or( 210 rule.MatchingLanguages(""), 211 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 212 ), 213 rule.Or( 214 rule.MatchingLanguages(""), 215 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 216 ), 217 ), 218 rule.And( 219 rule.MatchingLanguages("Roff Manpage"), 220 rule.Or( 221 rule.MatchingLanguages(""), 222 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 223 ), 224 rule.Or( 225 rule.MatchingLanguages(""), 226 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 227 ), 228 ), 229 rule.Always( 230 rule.MatchingLanguages("Roff"), 231 ), 232 }, 233 ".3m": &Heuristics{ 234 rule.And( 235 rule.MatchingLanguages("Roff Manpage"), 236 rule.Or( 237 rule.MatchingLanguages(""), 238 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 239 ), 240 rule.Or( 241 rule.MatchingLanguages(""), 242 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 243 ), 244 rule.Or( 245 rule.MatchingLanguages(""), 246 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 247 ), 248 ), 249 rule.And( 250 rule.MatchingLanguages("Roff Manpage"), 251 rule.Or( 252 rule.MatchingLanguages(""), 253 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 254 ), 255 rule.Or( 256 rule.MatchingLanguages(""), 257 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 258 ), 259 ), 260 rule.Always( 261 rule.MatchingLanguages("Roff"), 262 ), 263 }, 264 ".3p": &Heuristics{ 265 rule.And( 266 rule.MatchingLanguages("Roff Manpage"), 267 rule.Or( 268 rule.MatchingLanguages(""), 269 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 270 ), 271 rule.Or( 272 rule.MatchingLanguages(""), 273 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 274 ), 275 rule.Or( 276 rule.MatchingLanguages(""), 277 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 278 ), 279 ), 280 rule.And( 281 rule.MatchingLanguages("Roff Manpage"), 282 rule.Or( 283 rule.MatchingLanguages(""), 284 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 285 ), 286 rule.Or( 287 rule.MatchingLanguages(""), 288 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 289 ), 290 ), 291 rule.Always( 292 rule.MatchingLanguages("Roff"), 293 ), 294 }, 295 ".3pm": &Heuristics{ 296 rule.And( 297 rule.MatchingLanguages("Roff Manpage"), 298 rule.Or( 299 rule.MatchingLanguages(""), 300 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 301 ), 302 rule.Or( 303 rule.MatchingLanguages(""), 304 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 305 ), 306 rule.Or( 307 rule.MatchingLanguages(""), 308 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 309 ), 310 ), 311 rule.And( 312 rule.MatchingLanguages("Roff Manpage"), 313 rule.Or( 314 rule.MatchingLanguages(""), 315 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 316 ), 317 rule.Or( 318 rule.MatchingLanguages(""), 319 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 320 ), 321 ), 322 rule.Always( 323 rule.MatchingLanguages("Roff"), 324 ), 325 }, 326 ".3qt": &Heuristics{ 327 rule.And( 328 rule.MatchingLanguages("Roff Manpage"), 329 rule.Or( 330 rule.MatchingLanguages(""), 331 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 332 ), 333 rule.Or( 334 rule.MatchingLanguages(""), 335 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 336 ), 337 rule.Or( 338 rule.MatchingLanguages(""), 339 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 340 ), 341 ), 342 rule.And( 343 rule.MatchingLanguages("Roff Manpage"), 344 rule.Or( 345 rule.MatchingLanguages(""), 346 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 347 ), 348 rule.Or( 349 rule.MatchingLanguages(""), 350 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 351 ), 352 ), 353 rule.Always( 354 rule.MatchingLanguages("Roff"), 355 ), 356 }, 357 ".3x": &Heuristics{ 358 rule.And( 359 rule.MatchingLanguages("Roff Manpage"), 360 rule.Or( 361 rule.MatchingLanguages(""), 362 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 363 ), 364 rule.Or( 365 rule.MatchingLanguages(""), 366 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 367 ), 368 rule.Or( 369 rule.MatchingLanguages(""), 370 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 371 ), 372 ), 373 rule.And( 374 rule.MatchingLanguages("Roff Manpage"), 375 rule.Or( 376 rule.MatchingLanguages(""), 377 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 378 ), 379 rule.Or( 380 rule.MatchingLanguages(""), 381 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 382 ), 383 ), 384 rule.Always( 385 rule.MatchingLanguages("Roff"), 386 ), 387 }, 388 ".4": &Heuristics{ 389 rule.And( 390 rule.MatchingLanguages("Roff Manpage"), 391 rule.Or( 392 rule.MatchingLanguages(""), 393 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 394 ), 395 rule.Or( 396 rule.MatchingLanguages(""), 397 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 398 ), 399 rule.Or( 400 rule.MatchingLanguages(""), 401 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 402 ), 403 ), 404 rule.And( 405 rule.MatchingLanguages("Roff Manpage"), 406 rule.Or( 407 rule.MatchingLanguages(""), 408 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 409 ), 410 rule.Or( 411 rule.MatchingLanguages(""), 412 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 413 ), 414 ), 415 rule.Or( 416 rule.MatchingLanguages("Roff"), 417 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 418 ), 419 }, 420 ".5": &Heuristics{ 421 rule.And( 422 rule.MatchingLanguages("Roff Manpage"), 423 rule.Or( 424 rule.MatchingLanguages(""), 425 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 426 ), 427 rule.Or( 428 rule.MatchingLanguages(""), 429 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 430 ), 431 rule.Or( 432 rule.MatchingLanguages(""), 433 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 434 ), 435 ), 436 rule.And( 437 rule.MatchingLanguages("Roff Manpage"), 438 rule.Or( 439 rule.MatchingLanguages(""), 440 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 441 ), 442 rule.Or( 443 rule.MatchingLanguages(""), 444 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 445 ), 446 ), 447 rule.Or( 448 rule.MatchingLanguages("Roff"), 449 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 450 ), 451 }, 452 ".6": &Heuristics{ 453 rule.And( 454 rule.MatchingLanguages("Roff Manpage"), 455 rule.Or( 456 rule.MatchingLanguages(""), 457 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 458 ), 459 rule.Or( 460 rule.MatchingLanguages(""), 461 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 462 ), 463 rule.Or( 464 rule.MatchingLanguages(""), 465 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 466 ), 467 ), 468 rule.And( 469 rule.MatchingLanguages("Roff Manpage"), 470 rule.Or( 471 rule.MatchingLanguages(""), 472 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 473 ), 474 rule.Or( 475 rule.MatchingLanguages(""), 476 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 477 ), 478 ), 479 rule.Or( 480 rule.MatchingLanguages("Roff"), 481 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 482 ), 483 }, 484 ".7": &Heuristics{ 485 rule.And( 486 rule.MatchingLanguages("Roff Manpage"), 487 rule.Or( 488 rule.MatchingLanguages(""), 489 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 490 ), 491 rule.Or( 492 rule.MatchingLanguages(""), 493 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 494 ), 495 rule.Or( 496 rule.MatchingLanguages(""), 497 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 498 ), 499 ), 500 rule.And( 501 rule.MatchingLanguages("Roff Manpage"), 502 rule.Or( 503 rule.MatchingLanguages(""), 504 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 505 ), 506 rule.Or( 507 rule.MatchingLanguages(""), 508 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 509 ), 510 ), 511 rule.Or( 512 rule.MatchingLanguages("Roff"), 513 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 514 ), 515 }, 516 ".8": &Heuristics{ 517 rule.And( 518 rule.MatchingLanguages("Roff Manpage"), 519 rule.Or( 520 rule.MatchingLanguages(""), 521 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 522 ), 523 rule.Or( 524 rule.MatchingLanguages(""), 525 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 526 ), 527 rule.Or( 528 rule.MatchingLanguages(""), 529 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 530 ), 531 ), 532 rule.And( 533 rule.MatchingLanguages("Roff Manpage"), 534 rule.Or( 535 rule.MatchingLanguages(""), 536 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 537 ), 538 rule.Or( 539 rule.MatchingLanguages(""), 540 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 541 ), 542 ), 543 rule.Or( 544 rule.MatchingLanguages("Roff"), 545 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 546 ), 547 }, 548 ".9": &Heuristics{ 549 rule.And( 550 rule.MatchingLanguages("Roff Manpage"), 551 rule.Or( 552 rule.MatchingLanguages(""), 553 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 554 ), 555 rule.Or( 556 rule.MatchingLanguages(""), 557 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 558 ), 559 rule.Or( 560 rule.MatchingLanguages(""), 561 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 562 ), 563 ), 564 rule.And( 565 rule.MatchingLanguages("Roff Manpage"), 566 rule.Or( 567 rule.MatchingLanguages(""), 568 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 569 ), 570 rule.Or( 571 rule.MatchingLanguages(""), 572 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 573 ), 574 ), 575 rule.Or( 576 rule.MatchingLanguages("Roff"), 577 regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), 578 ), 579 }, 580 ".al": &Heuristics{ 581 rule.And( 582 rule.MatchingLanguages("AL"), 583 rule.Or( 584 rule.MatchingLanguages(""), 585 regexp.MustCompile(`(?m)\b(?i:(CODEUNIT|PAGE|PAGEEXTENSION|PAGECUSTOMIZATION|DOTNET|ENUM|ENUMEXTENSION|VALUE|QUERY|REPORT|TABLE|TABLEEXTENSION|XMLPORT|PROFILE|CONTROLADDIN))\b`), 586 ), 587 ), 588 rule.Always( 589 rule.MatchingLanguages("Perl"), 590 ), 591 }, 592 ".as": &Heuristics{}, 593 ".asc": &Heuristics{ 594 rule.Or( 595 rule.MatchingLanguages("Public Key"), 596 regexp.MustCompile(`(?m)^(----[- ]BEGIN|ssh-(rsa|dss)) `), 597 ), 598 rule.Or( 599 rule.MatchingLanguages("AsciiDoc"), 600 regexp.MustCompile(`(?m)^[=-]+(\s|\n)|{{[A-Za-z]`), 601 ), 602 rule.Or( 603 rule.MatchingLanguages("AGS Script"), 604 regexp.MustCompile(`(?m)^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])`), 605 ), 606 }, 607 ".asm": &Heuristics{ 608 rule.Or( 609 rule.MatchingLanguages("Motorola 68K Assembly"), 610 regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), 611 ), 612 }, 613 ".asy": &Heuristics{ 614 rule.Or( 615 rule.MatchingLanguages("LTspice Symbol"), 616 regexp.MustCompile(`(?m)^SymbolType[ \t]`), 617 ), 618 rule.Always( 619 rule.MatchingLanguages("Asymptote"), 620 ), 621 }, 622 ".bas": &Heuristics{ 623 rule.Or( 624 rule.MatchingLanguages("FreeBasic"), 625 regexp.MustCompile(`(?m)^[ \t]*#(?:define|endif|endmacro|ifn?def|if|include|lang|macro)\s`), 626 ), 627 rule.Or( 628 rule.MatchingLanguages("BASIC"), 629 regexp.MustCompile(`(?m)^\s*\d+`), 630 ), 631 }, 632 ".bb": &Heuristics{ 633 rule.Or( 634 rule.MatchingLanguages("BlitzBasic"), 635 regexp.MustCompile(`(?m)(<^\s*; |End Function)`), 636 ), 637 rule.Or( 638 rule.MatchingLanguages("BitBake"), 639 regexp.MustCompile(`(?m)^\s*(# |include|require)\b`), 640 ), 641 rule.Or( 642 rule.MatchingLanguages("Clojure"), 643 regexp.MustCompile(`(?m)\((def|defn|defmacro|let)\s`), 644 ), 645 }, 646 ".bi": &Heuristics{ 647 rule.Or( 648 rule.MatchingLanguages("FreeBasic"), 649 regexp.MustCompile(`(?m)^[ \t]*#(?:define|endif|endmacro|ifn?def|if|include|lang|macro)\s`), 650 ), 651 }, 652 ".bs": &Heuristics{}, 653 ".builds": &Heuristics{ 654 rule.Or( 655 rule.MatchingLanguages("XML"), 656 regexp.MustCompile(`(?m)^(\s*)(?i:<Project|<Import|<Property|<?xml|xmlns)`), 657 ), 658 }, 659 ".ch": &Heuristics{ 660 rule.Or( 661 rule.MatchingLanguages("xBase"), 662 regexp.MustCompile(`(?m)^\s*#\s*(?i:if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b`), 663 ), 664 }, 665 ".cl": &Heuristics{ 666 rule.Or( 667 rule.MatchingLanguages("Common Lisp"), 668 regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), 669 ), 670 rule.Or( 671 rule.MatchingLanguages("Cool"), 672 regexp.MustCompile(`(?m)^class`), 673 ), 674 rule.Or( 675 rule.MatchingLanguages("OpenCL"), 676 regexp.MustCompile(`(?m)\/\* |\/\/ |^\}`), 677 ), 678 }, 679 ".cls": &Heuristics{ 680 rule.Or( 681 rule.MatchingLanguages("TeX"), 682 regexp.MustCompile(`(?m)^\s*\\(?:NeedsTeXFormat|ProvidesClass){`), 683 ), 684 rule.Or( 685 rule.MatchingLanguages("ObjectScript"), 686 regexp.MustCompile(`(?m)^Class\s`), 687 ), 688 }, 689 ".cmp": &Heuristics{ 690 rule.Or( 691 rule.MatchingLanguages("Gerber Image"), 692 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*\r?\n`), 693 ), 694 }, 695 ".cs": &Heuristics{ 696 rule.Or( 697 rule.MatchingLanguages("Smalltalk"), 698 regexp.MustCompile(`(?m)![\w\s]+methodsFor: `), 699 ), 700 rule.Or( 701 rule.MatchingLanguages("C#"), 702 regexp.MustCompile(`(?m)^(\s*namespace\s*[\w\.]+\s*{|\s*\/\/)`), 703 ), 704 }, 705 ".csc": &Heuristics{}, 706 ".csl": &Heuristics{ 707 rule.Or( 708 rule.MatchingLanguages("XML"), 709 regexp.MustCompile(`(?m)(?i:^\s*(\<\?xml|xmlns))`), 710 ), 711 rule.Or( 712 rule.MatchingLanguages("Kusto"), 713 regexp.MustCompile(`(?m)(^\|\s*(where|extend|project|limit|summarize))|(^\.\w+)`), 714 ), 715 }, 716 ".d": &Heuristics{ 717 rule.Or( 718 rule.MatchingLanguages("D"), 719 regexp.MustCompile(`(?m)^module\s+[\w.]*\s*;|import\s+[\w\s,.:]*;|\w+\s+\w+\s*\(.*\)(?:\(.*\))?\s*{[^}]*}|unittest\s*(?:\(.*\))?\s*{[^}]*}`), 720 ), 721 rule.Or( 722 rule.MatchingLanguages("DTrace"), 723 regexp.MustCompile(`(?m)^(\w+:\w*:\w*:\w*|BEGIN|END|provider\s+|(tick|profile)-\w+\s+{[^}]*}|#pragma\s+D\s+(option|attributes|depends_on)\s|#pragma\s+ident\s)`), 724 ), 725 rule.Or( 726 rule.MatchingLanguages("Makefile"), 727 regexp.MustCompile(`(?m)([\/\\].*:\s+.*\s\\$|: \\$|^[ %]:|^[\w\s\/\\.]+\w+\.\w+\s*:\s+[\w\s\/\\.]+\w+\.\w+)`), 728 ), 729 }, 730 ".dsp": &Heuristics{ 731 rule.Or( 732 rule.MatchingLanguages("Microsoft Developer Studio Project"), 733 regexp.MustCompile(`(?m)# Microsoft Developer Studio Generated Build File`), 734 ), 735 rule.Or( 736 rule.MatchingLanguages("Faust"), 737 regexp.MustCompile(`(?m)\bprocess\s*[(=]|\b(library|import)\s*\(\s*"|\bdeclare\s+(name|version|author|copyright|license)\s+"`), 738 ), 739 }, 740 ".e": &Heuristics{ 741 rule.Or( 742 rule.MatchingLanguages("E"), 743 regexp.MustCompile(`(?m)^\s*(def|var)\s+(.+):=|^\s*(def|to)\s+(\w+)(\(.+\))?\s+{|^\s*(when)\s+(\(.+\))\s+->\s+{`), 744 ), 745 rule.Or( 746 rule.MatchingLanguages("Eiffel"), 747 regexp.MustCompile(`(?m)^\s*\w+\s*(?:,\s*\w+)*[:]\s*\w+\s|^\s*\w+\s*(?:\(\s*\w+[:][^)]+\))?(?:[:]\s*\w+)?(?:--.+\s+)*\s+(?:do|local)\s|^\s*(?:across|deferred|elseif|ensure|feature|from|inherit|inspect|invariant|note|once|require|undefine|variant|when)\s*$`), 748 ), 749 rule.Or( 750 rule.MatchingLanguages("Euphoria"), 751 regexp.MustCompile(`(?m)^\s*namespace\s|^\s*(?:public\s+)?include\s|^\s*(?:(?:public|export|global)\s+)?(?:atom|constant|enum|function|integer|object|procedure|sequence|type)\s`), 752 ), 753 }, 754 ".ecl": &Heuristics{ 755 rule.Or( 756 rule.MatchingLanguages("ECLiPSe"), 757 regexp.MustCompile(`(?m)^[^#]+:-`), 758 ), 759 rule.Or( 760 rule.MatchingLanguages("ECL"), 761 regexp.MustCompile(`(?m):=`), 762 ), 763 }, 764 ".es": &Heuristics{ 765 rule.Or( 766 rule.MatchingLanguages("Erlang"), 767 regexp.MustCompile(`(?m)^\s*(?:%%|main\s*\(.*?\)\s*->)`), 768 ), 769 }, 770 ".ex": &Heuristics{ 771 rule.Or( 772 rule.MatchingLanguages("Elixir"), 773 regexp.MustCompile(`(?m)^\s*@moduledoc\s|^\s*(?:cond|import|quote|unless)\s|^\s*def(?:exception|impl|macro|module|protocol)[(\s]`), 774 ), 775 rule.Or( 776 rule.MatchingLanguages("Euphoria"), 777 regexp.MustCompile(`(?m)^\s*namespace\s|^\s*(?:public\s+)?include\s|^\s*(?:(?:public|export|global)\s+)?(?:atom|constant|enum|function|integer|object|procedure|sequence|type)\s`), 778 ), 779 }, 780 ".f": &Heuristics{ 781 rule.Or( 782 rule.MatchingLanguages("Forth"), 783 regexp.MustCompile(`(?m)^: `), 784 ), 785 rule.Or( 786 rule.MatchingLanguages("Filebench WML"), 787 regexp.MustCompile(`(?m)flowop`), 788 ), 789 rule.Or( 790 rule.MatchingLanguages("Fortran"), 791 regexp.MustCompile(`(?m)^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)`), 792 ), 793 }, 794 ".for": &Heuristics{ 795 rule.Or( 796 rule.MatchingLanguages("Forth"), 797 regexp.MustCompile(`(?m)^: `), 798 ), 799 rule.Or( 800 rule.MatchingLanguages("Fortran"), 801 regexp.MustCompile(`(?m)^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)`), 802 ), 803 }, 804 ".fr": &Heuristics{ 805 rule.Or( 806 rule.MatchingLanguages("Forth"), 807 regexp.MustCompile(`(?m)^(: |also |new-device|previous )`), 808 ), 809 rule.Or( 810 rule.MatchingLanguages("Frege"), 811 regexp.MustCompile(`(?m)^\s*(import|module|package|data|type) `), 812 ), 813 rule.Always( 814 rule.MatchingLanguages("Text"), 815 ), 816 }, 817 ".fs": &Heuristics{ 818 rule.Or( 819 rule.MatchingLanguages("Forth"), 820 regexp.MustCompile(`(?m)^(: |new-device)`), 821 ), 822 rule.Or( 823 rule.MatchingLanguages("F#"), 824 regexp.MustCompile(`(?m)^\s*(#light|import|let|module|namespace|open|type)`), 825 ), 826 rule.Or( 827 rule.MatchingLanguages("GLSL"), 828 regexp.MustCompile(`(?m)^\s*(#version|precision|uniform|varying|vec[234])`), 829 ), 830 rule.Or( 831 rule.MatchingLanguages("Filterscript"), 832 regexp.MustCompile(`(?m)#include|#pragma\s+(rs|version)|__attribute__`), 833 ), 834 }, 835 ".ftl": &Heuristics{ 836 rule.Or( 837 rule.MatchingLanguages("Fluent"), 838 regexp.MustCompile(`(?m)^-?[a-zA-Z][a-zA-Z0-9_-]* *=|\{\$-?[a-zA-Z][-\w]*(?:\.[a-zA-Z][-\w]*)?\}`), 839 ), 840 }, 841 ".gd": &Heuristics{ 842 rule.Or( 843 rule.MatchingLanguages("GAP"), 844 regexp.MustCompile(`(?m)\s*(Declare|BindGlobal|KeyDependentOperation)`), 845 ), 846 rule.Or( 847 rule.MatchingLanguages("GDScript"), 848 regexp.MustCompile(`(?m)\s*(extends|var|const|enum|func|class|signal|tool|yield|assert|onready)`), 849 ), 850 }, 851 ".gml": &Heuristics{ 852 rule.Or( 853 rule.MatchingLanguages("XML"), 854 regexp.MustCompile(`(?m)(?i:^\s*(\<\?xml|xmlns))`), 855 ), 856 rule.Or( 857 rule.MatchingLanguages("Graph Modeling Language"), 858 regexp.MustCompile(`(?m)(?i:^\s*(graph|node)\s+\[$)`), 859 ), 860 rule.Or( 861 rule.MatchingLanguages("Gerber Image"), 862 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*$`), 863 ), 864 rule.Always( 865 rule.MatchingLanguages("Game Maker Language"), 866 ), 867 }, 868 ".gs": &Heuristics{ 869 rule.Or( 870 rule.MatchingLanguages("GLSL"), 871 regexp.MustCompile(`(?m)^#version\s+[0-9]+\b`), 872 ), 873 rule.Or( 874 rule.MatchingLanguages("Gosu"), 875 regexp.MustCompile(`(?m)^uses (java|gw)\.`), 876 ), 877 rule.Or( 878 rule.MatchingLanguages("Genie"), 879 regexp.MustCompile(`(?m)^\[indent=[0-9]+\]`), 880 ), 881 }, 882 ".gsc": &Heuristics{}, 883 ".gsh": &Heuristics{}, 884 ".h": &Heuristics{ 885 rule.Or( 886 rule.MatchingLanguages("Objective-C"), 887 regexp.MustCompile(`(?m)^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])`), 888 ), 889 rule.Or( 890 rule.MatchingLanguages("C++"), 891 regexp.MustCompile(`(?m)^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>|^\s*template\s*<|^[ \t]*(try|constexpr)|^[ \t]*catch\s*\(|^[ \t]*(class|(using[ \t]+)?namespace)\s+\w+|^[ \t]*(private|public|protected):$|std::\w+`), 892 ), 893 rule.Always( 894 rule.MatchingLanguages("C"), 895 ), 896 }, 897 ".hh": &Heuristics{ 898 rule.Or( 899 rule.MatchingLanguages("Hack"), 900 regexp.MustCompile(`(?m)<\?hh`), 901 ), 902 }, 903 ".i": &Heuristics{ 904 rule.Or( 905 rule.MatchingLanguages("Motorola 68K Assembly"), 906 regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), 907 ), 908 rule.Or( 909 rule.MatchingLanguages("SWIG"), 910 regexp.MustCompile(`(?m)^[ \t]*%[a-z_]+\b|^%[{}]$`), 911 ), 912 }, 913 ".ice": &Heuristics{ 914 rule.Or( 915 rule.MatchingLanguages("JSON"), 916 regexp.MustCompile(`(?m)\A\s*[{\[]`), 917 ), 918 rule.Always( 919 rule.MatchingLanguages("Slice"), 920 ), 921 }, 922 ".inc": &Heuristics{ 923 rule.Or( 924 rule.MatchingLanguages("Motorola 68K Assembly"), 925 regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), 926 ), 927 rule.Or( 928 rule.MatchingLanguages("PHP"), 929 regexp.MustCompile(`(?m)^<\?(?:php)?`), 930 ), 931 rule.Or( 932 rule.MatchingLanguages("SourcePawn"), 933 regexp.MustCompile(`(?m)^public\s+(?:SharedPlugin(?:\s+|:)__pl_\w+\s*=(?:\s*{)?|(?:void\s+)?__pl_\w+_SetNTVOptional\(\)(?:\s*{)?)|^methodmap\s+\w+\s+<\s+\w+|^\s*MarkNativeAsOptional\s*\(`), 934 ), 935 rule.Or( 936 rule.MatchingLanguages("POV-Ray SDL"), 937 regexp.MustCompile(`(?m)^\s*#(declare|local|macro|while)\s`), 938 ), 939 rule.Or( 940 rule.MatchingLanguages("Pascal"), 941 regexp.MustCompile(`(?m)(?i:^\s*{\$(?:mode|ifdef|undef|define)[ ]+[a-z0-9_]+})|^\s*end[.;]\s*$`), 942 ), 943 }, 944 ".l": &Heuristics{ 945 rule.Or( 946 rule.MatchingLanguages("Common Lisp"), 947 regexp.MustCompile(`(?m)\(def(un|macro)\s`), 948 ), 949 rule.Or( 950 rule.MatchingLanguages("Lex"), 951 regexp.MustCompile(`(?m)^(%[%{}]xs|<.*>)`), 952 ), 953 rule.Or( 954 rule.MatchingLanguages("Roff"), 955 regexp.MustCompile(`(?m)^\.[A-Za-z]{2}(\s|$)`), 956 ), 957 rule.Or( 958 rule.MatchingLanguages("PicoLisp"), 959 regexp.MustCompile(`(?m)^\((de|class|rel|code|data|must)\s`), 960 ), 961 }, 962 ".lisp": &Heuristics{ 963 rule.Or( 964 rule.MatchingLanguages("Common Lisp"), 965 regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), 966 ), 967 rule.Or( 968 rule.MatchingLanguages("NewLisp"), 969 regexp.MustCompile(`(?m)^\s*\(define `), 970 ), 971 }, 972 ".ls": &Heuristics{ 973 rule.Or( 974 rule.MatchingLanguages("LoomScript"), 975 regexp.MustCompile(`(?m)^\s*package\s*[\w\.\/\*\s]*\s*{`), 976 ), 977 rule.Always( 978 rule.MatchingLanguages("LiveScript"), 979 ), 980 }, 981 ".lsp": &Heuristics{ 982 rule.Or( 983 rule.MatchingLanguages("Common Lisp"), 984 regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), 985 ), 986 rule.Or( 987 rule.MatchingLanguages("NewLisp"), 988 regexp.MustCompile(`(?m)^\s*\(define `), 989 ), 990 }, 991 ".m": &Heuristics{ 992 rule.Or( 993 rule.MatchingLanguages("Objective-C"), 994 regexp.MustCompile(`(?m)^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])`), 995 ), 996 rule.Or( 997 rule.MatchingLanguages("Mercury"), 998 regexp.MustCompile(`(?m):- module`), 999 ), 1000 rule.Or( 1001 rule.MatchingLanguages("MUF"), 1002 regexp.MustCompile(`(?m)^: `), 1003 ), 1004 rule.Or( 1005 rule.MatchingLanguages("M"), 1006 regexp.MustCompile(`(?m)^\s*;`), 1007 ), 1008 rule.And( 1009 rule.MatchingLanguages("Mathematica"), 1010 rule.Or( 1011 rule.MatchingLanguages(""), 1012 regexp.MustCompile(`(?m)\(\*`), 1013 ), 1014 rule.Or( 1015 rule.MatchingLanguages(""), 1016 regexp.MustCompile(`(?m)\*\)$`), 1017 ), 1018 ), 1019 rule.Or( 1020 rule.MatchingLanguages("MATLAB"), 1021 regexp.MustCompile(`(?m)^\s*%`), 1022 ), 1023 rule.Or( 1024 rule.MatchingLanguages("Limbo"), 1025 regexp.MustCompile(`(?m)^\w+\s*:\s*module\s*{`), 1026 ), 1027 }, 1028 ".m4": &Heuristics{ 1029 rule.Or( 1030 rule.MatchingLanguages("M4Sugar"), 1031 regexp.MustCompile(`(?m)AC_DEFUN|AC_PREREQ|AC_INIT|^_?m4_`), 1032 ), 1033 rule.Always( 1034 rule.MatchingLanguages("M4"), 1035 ), 1036 }, 1037 ".man": &Heuristics{ 1038 rule.And( 1039 rule.MatchingLanguages("Roff Manpage"), 1040 rule.Or( 1041 rule.MatchingLanguages(""), 1042 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 1043 ), 1044 rule.Or( 1045 rule.MatchingLanguages(""), 1046 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1047 ), 1048 rule.Or( 1049 rule.MatchingLanguages(""), 1050 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 1051 ), 1052 ), 1053 rule.And( 1054 rule.MatchingLanguages("Roff Manpage"), 1055 rule.Or( 1056 rule.MatchingLanguages(""), 1057 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1058 ), 1059 rule.Or( 1060 rule.MatchingLanguages(""), 1061 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 1062 ), 1063 ), 1064 rule.Always( 1065 rule.MatchingLanguages("Roff"), 1066 ), 1067 }, 1068 ".mask": &Heuristics{ 1069 rule.Or( 1070 rule.MatchingLanguages("Unity3D Asset"), 1071 regexp.MustCompile(`(?m)tag:unity3d.com`), 1072 ), 1073 }, 1074 ".mc": &Heuristics{ 1075 rule.Or( 1076 rule.MatchingLanguages("M4"), 1077 regexp.MustCompile(`(?m)^dnl|^divert\((?:-?\d+)?\)|^\w+\(`+"`"+`[^\n]*?'[),]`), 1078 ), 1079 rule.Or( 1080 rule.MatchingLanguages("Monkey C"), 1081 regexp.MustCompile(`(?m)\b(?:using|module|function|class|var)\s+\w`), 1082 ), 1083 }, 1084 ".md": &Heuristics{ 1085 rule.Or( 1086 rule.MatchingLanguages("Markdown"), 1087 regexp.MustCompile(`(?m)(^[-A-Za-z0-9=#!\*\[|>])|<\/|\A\z`), 1088 ), 1089 rule.Or( 1090 rule.MatchingLanguages("GCC Machine Description"), 1091 regexp.MustCompile(`(?m)^(;;|\(define_)`), 1092 ), 1093 rule.Always( 1094 rule.MatchingLanguages("Markdown"), 1095 ), 1096 }, 1097 ".mdoc": &Heuristics{ 1098 rule.And( 1099 rule.MatchingLanguages("Roff Manpage"), 1100 rule.Or( 1101 rule.MatchingLanguages(""), 1102 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 1103 ), 1104 rule.Or( 1105 rule.MatchingLanguages(""), 1106 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1107 ), 1108 rule.Or( 1109 rule.MatchingLanguages(""), 1110 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 1111 ), 1112 ), 1113 rule.And( 1114 rule.MatchingLanguages("Roff Manpage"), 1115 rule.Or( 1116 rule.MatchingLanguages(""), 1117 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1118 ), 1119 rule.Or( 1120 rule.MatchingLanguages(""), 1121 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 1122 ), 1123 ), 1124 rule.Always( 1125 rule.MatchingLanguages("Roff"), 1126 ), 1127 }, 1128 ".ml": &Heuristics{ 1129 rule.Or( 1130 rule.MatchingLanguages("OCaml"), 1131 regexp.MustCompile(`(?m)(^\s*module)|let rec |match\s+(\S+\s)+with`), 1132 ), 1133 rule.Or( 1134 rule.MatchingLanguages("Standard ML"), 1135 regexp.MustCompile(`(?m)=> |case\s+(\S+\s)+of`), 1136 ), 1137 }, 1138 ".mod": &Heuristics{ 1139 rule.Or( 1140 rule.MatchingLanguages("XML"), 1141 regexp.MustCompile(`(?m)<!ENTITY `), 1142 ), 1143 rule.Or( 1144 rule.MatchingLanguages("Modula-2"), 1145 regexp.MustCompile(`(?m)^\s*(?i:MODULE|END) [\w\.]+;`), 1146 ), 1147 rule.Always( 1148 rule.MatchingLanguages("Linux Kernel Module", "AMPL"), 1149 ), 1150 }, 1151 ".ms": &Heuristics{ 1152 rule.Or( 1153 rule.MatchingLanguages("Roff"), 1154 regexp.MustCompile(`(?m)^[.'][A-Za-z]{2}(\s|$)`), 1155 ), 1156 rule.And( 1157 rule.MatchingLanguages("Unix Assembly"), 1158 rule.Not( 1159 rule.MatchingLanguages(""), 1160 regexp.MustCompile(`(?m)/\*`), 1161 ), 1162 rule.Or( 1163 rule.MatchingLanguages(""), 1164 regexp.MustCompile(`(?m)^\s*\.(?:include\s|globa?l\s|[A-Za-z][_A-Za-z0-9]*:)`), 1165 ), 1166 ), 1167 rule.Always( 1168 rule.MatchingLanguages("MAXScript"), 1169 ), 1170 }, 1171 ".n": &Heuristics{ 1172 rule.Or( 1173 rule.MatchingLanguages("Roff"), 1174 regexp.MustCompile(`(?m)^[.']`), 1175 ), 1176 rule.Or( 1177 rule.MatchingLanguages("Nemerle"), 1178 regexp.MustCompile(`(?m)^(module|namespace|using)\s`), 1179 ), 1180 }, 1181 ".ncl": &Heuristics{ 1182 rule.Or( 1183 rule.MatchingLanguages("XML"), 1184 regexp.MustCompile(`(?m)^\s*<\?xml\s+version`), 1185 ), 1186 rule.Or( 1187 rule.MatchingLanguages("Gerber Image"), 1188 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*\r?\n`), 1189 ), 1190 rule.Or( 1191 rule.MatchingLanguages("Text"), 1192 regexp.MustCompile(`(?m)THE_TITLE`), 1193 ), 1194 }, 1195 ".nl": &Heuristics{ 1196 rule.Or( 1197 rule.MatchingLanguages("NL"), 1198 regexp.MustCompile(`(?m)^(b|g)[0-9]+ `), 1199 ), 1200 rule.Always( 1201 rule.MatchingLanguages("NewLisp"), 1202 ), 1203 }, 1204 ".odin": &Heuristics{ 1205 rule.Or( 1206 rule.MatchingLanguages("Object Data Instance Notation"), 1207 regexp.MustCompile(`(?m)(?:^|<)\s*[A-Za-z0-9_]+\s*=\s*<`), 1208 ), 1209 rule.Or( 1210 rule.MatchingLanguages("Odin"), 1211 regexp.MustCompile(`(?m)package\s+\w+|\b(?:im|ex)port\s*"[\w:./]+"|\w+\s*::\s*(?:proc|struct)\s*\(|^\s*//\s`), 1212 ), 1213 }, 1214 ".p": &Heuristics{ 1215 rule.Or( 1216 rule.MatchingLanguages("Gnuplot"), 1217 regexp.MustCompile(`(?m)^s?plot\b|^set\s+(term|terminal|out|output|[xy]tics|[xy]label|[xy]range|style)\b`), 1218 ), 1219 rule.Always( 1220 rule.MatchingLanguages("OpenEdge ABL"), 1221 ), 1222 }, 1223 ".php": &Heuristics{ 1224 rule.Or( 1225 rule.MatchingLanguages("Hack"), 1226 regexp.MustCompile(`(?m)<\?hh`), 1227 ), 1228 rule.Or( 1229 rule.MatchingLanguages("PHP"), 1230 regexp.MustCompile(`(?m)<\?[^h]`), 1231 ), 1232 }, 1233 ".pl": &Heuristics{ 1234 rule.Or( 1235 rule.MatchingLanguages("Prolog"), 1236 regexp.MustCompile(`(?m)^[^#]*:-`), 1237 ), 1238 rule.Or( 1239 rule.MatchingLanguages("Perl"), 1240 regexp.MustCompile(`(?m)\buse\s+(?:strict\b|v?5\.)`), 1241 ), 1242 rule.Or( 1243 rule.MatchingLanguages("Raku"), 1244 regexp.MustCompile(`(?m)^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)`), 1245 ), 1246 }, 1247 ".plist": &Heuristics{ 1248 rule.Or( 1249 rule.MatchingLanguages("XML Property List"), 1250 regexp.MustCompile(`(?m)<!DOCTYPE\s+plist`), 1251 ), 1252 rule.Always( 1253 rule.MatchingLanguages("OpenStep Property List"), 1254 ), 1255 }, 1256 ".pm": &Heuristics{ 1257 rule.Or( 1258 rule.MatchingLanguages("Perl"), 1259 regexp.MustCompile(`(?m)\buse\s+(?:strict\b|v?5\.)`), 1260 ), 1261 rule.Or( 1262 rule.MatchingLanguages("Raku"), 1263 regexp.MustCompile(`(?m)^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)`), 1264 ), 1265 rule.Or( 1266 rule.MatchingLanguages("X PixMap"), 1267 regexp.MustCompile(`(?m)^\s*\/\* XPM \*\/`), 1268 ), 1269 }, 1270 ".pod": &Heuristics{ 1271 rule.Or( 1272 rule.MatchingLanguages("Pod 6"), 1273 regexp.MustCompile(`(?m)^[\s&&[^\n]]*=(comment|begin pod|begin para|item\d+)`), 1274 ), 1275 rule.Always( 1276 rule.MatchingLanguages("Pod"), 1277 ), 1278 }, 1279 ".pp": &Heuristics{ 1280 rule.Or( 1281 rule.MatchingLanguages("Pascal"), 1282 regexp.MustCompile(`(?m)^\s*end[.;]`), 1283 ), 1284 rule.Or( 1285 rule.MatchingLanguages("Puppet"), 1286 regexp.MustCompile(`(?m)^\s+\w+\s+=>\s`), 1287 ), 1288 }, 1289 ".pro": &Heuristics{ 1290 rule.Or( 1291 rule.MatchingLanguages("Proguard"), 1292 regexp.MustCompile(`(?m)^-(include\b.*\.pro$|keep\b|keepclassmembers\b|keepattributes\b)`), 1293 ), 1294 rule.Or( 1295 rule.MatchingLanguages("Prolog"), 1296 regexp.MustCompile(`(?m)^[^\[#]+:-`), 1297 ), 1298 rule.Or( 1299 rule.MatchingLanguages("INI"), 1300 regexp.MustCompile(`(?m)last_client=`), 1301 ), 1302 rule.And( 1303 rule.MatchingLanguages("QMake"), 1304 rule.Or( 1305 rule.MatchingLanguages(""), 1306 regexp.MustCompile(`(?m)HEADERS`), 1307 ), 1308 rule.Or( 1309 rule.MatchingLanguages(""), 1310 regexp.MustCompile(`(?m)SOURCES`), 1311 ), 1312 ), 1313 rule.Or( 1314 rule.MatchingLanguages("IDL"), 1315 regexp.MustCompile(`(?m)^\s*function[ \w,]+$`), 1316 ), 1317 }, 1318 ".properties": &Heuristics{ 1319 rule.And( 1320 rule.MatchingLanguages("INI"), 1321 rule.Or( 1322 rule.MatchingLanguages(""), 1323 regexp.MustCompile(`(?m)^[^#!;][^=]*=`), 1324 ), 1325 rule.Or( 1326 rule.MatchingLanguages(""), 1327 regexp.MustCompile(`(?m)^[;\[]`), 1328 ), 1329 ), 1330 rule.And( 1331 rule.MatchingLanguages("Java Properties"), 1332 rule.Or( 1333 rule.MatchingLanguages(""), 1334 regexp.MustCompile(`(?m)^[^#!;][^=]*=`), 1335 ), 1336 rule.Or( 1337 rule.MatchingLanguages(""), 1338 regexp.MustCompile(`(?m)^[#!]`), 1339 ), 1340 ), 1341 rule.Or( 1342 rule.MatchingLanguages("INI"), 1343 regexp.MustCompile(`(?m)^[^#!;][^=]*=`), 1344 ), 1345 rule.Or( 1346 rule.MatchingLanguages("Java Properties"), 1347 regexp.MustCompile(`(?m)^[^#!][^:]*:`), 1348 ), 1349 }, 1350 ".q": &Heuristics{ 1351 rule.Or( 1352 rule.MatchingLanguages("q"), 1353 regexp.MustCompile(`(?m)((?i:[A-Z.][\w.]*:{)|(^|\n)\\(cd?|d|l|p|ts?) )`), 1354 ), 1355 rule.Or( 1356 rule.MatchingLanguages("HiveQL"), 1357 regexp.MustCompile(`(?m)(?i:SELECT\s+[\w*,]+\s+FROM|(CREATE|ALTER|DROP)\s(DATABASE|SCHEMA|TABLE))`), 1358 ), 1359 }, 1360 ".qs": &Heuristics{ 1361 rule.Or( 1362 rule.MatchingLanguages("Q#"), 1363 regexp.MustCompile(`(?m)^((\/{2,3})?\s*(namespace|operation)\b)`), 1364 ), 1365 rule.Or( 1366 rule.MatchingLanguages("Qt Script"), 1367 regexp.MustCompile(`(?m)(\w+\.prototype\.\w+|===|\bvar\b)`), 1368 ), 1369 }, 1370 ".r": &Heuristics{ 1371 rule.Or( 1372 rule.MatchingLanguages("Rebol"), 1373 regexp.MustCompile(`(?m)(?i:\bRebol\b)`), 1374 ), 1375 rule.Or( 1376 rule.MatchingLanguages("R"), 1377 regexp.MustCompile(`(?m)<-|^\s*#`), 1378 ), 1379 }, 1380 ".re": &Heuristics{ 1381 rule.Or( 1382 rule.MatchingLanguages("Reason"), 1383 regexp.MustCompile(`(?m)^\s*module\s+type\s|^\s*(?:include|open)\s+\w+\s*;\s*$|^\s*let\s+(?:module\s\w+\s*=\s*{|\w+:\s+.*=.*;\s*$)`), 1384 ), 1385 rule.Or( 1386 rule.MatchingLanguages("C++"), 1387 regexp.MustCompile(`(?m)^\s*#(?:(?:if|ifdef|define|pragma)\s+\w|\s*include\s+<[^>]+>)|^\s*template\s*<`), 1388 ), 1389 }, 1390 ".res": &Heuristics{ 1391 rule.Or( 1392 rule.MatchingLanguages("ReScript"), 1393 regexp.MustCompile(`(?m)^\s*(let|module|type)\s+\w*\s+=\s+|^\s*(?:include|open)\s+\w+\s*$`), 1394 ), 1395 }, 1396 ".rno": &Heuristics{ 1397 rule.Or( 1398 rule.MatchingLanguages("Roff"), 1399 regexp.MustCompile(`(?m)^\.\\" `), 1400 ), 1401 }, 1402 ".rpy": &Heuristics{ 1403 rule.Or( 1404 rule.MatchingLanguages("Python"), 1405 regexp.MustCompile(`(?m)(?m:^(import|from|class|def)\s)`), 1406 ), 1407 rule.Always( 1408 rule.MatchingLanguages("Ren'Py"), 1409 ), 1410 }, 1411 ".rs": &Heuristics{ 1412 rule.Or( 1413 rule.MatchingLanguages("Rust"), 1414 regexp.MustCompile(`(?m)^(use |fn |mod |pub |macro_rules|impl|#!?\[)`), 1415 ), 1416 rule.Or( 1417 rule.MatchingLanguages("RenderScript"), 1418 regexp.MustCompile(`(?m)#include|#pragma\s+(rs|version)|__attribute__`), 1419 ), 1420 rule.Or( 1421 rule.MatchingLanguages("XML"), 1422 regexp.MustCompile(`(?m)^\s*<\?xml`), 1423 ), 1424 }, 1425 ".s": &Heuristics{ 1426 rule.Or( 1427 rule.MatchingLanguages("Motorola 68K Assembly"), 1428 regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), 1429 ), 1430 }, 1431 ".sc": &Heuristics{ 1432 rule.Or( 1433 rule.MatchingLanguages("SuperCollider"), 1434 regexp.MustCompile(`(?m)(?i:\^(this|super)\.|^\s*~\w+\s*=\.)`), 1435 ), 1436 rule.Or( 1437 rule.MatchingLanguages("Scala"), 1438 regexp.MustCompile(`(?m)(^\s*import (scala|java)\.|^\s*class\b)`), 1439 ), 1440 }, 1441 ".sol": &Heuristics{ 1442 rule.Or( 1443 rule.MatchingLanguages("Gerber Image"), 1444 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*\r?\n`), 1445 ), 1446 }, 1447 ".sql": &Heuristics{ 1448 rule.Or( 1449 rule.MatchingLanguages("PLpgSQL"), 1450 regexp.MustCompile(`(?m)(?i:^\\i\b|AS\s+\$\$|LANGUAGE\s+'?plpgsql'?|BEGIN(\s+WORK)?\s*;)`), 1451 ), 1452 rule.Or( 1453 rule.MatchingLanguages("SQLPL"), 1454 regexp.MustCompile(`(?m)(?i:ALTER\s+MODULE|MODE\s+DB2SQL|\bSYS(CAT|PROC)\.|ASSOCIATE\s+RESULT\s+SET|\bEND!\s*$)`), 1455 ), 1456 rule.Or( 1457 rule.MatchingLanguages("PLSQL"), 1458 regexp.MustCompile(`(?m)(?i:\$\$PLSQL_|XMLTYPE|systimestamp|\.nextval|CONNECT\s+BY|AUTHID\s+(DEFINER|CURRENT_USER)|constructor\W+function)`), 1459 ), 1460 rule.Or( 1461 rule.MatchingLanguages("TSQL"), 1462 regexp.MustCompile(`(?m)(?i:^\s*GO\b|BEGIN(\s+TRY|\s+CATCH)|OUTPUT\s+INSERTED|DECLARE\s+@|\[dbo\])`), 1463 ), 1464 rule.Always( 1465 rule.MatchingLanguages("SQL"), 1466 ), 1467 }, 1468 ".srt": &Heuristics{ 1469 rule.Or( 1470 rule.MatchingLanguages("SubRip Text"), 1471 regexp.MustCompile(`(?m)^(\d{2}:\d{2}:\d{2},\d{3})\s*(-->)\s*(\d{2}:\d{2}:\d{2},\d{3})$`), 1472 ), 1473 }, 1474 ".st": &Heuristics{ 1475 rule.Or( 1476 rule.MatchingLanguages("Smalltalk"), 1477 regexp.MustCompile(`(?m)\A\s*[\[{(^"'\w#]|[a-zA-Z_]\w*\s*:=\s*[a-zA-Z_]\w*|class\s*>>\s*[a-zA-Z_]\w*|^[a-zA-Z_]\w*\s+[a-zA-Z_]\w*:|^Class\s*{|if(?:True|False):\s*\[`), 1478 ), 1479 }, 1480 ".star": &Heuristics{ 1481 rule.Or( 1482 rule.MatchingLanguages("STAR"), 1483 regexp.MustCompile(`(?m)^loop_\s*$`), 1484 ), 1485 rule.Always( 1486 rule.MatchingLanguages("Starlark"), 1487 ), 1488 }, 1489 ".stl": &Heuristics{}, 1490 ".t": &Heuristics{ 1491 rule.Or( 1492 rule.MatchingLanguages("Perl"), 1493 regexp.MustCompile(`(?m)\buse\s+(?:strict\b|v?5\.)`), 1494 ), 1495 rule.Or( 1496 rule.MatchingLanguages("Raku"), 1497 regexp.MustCompile(`(?m)^\s*(?:use\s+v6\b|\bmodule\b|\bmy\s+class\b)`), 1498 ), 1499 rule.Or( 1500 rule.MatchingLanguages("Turing"), 1501 regexp.MustCompile(`(?m)^\s*%[ \t]+|^\s*var\s+\w+(\s*:\s*\w+)?\s*:=\s*\w+`), 1502 ), 1503 }, 1504 ".toc": &Heuristics{ 1505 rule.Or( 1506 rule.MatchingLanguages("World of Warcraft Addon Data"), 1507 regexp.MustCompile(`(?m)^## |@no-lib-strip@`), 1508 ), 1509 rule.Or( 1510 rule.MatchingLanguages("TeX"), 1511 regexp.MustCompile(`(?m)^\\(contentsline|defcounter|beamer|boolfalse)`), 1512 ), 1513 }, 1514 ".ts": &Heuristics{ 1515 rule.Or( 1516 rule.MatchingLanguages("XML"), 1517 regexp.MustCompile(`(?m)<TS\b`), 1518 ), 1519 rule.Always( 1520 rule.MatchingLanguages("TypeScript"), 1521 ), 1522 }, 1523 ".tst": &Heuristics{ 1524 rule.Or( 1525 rule.MatchingLanguages("GAP"), 1526 regexp.MustCompile(`(?m)gap> `), 1527 ), 1528 rule.Always( 1529 rule.MatchingLanguages("Scilab"), 1530 ), 1531 }, 1532 ".tsx": &Heuristics{ 1533 rule.Or( 1534 rule.MatchingLanguages("TSX"), 1535 regexp.MustCompile(`(?m)^\s*(import.+(from\s+|require\()['"]react|\/\/\/\s*<reference\s)`), 1536 ), 1537 rule.Or( 1538 rule.MatchingLanguages("XML"), 1539 regexp.MustCompile(`(?m)(?i:^\s*<\?xml\s+version)`), 1540 ), 1541 }, 1542 ".txt": &Heuristics{ 1543 rule.Always( 1544 rule.MatchingLanguages("Text"), 1545 ), 1546 }, 1547 ".url": &Heuristics{}, 1548 ".v": &Heuristics{ 1549 rule.Or( 1550 rule.MatchingLanguages("Coq"), 1551 regexp.MustCompile(`(?m)(?:^|\s)(?:Proof|Qed)\.(?:$|\s)|(?:^|\s)Require[ \t]+(Import|Export)\s`), 1552 ), 1553 rule.Or( 1554 rule.MatchingLanguages("Verilog"), 1555 regexp.MustCompile(`(?m)^[ \t]*module\s+[^\s()]+\s+\#?\(|^[ \t]*`+"`"+`(?:define|ifdef|ifndef|include|timescale)|^[ \t]*always[ \t]+@|^[ \t]*initial[ \t]+(begin|@)`), 1556 ), 1557 rule.Or( 1558 rule.MatchingLanguages("V"), 1559 regexp.MustCompile(`(?m)\$(?:if|else)[ \t]|^[ \t]*fn\s+[^\s()]+\(.*?\).*?\{|^[ \t]*for\s*\{`), 1560 ), 1561 }, 1562 ".vba": &Heuristics{ 1563 rule.Or( 1564 rule.MatchingLanguages("Vim Script"), 1565 regexp.MustCompile(`(?m)^UseVimball`), 1566 ), 1567 rule.Always( 1568 rule.MatchingLanguages("VBA"), 1569 ), 1570 }, 1571 ".w": &Heuristics{ 1572 rule.Or( 1573 rule.MatchingLanguages("OpenEdge ABL"), 1574 regexp.MustCompile(`(?m)&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS`), 1575 ), 1576 rule.Or( 1577 rule.MatchingLanguages("CWeb"), 1578 regexp.MustCompile(`(?m)^@(<|\w+\.)`), 1579 ), 1580 }, 1581 ".x": &Heuristics{ 1582 rule.Or( 1583 rule.MatchingLanguages("DirectX 3D File"), 1584 regexp.MustCompile(`(?m)^xof 030(2|3)(?:txt|bin|tzip|bzip)\b`), 1585 ), 1586 rule.Or( 1587 rule.MatchingLanguages("RPC"), 1588 regexp.MustCompile(`(?m)\b(program|version)\s+\w+\s*{|\bunion\s+\w+\s+switch\s*\(`), 1589 ), 1590 rule.Or( 1591 rule.MatchingLanguages("Logos"), 1592 regexp.MustCompile(`(?m)^%(end|ctor|hook|group)\b`), 1593 ), 1594 rule.Or( 1595 rule.MatchingLanguages("Linker Script"), 1596 regexp.MustCompile(`(?m)OUTPUT_ARCH\(|OUTPUT_FORMAT\(|SECTIONS`), 1597 ), 1598 }, 1599 ".yaml": &Heuristics{ 1600 rule.Or( 1601 rule.MatchingLanguages("MiniYAML"), 1602 regexp.MustCompile(`(?m)^\t+.*?[^\s:].*?:`), 1603 ), 1604 rule.Always( 1605 rule.MatchingLanguages("YAML"), 1606 ), 1607 }, 1608 ".yy": &Heuristics{ 1609 rule.Or( 1610 rule.MatchingLanguages("JSON"), 1611 regexp.MustCompile(`(?m)\"modelName\"\:\s*\"GM`), 1612 ), 1613 rule.Always( 1614 rule.MatchingLanguages("Yacc"), 1615 ), 1616 }, 1617 }