gitlab.com/thomasboni/go-enry/v2@v2.8.3-0.20220418031202-30b0d7a3de98/internal/code-generator/generator/test_files/content.gold (about) 1 // Code generated by gitlab.com/thomasboni/go-enry/v2/internal/code-generator DO NOT EDIT. 2 // Extracted from github/linguist commit: 4ffcdbcbb60a74cbfbd37656bcc3fcea4eca8e26 3 4 package data 5 6 import ( 7 "regexp" 8 9 "gitlab.com/thomasboni/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 }, 642 ".bi": &Heuristics{ 643 rule.Or( 644 rule.MatchingLanguages("FreeBasic"), 645 regexp.MustCompile(`(?m)^[ \t]*#(?:define|endif|endmacro|ifn?def|if|include|lang|macro)\s`), 646 ), 647 }, 648 ".builds": &Heuristics{ 649 rule.Or( 650 rule.MatchingLanguages("XML"), 651 regexp.MustCompile(`(?m)^(\s*)(?i:<Project|<Import|<Property|<?xml|xmlns)`), 652 ), 653 }, 654 ".ch": &Heuristics{ 655 rule.Or( 656 rule.MatchingLanguages("xBase"), 657 regexp.MustCompile(`(?m)^\s*#\s*(?i:if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b`), 658 ), 659 }, 660 ".cl": &Heuristics{ 661 rule.Or( 662 rule.MatchingLanguages("Common Lisp"), 663 regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), 664 ), 665 rule.Or( 666 rule.MatchingLanguages("Cool"), 667 regexp.MustCompile(`(?m)^class`), 668 ), 669 rule.Or( 670 rule.MatchingLanguages("OpenCL"), 671 regexp.MustCompile(`(?m)\/\* |\/\/ |^\}`), 672 ), 673 }, 674 ".cls": &Heuristics{ 675 rule.Or( 676 rule.MatchingLanguages("TeX"), 677 regexp.MustCompile(`(?m)^\s*\\(?:NeedsTeXFormat|ProvidesClass){`), 678 ), 679 rule.Or( 680 rule.MatchingLanguages("ObjectScript"), 681 regexp.MustCompile(`(?m)^Class\s`), 682 ), 683 }, 684 ".cmp": &Heuristics{ 685 rule.Or( 686 rule.MatchingLanguages("Gerber Image"), 687 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*\r?\n`), 688 ), 689 }, 690 ".cs": &Heuristics{ 691 rule.Or( 692 rule.MatchingLanguages("Smalltalk"), 693 regexp.MustCompile(`(?m)![\w\s]+methodsFor: `), 694 ), 695 rule.Or( 696 rule.MatchingLanguages("C#"), 697 regexp.MustCompile(`(?m)^(\s*namespace\s*[\w\.]+\s*{|\s*\/\/)`), 698 ), 699 }, 700 ".csc": &Heuristics{}, 701 ".csl": &Heuristics{ 702 rule.Or( 703 rule.MatchingLanguages("XML"), 704 regexp.MustCompile(`(?m)(?i:^\s*(\<\?xml|xmlns))`), 705 ), 706 rule.Or( 707 rule.MatchingLanguages("Kusto"), 708 regexp.MustCompile(`(?m)(^\|\s*(where|extend|project|limit|summarize))|(^\.\w+)`), 709 ), 710 }, 711 ".d": &Heuristics{ 712 rule.Or( 713 rule.MatchingLanguages("D"), 714 regexp.MustCompile(`(?m)^module\s+[\w.]*\s*;|import\s+[\w\s,.:]*;|\w+\s+\w+\s*\(.*\)(?:\(.*\))?\s*{[^}]*}|unittest\s*(?:\(.*\))?\s*{[^}]*}`), 715 ), 716 rule.Or( 717 rule.MatchingLanguages("DTrace"), 718 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)`), 719 ), 720 rule.Or( 721 rule.MatchingLanguages("Makefile"), 722 regexp.MustCompile(`(?m)([\/\\].*:\s+.*\s\\$|: \\$|^[ %]:|^[\w\s\/\\.]+\w+\.\w+\s*:\s+[\w\s\/\\.]+\w+\.\w+)`), 723 ), 724 }, 725 ".dsp": &Heuristics{ 726 rule.Or( 727 rule.MatchingLanguages("Microsoft Developer Studio Project"), 728 regexp.MustCompile(`(?m)# Microsoft Developer Studio Generated Build File`), 729 ), 730 rule.Or( 731 rule.MatchingLanguages("Faust"), 732 regexp.MustCompile(`(?m)\bprocess\s*[(=]|\b(library|import)\s*\(\s*"|\bdeclare\s+(name|version|author|copyright|license)\s+"`), 733 ), 734 }, 735 ".e": &Heuristics{ 736 rule.Or( 737 rule.MatchingLanguages("E"), 738 regexp.MustCompile(`(?m)^\s*(def|var)\s+(.+):=|^\s*(def|to)\s+(\w+)(\(.+\))?\s+{|^\s*(when)\s+(\(.+\))\s+->\s+{`), 739 ), 740 rule.Or( 741 rule.MatchingLanguages("Eiffel"), 742 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*$`), 743 ), 744 rule.Or( 745 rule.MatchingLanguages("Euphoria"), 746 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`), 747 ), 748 }, 749 ".ecl": &Heuristics{ 750 rule.Or( 751 rule.MatchingLanguages("ECLiPSe"), 752 regexp.MustCompile(`(?m)^[^#]+:-`), 753 ), 754 rule.Or( 755 rule.MatchingLanguages("ECL"), 756 regexp.MustCompile(`(?m):=`), 757 ), 758 }, 759 ".es": &Heuristics{ 760 rule.Or( 761 rule.MatchingLanguages("Erlang"), 762 regexp.MustCompile(`(?m)^\s*(?:%%|main\s*\(.*?\)\s*->)`), 763 ), 764 }, 765 ".ex": &Heuristics{ 766 rule.Or( 767 rule.MatchingLanguages("Elixir"), 768 regexp.MustCompile(`(?m)^\s*@moduledoc\s|^\s*(?:cond|import|quote|unless)\s|^\s*def(?:exception|impl|macro|module|protocol)[(\s]`), 769 ), 770 rule.Or( 771 rule.MatchingLanguages("Euphoria"), 772 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`), 773 ), 774 }, 775 ".f": &Heuristics{ 776 rule.Or( 777 rule.MatchingLanguages("Forth"), 778 regexp.MustCompile(`(?m)^: `), 779 ), 780 rule.Or( 781 rule.MatchingLanguages("Filebench WML"), 782 regexp.MustCompile(`(?m)flowop`), 783 ), 784 rule.Or( 785 rule.MatchingLanguages("Fortran"), 786 regexp.MustCompile(`(?m)^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)`), 787 ), 788 }, 789 ".for": &Heuristics{ 790 rule.Or( 791 rule.MatchingLanguages("Forth"), 792 regexp.MustCompile(`(?m)^: `), 793 ), 794 rule.Or( 795 rule.MatchingLanguages("Fortran"), 796 regexp.MustCompile(`(?m)^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)`), 797 ), 798 }, 799 ".fr": &Heuristics{ 800 rule.Or( 801 rule.MatchingLanguages("Forth"), 802 regexp.MustCompile(`(?m)^(: |also |new-device|previous )`), 803 ), 804 rule.Or( 805 rule.MatchingLanguages("Frege"), 806 regexp.MustCompile(`(?m)^\s*(import|module|package|data|type) `), 807 ), 808 rule.Always( 809 rule.MatchingLanguages("Text"), 810 ), 811 }, 812 ".fs": &Heuristics{ 813 rule.Or( 814 rule.MatchingLanguages("Forth"), 815 regexp.MustCompile(`(?m)^(: |new-device)`), 816 ), 817 rule.Or( 818 rule.MatchingLanguages("F#"), 819 regexp.MustCompile(`(?m)^\s*(#light|import|let|module|namespace|open|type)`), 820 ), 821 rule.Or( 822 rule.MatchingLanguages("GLSL"), 823 regexp.MustCompile(`(?m)^\s*(#version|precision|uniform|varying|vec[234])`), 824 ), 825 rule.Or( 826 rule.MatchingLanguages("Filterscript"), 827 regexp.MustCompile(`(?m)#include|#pragma\s+(rs|version)|__attribute__`), 828 ), 829 }, 830 ".ftl": &Heuristics{ 831 rule.Or( 832 rule.MatchingLanguages("Fluent"), 833 regexp.MustCompile(`(?m)^-?[a-zA-Z][a-zA-Z0-9_-]* *=|\{\$-?[a-zA-Z][-\w]*(?:\.[a-zA-Z][-\w]*)?\}`), 834 ), 835 }, 836 ".gd": &Heuristics{ 837 rule.Or( 838 rule.MatchingLanguages("GAP"), 839 regexp.MustCompile(`(?m)\s*(Declare|BindGlobal|KeyDependentOperation)`), 840 ), 841 rule.Or( 842 rule.MatchingLanguages("GDScript"), 843 regexp.MustCompile(`(?m)\s*(extends|var|const|enum|func|class|signal|tool|yield|assert|onready)`), 844 ), 845 }, 846 ".gml": &Heuristics{ 847 rule.Or( 848 rule.MatchingLanguages("XML"), 849 regexp.MustCompile(`(?m)(?i:^\s*(\<\?xml|xmlns))`), 850 ), 851 rule.Or( 852 rule.MatchingLanguages("Graph Modeling Language"), 853 regexp.MustCompile(`(?m)(?i:^\s*(graph|node)\s+\[$)`), 854 ), 855 rule.Or( 856 rule.MatchingLanguages("Gerber Image"), 857 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*$`), 858 ), 859 rule.Always( 860 rule.MatchingLanguages("Game Maker Language"), 861 ), 862 }, 863 ".gs": &Heuristics{ 864 rule.Or( 865 rule.MatchingLanguages("GLSL"), 866 regexp.MustCompile(`(?m)^#version\s+[0-9]+\b`), 867 ), 868 rule.Or( 869 rule.MatchingLanguages("Gosu"), 870 regexp.MustCompile(`(?m)^uses (java|gw)\.`), 871 ), 872 rule.Or( 873 rule.MatchingLanguages("Genie"), 874 regexp.MustCompile(`(?m)^\[indent=[0-9]+\]`), 875 ), 876 }, 877 ".gsc": &Heuristics{}, 878 ".gsh": &Heuristics{}, 879 ".h": &Heuristics{ 880 rule.Or( 881 rule.MatchingLanguages("Objective-C"), 882 regexp.MustCompile(`(?m)^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])`), 883 ), 884 rule.Or( 885 rule.MatchingLanguages("C++"), 886 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+`), 887 ), 888 rule.Always( 889 rule.MatchingLanguages("C"), 890 ), 891 }, 892 ".hh": &Heuristics{ 893 rule.Or( 894 rule.MatchingLanguages("Hack"), 895 regexp.MustCompile(`(?m)<\?hh`), 896 ), 897 }, 898 ".i": &Heuristics{ 899 rule.Or( 900 rule.MatchingLanguages("Motorola 68K Assembly"), 901 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`), 902 ), 903 rule.Or( 904 rule.MatchingLanguages("SWIG"), 905 regexp.MustCompile(`(?m)^[ \t]*%[a-z_]+\b|^%[{}]$`), 906 ), 907 }, 908 ".ice": &Heuristics{ 909 rule.Or( 910 rule.MatchingLanguages("JSON"), 911 regexp.MustCompile(`(?m)\A\s*[{\[]`), 912 ), 913 rule.Always( 914 rule.MatchingLanguages("Slice"), 915 ), 916 }, 917 ".inc": &Heuristics{ 918 rule.Or( 919 rule.MatchingLanguages("Motorola 68K Assembly"), 920 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`), 921 ), 922 rule.Or( 923 rule.MatchingLanguages("PHP"), 924 regexp.MustCompile(`(?m)^<\?(?:php)?`), 925 ), 926 rule.Or( 927 rule.MatchingLanguages("SourcePawn"), 928 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*\(`), 929 ), 930 rule.Or( 931 rule.MatchingLanguages("POV-Ray SDL"), 932 regexp.MustCompile(`(?m)^\s*#(declare|local|macro|while)\s`), 933 ), 934 rule.Or( 935 rule.MatchingLanguages("Pascal"), 936 regexp.MustCompile(`(?m)(?i:^\s*{\$(?:mode|ifdef|undef|define)[ ]+[a-z0-9_]+})|^\s*end[.;]\s*$`), 937 ), 938 }, 939 ".l": &Heuristics{ 940 rule.Or( 941 rule.MatchingLanguages("Common Lisp"), 942 regexp.MustCompile(`(?m)\(def(un|macro)\s`), 943 ), 944 rule.Or( 945 rule.MatchingLanguages("Lex"), 946 regexp.MustCompile(`(?m)^(%[%{}]xs|<.*>)`), 947 ), 948 rule.Or( 949 rule.MatchingLanguages("Roff"), 950 regexp.MustCompile(`(?m)^\.[A-Za-z]{2}(\s|$)`), 951 ), 952 rule.Or( 953 rule.MatchingLanguages("PicoLisp"), 954 regexp.MustCompile(`(?m)^\((de|class|rel|code|data|must)\s`), 955 ), 956 }, 957 ".lisp": &Heuristics{ 958 rule.Or( 959 rule.MatchingLanguages("Common Lisp"), 960 regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), 961 ), 962 rule.Or( 963 rule.MatchingLanguages("NewLisp"), 964 regexp.MustCompile(`(?m)^\s*\(define `), 965 ), 966 }, 967 ".ls": &Heuristics{ 968 rule.Or( 969 rule.MatchingLanguages("LoomScript"), 970 regexp.MustCompile(`(?m)^\s*package\s*[\w\.\/\*\s]*\s*{`), 971 ), 972 rule.Always( 973 rule.MatchingLanguages("LiveScript"), 974 ), 975 }, 976 ".lsp": &Heuristics{ 977 rule.Or( 978 rule.MatchingLanguages("Common Lisp"), 979 regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), 980 ), 981 rule.Or( 982 rule.MatchingLanguages("NewLisp"), 983 regexp.MustCompile(`(?m)^\s*\(define `), 984 ), 985 }, 986 ".m": &Heuristics{ 987 rule.Or( 988 rule.MatchingLanguages("Objective-C"), 989 regexp.MustCompile(`(?m)^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])`), 990 ), 991 rule.Or( 992 rule.MatchingLanguages("Mercury"), 993 regexp.MustCompile(`(?m):- module`), 994 ), 995 rule.Or( 996 rule.MatchingLanguages("MUF"), 997 regexp.MustCompile(`(?m)^: `), 998 ), 999 rule.Or( 1000 rule.MatchingLanguages("M"), 1001 regexp.MustCompile(`(?m)^\s*;`), 1002 ), 1003 rule.And( 1004 rule.MatchingLanguages("Mathematica"), 1005 rule.Or( 1006 rule.MatchingLanguages(""), 1007 regexp.MustCompile(`(?m)\(\*`), 1008 ), 1009 rule.Or( 1010 rule.MatchingLanguages(""), 1011 regexp.MustCompile(`(?m)\*\)$`), 1012 ), 1013 ), 1014 rule.Or( 1015 rule.MatchingLanguages("MATLAB"), 1016 regexp.MustCompile(`(?m)^\s*%`), 1017 ), 1018 rule.Or( 1019 rule.MatchingLanguages("Limbo"), 1020 regexp.MustCompile(`(?m)^\w+\s*:\s*module\s*{`), 1021 ), 1022 }, 1023 ".m4": &Heuristics{ 1024 rule.Or( 1025 rule.MatchingLanguages("M4Sugar"), 1026 regexp.MustCompile(`(?m)AC_DEFUN|AC_PREREQ|AC_INIT|^_?m4_`), 1027 ), 1028 rule.Always( 1029 rule.MatchingLanguages("M4"), 1030 ), 1031 }, 1032 ".man": &Heuristics{ 1033 rule.And( 1034 rule.MatchingLanguages("Roff Manpage"), 1035 rule.Or( 1036 rule.MatchingLanguages(""), 1037 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 1038 ), 1039 rule.Or( 1040 rule.MatchingLanguages(""), 1041 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1042 ), 1043 rule.Or( 1044 rule.MatchingLanguages(""), 1045 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 1046 ), 1047 ), 1048 rule.And( 1049 rule.MatchingLanguages("Roff Manpage"), 1050 rule.Or( 1051 rule.MatchingLanguages(""), 1052 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1053 ), 1054 rule.Or( 1055 rule.MatchingLanguages(""), 1056 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 1057 ), 1058 ), 1059 rule.Always( 1060 rule.MatchingLanguages("Roff"), 1061 ), 1062 }, 1063 ".mask": &Heuristics{ 1064 rule.Or( 1065 rule.MatchingLanguages("Unity3D Asset"), 1066 regexp.MustCompile(`(?m)tag:unity3d.com`), 1067 ), 1068 }, 1069 ".mc": &Heuristics{ 1070 rule.Or( 1071 rule.MatchingLanguages("M4"), 1072 regexp.MustCompile(`(?m)^dnl|^divert\((?:-?\d+)?\)|^\w+\(`+"`"+`[^\n]*?'[),]`), 1073 ), 1074 rule.Or( 1075 rule.MatchingLanguages("Monkey C"), 1076 regexp.MustCompile(`(?m)\b(?:using|module|function|class|var)\s+\w`), 1077 ), 1078 }, 1079 ".md": &Heuristics{ 1080 rule.Or( 1081 rule.MatchingLanguages("Markdown"), 1082 regexp.MustCompile(`(?m)(^[-A-Za-z0-9=#!\*\[|>])|<\/|\A\z`), 1083 ), 1084 rule.Or( 1085 rule.MatchingLanguages("GCC Machine Description"), 1086 regexp.MustCompile(`(?m)^(;;|\(define_)`), 1087 ), 1088 rule.Always( 1089 rule.MatchingLanguages("Markdown"), 1090 ), 1091 }, 1092 ".mdoc": &Heuristics{ 1093 rule.And( 1094 rule.MatchingLanguages("Roff Manpage"), 1095 rule.Or( 1096 rule.MatchingLanguages(""), 1097 regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), 1098 ), 1099 rule.Or( 1100 rule.MatchingLanguages(""), 1101 regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1102 ), 1103 rule.Or( 1104 rule.MatchingLanguages(""), 1105 regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), 1106 ), 1107 ), 1108 rule.And( 1109 rule.MatchingLanguages("Roff Manpage"), 1110 rule.Or( 1111 rule.MatchingLanguages(""), 1112 regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), 1113 ), 1114 rule.Or( 1115 rule.MatchingLanguages(""), 1116 regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), 1117 ), 1118 ), 1119 rule.Always( 1120 rule.MatchingLanguages("Roff"), 1121 ), 1122 }, 1123 ".ml": &Heuristics{ 1124 rule.Or( 1125 rule.MatchingLanguages("OCaml"), 1126 regexp.MustCompile(`(?m)(^\s*module)|let rec |match\s+(\S+\s)+with`), 1127 ), 1128 rule.Or( 1129 rule.MatchingLanguages("Standard ML"), 1130 regexp.MustCompile(`(?m)=> |case\s+(\S+\s)+of`), 1131 ), 1132 }, 1133 ".mod": &Heuristics{ 1134 rule.Or( 1135 rule.MatchingLanguages("XML"), 1136 regexp.MustCompile(`(?m)<!ENTITY `), 1137 ), 1138 rule.Or( 1139 rule.MatchingLanguages("Modula-2"), 1140 regexp.MustCompile(`(?m)^\s*(?i:MODULE|END) [\w\.]+;`), 1141 ), 1142 rule.Always( 1143 rule.MatchingLanguages("Linux Kernel Module", "AMPL"), 1144 ), 1145 }, 1146 ".ms": &Heuristics{ 1147 rule.Or( 1148 rule.MatchingLanguages("Roff"), 1149 regexp.MustCompile(`(?m)^[.'][A-Za-z]{2}(\s|$)`), 1150 ), 1151 rule.And( 1152 rule.MatchingLanguages("Unix Assembly"), 1153 rule.Not( 1154 rule.MatchingLanguages(""), 1155 regexp.MustCompile(`(?m)/\*`), 1156 ), 1157 rule.Or( 1158 rule.MatchingLanguages(""), 1159 regexp.MustCompile(`(?m)^\s*\.(?:include\s|globa?l\s|[A-Za-z][_A-Za-z0-9]*:)`), 1160 ), 1161 ), 1162 rule.Always( 1163 rule.MatchingLanguages("MAXScript"), 1164 ), 1165 }, 1166 ".n": &Heuristics{ 1167 rule.Or( 1168 rule.MatchingLanguages("Roff"), 1169 regexp.MustCompile(`(?m)^[.']`), 1170 ), 1171 rule.Or( 1172 rule.MatchingLanguages("Nemerle"), 1173 regexp.MustCompile(`(?m)^(module|namespace|using)\s`), 1174 ), 1175 }, 1176 ".ncl": &Heuristics{ 1177 rule.Or( 1178 rule.MatchingLanguages("XML"), 1179 regexp.MustCompile(`(?m)^\s*<\?xml\s+version`), 1180 ), 1181 rule.Or( 1182 rule.MatchingLanguages("Gerber Image"), 1183 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*\r?\n`), 1184 ), 1185 rule.Or( 1186 rule.MatchingLanguages("Text"), 1187 regexp.MustCompile(`(?m)THE_TITLE`), 1188 ), 1189 }, 1190 ".nl": &Heuristics{ 1191 rule.Or( 1192 rule.MatchingLanguages("NL"), 1193 regexp.MustCompile(`(?m)^(b|g)[0-9]+ `), 1194 ), 1195 rule.Always( 1196 rule.MatchingLanguages("NewLisp"), 1197 ), 1198 }, 1199 ".odin": &Heuristics{ 1200 rule.Or( 1201 rule.MatchingLanguages("Object Data Instance Notation"), 1202 regexp.MustCompile(`(?m)(?:^|<)\s*[A-Za-z0-9_]+\s*=\s*<`), 1203 ), 1204 rule.Or( 1205 rule.MatchingLanguages("Odin"), 1206 regexp.MustCompile(`(?m)package\s+\w+|\b(?:im|ex)port\s*"[\w:./]+"|\w+\s*::\s*(?:proc|struct)\s*\(|^\s*//\s`), 1207 ), 1208 }, 1209 ".p": &Heuristics{ 1210 rule.Or( 1211 rule.MatchingLanguages("Gnuplot"), 1212 regexp.MustCompile(`(?m)^s?plot\b|^set\s+(term|terminal|out|output|[xy]tics|[xy]label|[xy]range|style)\b`), 1213 ), 1214 rule.Always( 1215 rule.MatchingLanguages("OpenEdge ABL"), 1216 ), 1217 }, 1218 ".php": &Heuristics{ 1219 rule.Or( 1220 rule.MatchingLanguages("Hack"), 1221 regexp.MustCompile(`(?m)<\?hh`), 1222 ), 1223 rule.Or( 1224 rule.MatchingLanguages("PHP"), 1225 regexp.MustCompile(`(?m)<\?[^h]`), 1226 ), 1227 }, 1228 ".pl": &Heuristics{ 1229 rule.Or( 1230 rule.MatchingLanguages("Prolog"), 1231 regexp.MustCompile(`(?m)^[^#]*:-`), 1232 ), 1233 rule.Or( 1234 rule.MatchingLanguages("Perl"), 1235 regexp.MustCompile(`(?m)\buse\s+(?:strict\b|v?5\.)`), 1236 ), 1237 rule.Or( 1238 rule.MatchingLanguages("Raku"), 1239 regexp.MustCompile(`(?m)^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)`), 1240 ), 1241 }, 1242 ".plist": &Heuristics{ 1243 rule.Or( 1244 rule.MatchingLanguages("XML Property List"), 1245 regexp.MustCompile(`(?m)<!DOCTYPE\s+plist`), 1246 ), 1247 rule.Always( 1248 rule.MatchingLanguages("OpenStep Property List"), 1249 ), 1250 }, 1251 ".pm": &Heuristics{ 1252 rule.Or( 1253 rule.MatchingLanguages("Perl"), 1254 regexp.MustCompile(`(?m)\buse\s+(?:strict\b|v?5\.)`), 1255 ), 1256 rule.Or( 1257 rule.MatchingLanguages("Raku"), 1258 regexp.MustCompile(`(?m)^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)`), 1259 ), 1260 rule.Or( 1261 rule.MatchingLanguages("X PixMap"), 1262 regexp.MustCompile(`(?m)^\s*\/\* XPM \*\/`), 1263 ), 1264 }, 1265 ".pod": &Heuristics{ 1266 rule.Or( 1267 rule.MatchingLanguages("Pod 6"), 1268 regexp.MustCompile(`(?m)^[\s&&[^\n]]*=(comment|begin pod|begin para|item\d+)`), 1269 ), 1270 rule.Always( 1271 rule.MatchingLanguages("Pod"), 1272 ), 1273 }, 1274 ".pp": &Heuristics{ 1275 rule.Or( 1276 rule.MatchingLanguages("Pascal"), 1277 regexp.MustCompile(`(?m)^\s*end[.;]`), 1278 ), 1279 rule.Or( 1280 rule.MatchingLanguages("Puppet"), 1281 regexp.MustCompile(`(?m)^\s+\w+\s+=>\s`), 1282 ), 1283 }, 1284 ".pro": &Heuristics{ 1285 rule.Or( 1286 rule.MatchingLanguages("Proguard"), 1287 regexp.MustCompile(`(?m)^-(include\b.*\.pro$|keep\b|keepclassmembers\b|keepattributes\b)`), 1288 ), 1289 rule.Or( 1290 rule.MatchingLanguages("Prolog"), 1291 regexp.MustCompile(`(?m)^[^\[#]+:-`), 1292 ), 1293 rule.Or( 1294 rule.MatchingLanguages("INI"), 1295 regexp.MustCompile(`(?m)last_client=`), 1296 ), 1297 rule.And( 1298 rule.MatchingLanguages("QMake"), 1299 rule.Or( 1300 rule.MatchingLanguages(""), 1301 regexp.MustCompile(`(?m)HEADERS`), 1302 ), 1303 rule.Or( 1304 rule.MatchingLanguages(""), 1305 regexp.MustCompile(`(?m)SOURCES`), 1306 ), 1307 ), 1308 rule.Or( 1309 rule.MatchingLanguages("IDL"), 1310 regexp.MustCompile(`(?m)^\s*function[ \w,]+$`), 1311 ), 1312 }, 1313 ".properties": &Heuristics{ 1314 rule.And( 1315 rule.MatchingLanguages("INI"), 1316 rule.Or( 1317 rule.MatchingLanguages(""), 1318 regexp.MustCompile(`(?m)^[^#!;][^=]*=`), 1319 ), 1320 rule.Or( 1321 rule.MatchingLanguages(""), 1322 regexp.MustCompile(`(?m)^[;\[]`), 1323 ), 1324 ), 1325 rule.And( 1326 rule.MatchingLanguages("Java Properties"), 1327 rule.Or( 1328 rule.MatchingLanguages(""), 1329 regexp.MustCompile(`(?m)^[^#!;][^=]*=`), 1330 ), 1331 rule.Or( 1332 rule.MatchingLanguages(""), 1333 regexp.MustCompile(`(?m)^[#!]`), 1334 ), 1335 ), 1336 rule.Or( 1337 rule.MatchingLanguages("INI"), 1338 regexp.MustCompile(`(?m)^[^#!;][^=]*=`), 1339 ), 1340 rule.Or( 1341 rule.MatchingLanguages("Java Properties"), 1342 regexp.MustCompile(`(?m)^[^#!][^:]*:`), 1343 ), 1344 }, 1345 ".q": &Heuristics{ 1346 rule.Or( 1347 rule.MatchingLanguages("q"), 1348 regexp.MustCompile(`(?m)((?i:[A-Z.][\w.]*:{)|(^|\n)\\(cd?|d|l|p|ts?) )`), 1349 ), 1350 rule.Or( 1351 rule.MatchingLanguages("HiveQL"), 1352 regexp.MustCompile(`(?m)(?i:SELECT\s+[\w*,]+\s+FROM|(CREATE|ALTER|DROP)\s(DATABASE|SCHEMA|TABLE))`), 1353 ), 1354 }, 1355 ".qs": &Heuristics{ 1356 rule.Or( 1357 rule.MatchingLanguages("Q#"), 1358 regexp.MustCompile(`(?m)^((\/{2,3})?\s*(namespace|operation)\b)`), 1359 ), 1360 rule.Or( 1361 rule.MatchingLanguages("Qt Script"), 1362 regexp.MustCompile(`(?m)(\w+\.prototype\.\w+|===|\bvar\b)`), 1363 ), 1364 }, 1365 ".r": &Heuristics{ 1366 rule.Or( 1367 rule.MatchingLanguages("Rebol"), 1368 regexp.MustCompile(`(?m)(?i:\bRebol\b)`), 1369 ), 1370 rule.Or( 1371 rule.MatchingLanguages("R"), 1372 regexp.MustCompile(`(?m)<-|^\s*#`), 1373 ), 1374 }, 1375 ".re": &Heuristics{ 1376 rule.Or( 1377 rule.MatchingLanguages("Reason"), 1378 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*$)`), 1379 ), 1380 rule.Or( 1381 rule.MatchingLanguages("C++"), 1382 regexp.MustCompile(`(?m)^\s*#(?:(?:if|ifdef|define|pragma)\s+\w|\s*include\s+<[^>]+>)|^\s*template\s*<`), 1383 ), 1384 }, 1385 ".res": &Heuristics{ 1386 rule.Or( 1387 rule.MatchingLanguages("ReScript"), 1388 regexp.MustCompile(`(?m)^\s*(let|module|type)\s+\w*\s+=\s+|^\s*(?:include|open)\s+\w+\s*$`), 1389 ), 1390 }, 1391 ".rno": &Heuristics{ 1392 rule.Or( 1393 rule.MatchingLanguages("Roff"), 1394 regexp.MustCompile(`(?m)^\.\\" `), 1395 ), 1396 }, 1397 ".rpy": &Heuristics{ 1398 rule.Or( 1399 rule.MatchingLanguages("Python"), 1400 regexp.MustCompile(`(?m)(?m:^(import|from|class|def)\s)`), 1401 ), 1402 rule.Always( 1403 rule.MatchingLanguages("Ren'Py"), 1404 ), 1405 }, 1406 ".rs": &Heuristics{ 1407 rule.Or( 1408 rule.MatchingLanguages("Rust"), 1409 regexp.MustCompile(`(?m)^(use |fn |mod |pub |macro_rules|impl|#!?\[)`), 1410 ), 1411 rule.Or( 1412 rule.MatchingLanguages("RenderScript"), 1413 regexp.MustCompile(`(?m)#include|#pragma\s+(rs|version)|__attribute__`), 1414 ), 1415 rule.Or( 1416 rule.MatchingLanguages("XML"), 1417 regexp.MustCompile(`(?m)^\s*<\?xml`), 1418 ), 1419 }, 1420 ".s": &Heuristics{ 1421 rule.Or( 1422 rule.MatchingLanguages("Motorola 68K Assembly"), 1423 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`), 1424 ), 1425 }, 1426 ".sc": &Heuristics{ 1427 rule.Or( 1428 rule.MatchingLanguages("SuperCollider"), 1429 regexp.MustCompile(`(?m)(?i:\^(this|super)\.|^\s*~\w+\s*=\.)`), 1430 ), 1431 rule.Or( 1432 rule.MatchingLanguages("Scala"), 1433 regexp.MustCompile(`(?m)(^\s*import (scala|java)\.|^\s*class\b)`), 1434 ), 1435 }, 1436 ".sol": &Heuristics{ 1437 rule.Or( 1438 rule.MatchingLanguages("Gerber Image"), 1439 regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*\r?\n`), 1440 ), 1441 }, 1442 ".sql": &Heuristics{ 1443 rule.Or( 1444 rule.MatchingLanguages("PLpgSQL"), 1445 regexp.MustCompile(`(?m)(?i:^\\i\b|AS\s+\$\$|LANGUAGE\s+'?plpgsql'?|BEGIN(\s+WORK)?\s*;)`), 1446 ), 1447 rule.Or( 1448 rule.MatchingLanguages("SQLPL"), 1449 regexp.MustCompile(`(?m)(?i:ALTER\s+MODULE|MODE\s+DB2SQL|\bSYS(CAT|PROC)\.|ASSOCIATE\s+RESULT\s+SET|\bEND!\s*$)`), 1450 ), 1451 rule.Or( 1452 rule.MatchingLanguages("PLSQL"), 1453 regexp.MustCompile(`(?m)(?i:\$\$PLSQL_|XMLTYPE|systimestamp|\.nextval|CONNECT\s+BY|AUTHID\s+(DEFINER|CURRENT_USER)|constructor\W+function)`), 1454 ), 1455 rule.Or( 1456 rule.MatchingLanguages("TSQL"), 1457 regexp.MustCompile(`(?m)(?i:^\s*GO\b|BEGIN(\s+TRY|\s+CATCH)|OUTPUT\s+INSERTED|DECLARE\s+@|\[dbo\])`), 1458 ), 1459 rule.Always( 1460 rule.MatchingLanguages("SQL"), 1461 ), 1462 }, 1463 ".srt": &Heuristics{ 1464 rule.Or( 1465 rule.MatchingLanguages("SubRip Text"), 1466 regexp.MustCompile(`(?m)^(\d{2}:\d{2}:\d{2},\d{3})\s*(-->)\s*(\d{2}:\d{2}:\d{2},\d{3})$`), 1467 ), 1468 }, 1469 ".st": &Heuristics{ 1470 rule.Or( 1471 rule.MatchingLanguages("Smalltalk"), 1472 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*\[`), 1473 ), 1474 }, 1475 ".t": &Heuristics{ 1476 rule.Or( 1477 rule.MatchingLanguages("Perl"), 1478 regexp.MustCompile(`(?m)\buse\s+(?:strict\b|v?5\.)`), 1479 ), 1480 rule.Or( 1481 rule.MatchingLanguages("Raku"), 1482 regexp.MustCompile(`(?m)^\s*(?:use\s+v6\b|\bmodule\b|\bmy\s+class\b)`), 1483 ), 1484 rule.Or( 1485 rule.MatchingLanguages("Turing"), 1486 regexp.MustCompile(`(?m)^\s*%[ \t]+|^\s*var\s+\w+(\s*:\s*\w+)?\s*:=\s*\w+`), 1487 ), 1488 }, 1489 ".toc": &Heuristics{ 1490 rule.Or( 1491 rule.MatchingLanguages("World of Warcraft Addon Data"), 1492 regexp.MustCompile(`(?m)^## |@no-lib-strip@`), 1493 ), 1494 rule.Or( 1495 rule.MatchingLanguages("TeX"), 1496 regexp.MustCompile(`(?m)^\\(contentsline|defcounter|beamer|boolfalse)`), 1497 ), 1498 }, 1499 ".ts": &Heuristics{ 1500 rule.Or( 1501 rule.MatchingLanguages("XML"), 1502 regexp.MustCompile(`(?m)<TS\b`), 1503 ), 1504 rule.Always( 1505 rule.MatchingLanguages("TypeScript"), 1506 ), 1507 }, 1508 ".tst": &Heuristics{ 1509 rule.Or( 1510 rule.MatchingLanguages("GAP"), 1511 regexp.MustCompile(`(?m)gap> `), 1512 ), 1513 rule.Always( 1514 rule.MatchingLanguages("Scilab"), 1515 ), 1516 }, 1517 ".tsx": &Heuristics{ 1518 rule.Or( 1519 rule.MatchingLanguages("TSX"), 1520 regexp.MustCompile(`(?m)^\s*(import.+(from\s+|require\()['"]react|\/\/\/\s*<reference\s)`), 1521 ), 1522 rule.Or( 1523 rule.MatchingLanguages("XML"), 1524 regexp.MustCompile(`(?m)(?i:^\s*<\?xml\s+version)`), 1525 ), 1526 }, 1527 ".txt": &Heuristics{ 1528 rule.Always( 1529 rule.MatchingLanguages("Text"), 1530 ), 1531 }, 1532 ".url": &Heuristics{}, 1533 ".v": &Heuristics{ 1534 rule.Or( 1535 rule.MatchingLanguages("Coq"), 1536 regexp.MustCompile(`(?m)(?:^|\s)(?:Proof|Qed)\.(?:$|\s)|(?:^|\s)Require[ \t]+(Import|Export)\s`), 1537 ), 1538 rule.Or( 1539 rule.MatchingLanguages("Verilog"), 1540 regexp.MustCompile(`(?m)^[ \t]*module\s+[^\s()]+\s+\#?\(|^[ \t]*`+"`"+`(?:define|ifdef|ifndef|include|timescale)|^[ \t]*always[ \t]+@|^[ \t]*initial[ \t]+(begin|@)`), 1541 ), 1542 rule.Or( 1543 rule.MatchingLanguages("V"), 1544 regexp.MustCompile(`(?m)\$(?:if|else)[ \t]|^[ \t]*fn\s+[^\s()]+\(.*?\).*?\{|^[ \t]*for\s*\{`), 1545 ), 1546 }, 1547 ".vba": &Heuristics{ 1548 rule.Or( 1549 rule.MatchingLanguages("Vim Script"), 1550 regexp.MustCompile(`(?m)^UseVimball`), 1551 ), 1552 rule.Always( 1553 rule.MatchingLanguages("VBA"), 1554 ), 1555 }, 1556 ".w": &Heuristics{ 1557 rule.Or( 1558 rule.MatchingLanguages("OpenEdge ABL"), 1559 regexp.MustCompile(`(?m)&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS`), 1560 ), 1561 rule.Or( 1562 rule.MatchingLanguages("CWeb"), 1563 regexp.MustCompile(`(?m)^@(<|\w+\.)`), 1564 ), 1565 }, 1566 ".x": &Heuristics{ 1567 rule.Or( 1568 rule.MatchingLanguages("DirectX 3D File"), 1569 regexp.MustCompile(`(?m)^xof 030(2|3)(?:txt|bin|tzip|bzip)\b`), 1570 ), 1571 rule.Or( 1572 rule.MatchingLanguages("RPC"), 1573 regexp.MustCompile(`(?m)\b(program|version)\s+\w+\s*{|\bunion\s+\w+\s+switch\s*\(`), 1574 ), 1575 rule.Or( 1576 rule.MatchingLanguages("Logos"), 1577 regexp.MustCompile(`(?m)^%(end|ctor|hook|group)\b`), 1578 ), 1579 rule.Or( 1580 rule.MatchingLanguages("Linker Script"), 1581 regexp.MustCompile(`(?m)OUTPUT_ARCH\(|OUTPUT_FORMAT\(|SECTIONS`), 1582 ), 1583 }, 1584 ".yaml": &Heuristics{ 1585 rule.Or( 1586 rule.MatchingLanguages("MiniYAML"), 1587 regexp.MustCompile(`(?m)^\t+.*?[^\s:].*?:`), 1588 ), 1589 rule.Always( 1590 rule.MatchingLanguages("YAML"), 1591 ), 1592 }, 1593 ".yy": &Heuristics{ 1594 rule.Or( 1595 rule.MatchingLanguages("JSON"), 1596 regexp.MustCompile(`(?m)\"modelName\"\:\s*\"GM`), 1597 ), 1598 rule.Always( 1599 rule.MatchingLanguages("Yacc"), 1600 ), 1601 }, 1602 }