github-linguist 7.29.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +7 -3
  3. data/bin/github-linguist +6 -3
  4. data/grammars/etc.json +1 -1
  5. data/grammars/inline.edgeql.json +1 -1
  6. data/grammars/inline.graphql.json +1 -1
  7. data/grammars/inline.peggy.json +1 -0
  8. data/grammars/markdown.gleam.codeblock.json +1 -0
  9. data/grammars/markdown.move.codeblock.json +1 -1
  10. data/grammars/markdown.rego.codeblock.json +1 -0
  11. data/grammars/mdx.move.codeblock.json +1 -0
  12. data/grammars/source.8xp.json +1 -1
  13. data/grammars/source.Caddyfile-test.json +1 -0
  14. data/grammars/source.Caddyfile.json +1 -0
  15. data/grammars/source.abl.json +1 -1
  16. data/grammars/source.astro.json +1 -1
  17. data/grammars/source.bicep.json +1 -1
  18. data/grammars/source.bms.json +1 -1
  19. data/grammars/source.bqn.json +1 -0
  20. data/grammars/source.brs.json +1 -1
  21. data/grammars/source.cairo.json +1 -1
  22. data/grammars/source.cairo0.json +1 -0
  23. data/grammars/source.cl.json +1 -1
  24. data/grammars/source.clar.json +1 -1
  25. data/grammars/source.cmd.json +1 -1
  26. data/grammars/source.cobol.json +1 -1
  27. data/grammars/source.commonlisp.json +1 -1
  28. data/grammars/source.cs.json +1 -1
  29. data/grammars/source.curlrc.json +1 -1
  30. data/grammars/source.curry.json +1 -1
  31. data/grammars/source.cylc.json +1 -0
  32. data/grammars/source.d2.json +1 -1
  33. data/grammars/source.dart.json +1 -1
  34. data/grammars/source.dds.dspf.json +1 -1
  35. data/grammars/source.dds.icff.json +1 -1
  36. data/grammars/source.dds.lf.json +1 -1
  37. data/grammars/source.dds.pf.json +1 -1
  38. data/grammars/source.dds.prtf.json +1 -1
  39. data/grammars/source.dune.json +1 -0
  40. data/grammars/source.elvish.json +1 -1
  41. data/grammars/source.firrtl.json +1 -0
  42. data/grammars/source.fsharp.json +1 -1
  43. data/grammars/source.gdscript.json +1 -1
  44. data/grammars/source.generic-db.json +1 -1
  45. data/grammars/source.gitconfig.json +1 -1
  46. data/grammars/source.gjs.json +1 -1
  47. data/grammars/source.gleam.json +1 -1
  48. data/grammars/source.gts.json +1 -1
  49. data/grammars/source.hcl.json +1 -1
  50. data/grammars/source.hcl.terraform.json +1 -1
  51. data/grammars/source.hgignore.json +1 -1
  52. data/grammars/source.hosts.json +1 -1
  53. data/grammars/source.hx.json +1 -1
  54. data/grammars/source.iCalendar.json +1 -0
  55. data/grammars/source.ice.json +1 -1
  56. data/grammars/source.julia.json +1 -1
  57. data/grammars/source.just.json +1 -1
  58. data/grammars/source.kotlin.json +1 -1
  59. data/grammars/source.lcb.json +1 -0
  60. data/grammars/source.lilypond.json +1 -1
  61. data/grammars/source.livecodescript.json +1 -0
  62. data/grammars/source.lua.json +1 -1
  63. data/grammars/source.luau.json +1 -0
  64. data/grammars/source.m2.json +1 -1
  65. data/grammars/source.markdown.caddy.codeblock.json +1 -0
  66. data/grammars/source.matlab.json +1 -1
  67. data/grammars/source.mcfunction.json +1 -1
  68. data/grammars/source.mdx.json +1 -1
  69. data/grammars/source.mo.json +1 -1
  70. data/grammars/source.mojo.json +1 -1
  71. data/grammars/source.move.json +1 -1
  72. data/grammars/source.nanorc.json +1 -1
  73. data/grammars/source.nim.json +1 -1
  74. data/grammars/source.nr.json +1 -0
  75. data/grammars/source.nushell.json +1 -1
  76. data/grammars/source.odin.json +1 -1
  77. data/grammars/source.p4.json +1 -1
  78. data/grammars/source.peggy.json +1 -0
  79. data/grammars/source.pkl.json +1 -0
  80. data/grammars/source.polar.json +1 -1
  81. data/grammars/source.powerbuilder.json +1 -0
  82. data/grammars/source.qsharp.json +1 -1
  83. data/grammars/source.rascal.json +1 -1
  84. data/grammars/source.rego.json +1 -1
  85. data/grammars/source.rescript.json +1 -1
  86. data/grammars/source.ron.json +1 -0
  87. data/grammars/source.rpgle.json +1 -1
  88. data/grammars/source.rust.json +1 -1
  89. data/grammars/source.sentinel.json +1 -1
  90. data/grammars/source.solidity.json +1 -1
  91. data/grammars/source.sourcepawn.json +1 -1
  92. data/grammars/source.sqf.json +1 -1
  93. data/grammars/source.stan.json +1 -1
  94. data/grammars/source.swift.json +1 -1
  95. data/grammars/source.sy.json +1 -1
  96. data/grammars/source.templ.json +1 -0
  97. data/grammars/source.vba.json +1 -1
  98. data/grammars/source.vcard.json +1 -0
  99. data/grammars/source.wdl.json +1 -1
  100. data/grammars/source.wsd.json +1 -1
  101. data/grammars/text.adblock.json +1 -1
  102. data/grammars/text.crontab.json +1 -0
  103. data/grammars/text.html.jte.json +1 -0
  104. data/grammars/text.html.statamic.json +1 -1
  105. data/grammars/text.md.json +1 -1
  106. data/grammars/text.mdx.astro.codeblock.json +1 -0
  107. data/grammars/text.valve-cfg.json +1 -1
  108. data/grammars/version +1 -1
  109. data/lib/linguist/VERSION +1 -1
  110. data/lib/linguist/classifier.rb +315 -106
  111. data/lib/linguist/generated.rb +33 -4
  112. data/lib/linguist/generic.yml +1 -0
  113. data/lib/linguist/heuristics.rb +6 -6
  114. data/lib/linguist/heuristics.yml +63 -4
  115. data/lib/linguist/languages.json +1 -1
  116. data/lib/linguist/languages.yml +224 -4
  117. data/lib/linguist/repository.rb +8 -6
  118. data/lib/linguist/samples.json +1 -1
  119. data/lib/linguist/samples.rb +9 -1
  120. data/lib/linguist/sha256.rb +1 -1
  121. metadata +29 -7
  122. data/grammars/inline.graphql.rb.json +0 -1
  123. data/grammars/markdown.mcfunction.codeblock.json +0 -1
  124. data/grammars/mdx.LANGUAGE.codeblock.json +0 -1
  125. data/grammars/source.terraform.json +0 -1
@@ -498,6 +498,18 @@ Awk:
498
498
  tm_scope: source.awk
499
499
  ace_mode: text
500
500
  language_id: 28
501
+ B4X:
502
+ type: programming
503
+ color: "#00e4ff"
504
+ extensions:
505
+ - ".bas"
506
+ tm_scope: source.vba
507
+ aliases:
508
+ - basic for android
509
+ ace_mode: text
510
+ codemirror_mode: vb
511
+ codemirror_mime_type: text/x-vb
512
+ language_id: 96642275
501
513
  BASIC:
502
514
  type: programming
503
515
  extensions:
@@ -506,6 +518,14 @@ BASIC:
506
518
  ace_mode: text
507
519
  color: "#ff0000"
508
520
  language_id: 28923963
521
+ BQN:
522
+ type: programming
523
+ color: "#2b7067"
524
+ extensions:
525
+ - ".bqn"
526
+ tm_scope: source.bqn
527
+ ace_mode: text
528
+ language_id: 330386870
509
529
  Ballerina:
510
530
  type: programming
511
531
  extensions:
@@ -931,6 +951,18 @@ Cabal Config:
931
951
  codemirror_mime_type: text/x-haskell
932
952
  tm_scope: source.cabal
933
953
  language_id: 677095381
954
+ Caddyfile:
955
+ type: data
956
+ color: "#22b638"
957
+ aliases:
958
+ - Caddy
959
+ extensions:
960
+ - ".caddyfile"
961
+ filenames:
962
+ - Caddyfile
963
+ ace_mode: text
964
+ tm_scope: source.Caddyfile
965
+ language_id: 615465151
934
966
  Cadence:
935
967
  type: programming
936
968
  color: "#00ef8b"
@@ -946,7 +978,17 @@ Cairo:
946
978
  tm_scope: source.cairo
947
979
  extensions:
948
980
  - ".cairo"
981
+ group: Cairo
949
982
  language_id: 620599567
983
+ Cairo Zero:
984
+ type: programming
985
+ color: "#ff4a48"
986
+ ace_mode: text
987
+ tm_scope: source.cairo0
988
+ extensions:
989
+ - ".cairo"
990
+ group: Cairo
991
+ language_id: 891399890
950
992
  CameLIGO:
951
993
  type: programming
952
994
  color: "#3be133"
@@ -966,6 +1008,16 @@ Cap'n Proto:
966
1008
  - ".capnp"
967
1009
  ace_mode: text
968
1010
  language_id: 52
1011
+ Carbon:
1012
+ type: programming
1013
+ color: "#222222"
1014
+ extensions:
1015
+ - ".carbon"
1016
+ ace_mode: golang
1017
+ codemirror_mode: go
1018
+ codemirror_mime_type: text/x-go
1019
+ tm_scope: source.v
1020
+ language_id: 55627273
969
1021
  CartoCSS:
970
1022
  type: programming
971
1023
  aliases:
@@ -1379,6 +1431,17 @@ Cycript:
1379
1431
  codemirror_mode: javascript
1380
1432
  codemirror_mime_type: text/javascript
1381
1433
  language_id: 78
1434
+ Cylc:
1435
+ type: data
1436
+ color: "#00b3fd"
1437
+ extensions:
1438
+ - ".cylc"
1439
+ filenames:
1440
+ - suite.rc
1441
+ tm_scope: source.cylc
1442
+ ace_mode: ini
1443
+ group: INI
1444
+ language_id: 476447814
1382
1445
  Cypher:
1383
1446
  type: programming
1384
1447
  color: "#34c0eb"
@@ -1606,6 +1669,14 @@ Dotenv:
1606
1669
  tm_scope: source.dotenv
1607
1670
  ace_mode: text
1608
1671
  language_id: 111148035
1672
+ Dune:
1673
+ type: programming
1674
+ ace_mode: lisp
1675
+ filenames:
1676
+ - dune-project
1677
+ tm_scope: source.dune
1678
+ color: "#89421e"
1679
+ language_id: 754574151
1609
1680
  Dylan:
1610
1681
  type: programming
1611
1682
  color: "#6c616e"
@@ -1951,6 +2022,14 @@ FIGlet Font:
1951
2022
  tm_scope: source.figfont
1952
2023
  ace_mode: text
1953
2024
  language_id: 686129783
2025
+ FIRRTL:
2026
+ type: programming
2027
+ color: "#2f632f"
2028
+ extensions:
2029
+ - ".fir"
2030
+ tm_scope: source.firrtl
2031
+ ace_mode: text
2032
+ language_id: 906694254
1954
2033
  FLUX:
1955
2034
  type: programming
1956
2035
  color: "#88ccff"
@@ -2689,7 +2768,7 @@ HCL:
2689
2768
  ace_mode: ruby
2690
2769
  codemirror_mode: ruby
2691
2770
  codemirror_mime_type: text/x-ruby
2692
- tm_scope: source.terraform
2771
+ tm_scope: source.hcl
2693
2772
  language_id: 144
2694
2773
  HLSL:
2695
2774
  type: programming
@@ -2918,6 +2997,7 @@ Hosts File:
2918
2997
  filenames:
2919
2998
  - HOSTS
2920
2999
  - hosts
3000
+ - hosts.txt
2921
3001
  aliases:
2922
3002
  - hosts
2923
3003
  tm_scope: source.hosts
@@ -3211,6 +3291,7 @@ JSON:
3211
3291
  - ".tern-config"
3212
3292
  - ".tern-project"
3213
3293
  - ".watchmanconfig"
3294
+ - MODULE.bazel.lock
3214
3295
  - Pipfile.lock
3215
3296
  - composer.lock
3216
3297
  - deno.lock
@@ -3232,6 +3313,7 @@ JSON with Comments:
3232
3313
  - ".code-snippets"
3233
3314
  - ".code-workspace"
3234
3315
  - ".sublime-build"
3316
+ - ".sublime-color-scheme"
3235
3317
  - ".sublime-commands"
3236
3318
  - ".sublime-completions"
3237
3319
  - ".sublime-keymap"
@@ -3345,6 +3427,17 @@ Java Server Pages:
3345
3427
  codemirror_mode: htmlembedded
3346
3428
  codemirror_mime_type: application/x-jsp
3347
3429
  language_id: 182
3430
+ Java Template Engine:
3431
+ type: programming
3432
+ color: "#2A6277"
3433
+ group: Java
3434
+ aliases:
3435
+ - jte
3436
+ extensions:
3437
+ - ".jte"
3438
+ ace_mode: text
3439
+ tm_scope: text.html.jte
3440
+ language_id: 599494012
3348
3441
  JavaScript:
3349
3442
  type: programming
3350
3443
  tm_scope: source.js
@@ -3497,6 +3590,13 @@ Julia:
3497
3590
  codemirror_mode: julia
3498
3591
  codemirror_mime_type: text/x-julia
3499
3592
  language_id: 184
3593
+ Julia REPL:
3594
+ type: programming
3595
+ color: "#a270ba"
3596
+ tm_scope: source.julia.console
3597
+ group: Julia
3598
+ ace_mode: text
3599
+ language_id: 220689142
3500
3600
  Jupyter Notebook:
3501
3601
  type: markup
3502
3602
  ace_mode: json
@@ -3518,9 +3618,14 @@ Just:
3518
3618
  color: "#384d54"
3519
3619
  tm_scope: source.just
3520
3620
  filenames:
3621
+ - ".JUSTFILE"
3622
+ - ".Justfile"
3623
+ - ".justfile"
3521
3624
  - JUSTFILE
3522
3625
  - Justfile
3523
3626
  - justfile
3627
+ extensions:
3628
+ - ".just"
3524
3629
  ace_mode: text
3525
3630
  language_id: 128447695
3526
3631
  KRL:
@@ -3858,6 +3963,14 @@ Literate Haskell:
3858
3963
  codemirror_mode: haskell-literate
3859
3964
  codemirror_mime_type: text/x-literate-haskell
3860
3965
  language_id: 207
3966
+ LiveCode Script:
3967
+ type: programming
3968
+ color: "#0c5ba5"
3969
+ extensions:
3970
+ - ".livecodescript"
3971
+ tm_scope: source.livecodescript
3972
+ ace_mode: text
3973
+ language_id: 891017
3861
3974
  LiveScript:
3862
3975
  type: programming
3863
3976
  color: "#499886"
@@ -3931,6 +4044,18 @@ Lua:
3931
4044
  interpreters:
3932
4045
  - lua
3933
4046
  language_id: 213
4047
+ Luau:
4048
+ type: programming
4049
+ tm_scope: source.luau
4050
+ ace_mode: lua
4051
+ codemirror_mode: lua
4052
+ codemirror_mime_type: text/x-lua
4053
+ color: "#00A2FF"
4054
+ extensions:
4055
+ - ".luau"
4056
+ interpreters:
4057
+ - luau
4058
+ language_id: 365050359
3934
4059
  M:
3935
4060
  type: programming
3936
4061
  aliases:
@@ -4466,6 +4591,14 @@ NL:
4466
4591
  tm_scope: none
4467
4592
  ace_mode: text
4468
4593
  language_id: 241
4594
+ NMODL:
4595
+ type: programming
4596
+ color: "#00356B"
4597
+ extensions:
4598
+ - ".mod"
4599
+ tm_scope: none
4600
+ ace_mode: text
4601
+ language_id: 136456478
4469
4602
  NPM Config:
4470
4603
  type: data
4471
4604
  color: "#cb3837"
@@ -4631,6 +4764,18 @@ Nix:
4631
4764
  tm_scope: source.nix
4632
4765
  ace_mode: nix
4633
4766
  language_id: 252
4767
+ Noir:
4768
+ type: programming
4769
+ aliases:
4770
+ - nargo
4771
+ ace_mode: rust
4772
+ codemirror_mode: rust
4773
+ codemirror_mime_type: text/x-rustsrc
4774
+ extensions:
4775
+ - ".nr"
4776
+ color: "#2f1f49"
4777
+ tm_scope: source.nr
4778
+ language_id: 813068465
4634
4779
  Nu:
4635
4780
  type: programming
4636
4781
  color: "#c9df40"
@@ -5025,7 +5170,8 @@ PEG.js:
5025
5170
  color: "#234d6b"
5026
5171
  extensions:
5027
5172
  - ".pegjs"
5028
- tm_scope: source.pegjs
5173
+ - ".peggy"
5174
+ tm_scope: source.peggy
5029
5175
  ace_mode: javascript
5030
5176
  codemirror_mode: javascript
5031
5177
  codemirror_mime_type: text/javascript
@@ -5291,6 +5437,16 @@ Pip Requirements:
5291
5437
  ace_mode: text
5292
5438
  tm_scope: source.pip-requirements
5293
5439
  language_id: 684385621
5440
+ Pkl:
5441
+ type: programming
5442
+ color: "#6b9543"
5443
+ extensions:
5444
+ - ".pkl"
5445
+ interpreters:
5446
+ - pkl
5447
+ tm_scope: source.pkl
5448
+ ace_mode: text
5449
+ language_id: 288822799
5294
5450
  PlantUML:
5295
5451
  type: data
5296
5452
  color: "#fbbd16"
@@ -5386,7 +5542,7 @@ PowerBuilder:
5386
5542
  - ".sra"
5387
5543
  - ".sru"
5388
5544
  - ".srw"
5389
- tm_scope: none
5545
+ tm_scope: source.powerbuilder
5390
5546
  ace_mode: text
5391
5547
  language_id: 292
5392
5548
  PowerShell:
@@ -5768,6 +5924,14 @@ RMarkdown:
5768
5924
  - ".rmd"
5769
5925
  tm_scope: text.md
5770
5926
  language_id: 313
5927
+ RON:
5928
+ type: data
5929
+ color: "#a62c00"
5930
+ extensions:
5931
+ - ".ron"
5932
+ ace_mode: rust
5933
+ tm_scope: source.ron
5934
+ language_id: 587855233
5771
5935
  RPC:
5772
5936
  type: programming
5773
5937
  aliases:
@@ -6043,6 +6207,7 @@ RobotFramework:
6043
6207
  color: "#00c0b5"
6044
6208
  extensions:
6045
6209
  - ".robot"
6210
+ - ".resource"
6046
6211
  tm_scope: text.robot
6047
6212
  ace_mode: text
6048
6213
  language_id: 324
@@ -6535,6 +6700,7 @@ Shell:
6535
6700
  - shell-script
6536
6701
  - bash
6537
6702
  - zsh
6703
+ - envrc
6538
6704
  extensions:
6539
6705
  - ".sh"
6540
6706
  - ".bash"
@@ -6557,6 +6723,7 @@ Shell:
6557
6723
  - ".bash_profile"
6558
6724
  - ".bashrc"
6559
6725
  - ".cshrc"
6726
+ - ".envrc"
6560
6727
  - ".flaskenv"
6561
6728
  - ".kshrc"
6562
6729
  - ".login"
@@ -6992,10 +7159,12 @@ TOML:
6992
7159
  - ".toml"
6993
7160
  filenames:
6994
7161
  - Cargo.lock
7162
+ - Cargo.toml.orig
6995
7163
  - Gopkg.lock
6996
7164
  - Pipfile
6997
7165
  - pdm.lock
6998
7166
  - poetry.lock
7167
+ - uv.lock
6999
7168
  tm_scope: source.toml
7000
7169
  ace_mode: toml
7001
7170
  codemirror_mode: toml
@@ -7016,6 +7185,9 @@ TSV:
7016
7185
  tm_scope: source.generic-db
7017
7186
  extensions:
7018
7187
  - ".tsv"
7188
+ - ".vcf"
7189
+ aliases:
7190
+ - tab-seperated values
7019
7191
  language_id: 1035892117
7020
7192
  TSX:
7021
7193
  type: programming
@@ -7283,6 +7455,7 @@ TypeScript:
7283
7455
  interpreters:
7284
7456
  - deno
7285
7457
  - ts-node
7458
+ - tsx
7286
7459
  extensions:
7287
7460
  - ".ts"
7288
7461
  - ".cts"
@@ -7499,6 +7672,7 @@ Vim Script:
7499
7672
  - vim
7500
7673
  - viml
7501
7674
  - nvim
7675
+ - vimscript
7502
7676
  extensions:
7503
7677
  - ".vim"
7504
7678
  - ".vba"
@@ -7555,7 +7729,7 @@ Visual Basic 6.0:
7555
7729
  - ".ctl"
7556
7730
  - ".Dsr"
7557
7731
  - ".frm"
7558
- tm_scope: source.vbnet
7732
+ tm_scope: source.vba
7559
7733
  aliases:
7560
7734
  - vb6
7561
7735
  - vb 6
@@ -8182,6 +8356,7 @@ Zig:
8182
8356
  color: "#ec915c"
8183
8357
  extensions:
8184
8358
  - ".zig"
8359
+ - ".zig.zon"
8185
8360
  tm_scope: source.zig
8186
8361
  ace_mode: text
8187
8362
  language_id: 646424281
@@ -8206,6 +8381,17 @@ cURL Config:
8206
8381
  tm_scope: source.curlrc
8207
8382
  ace_mode: text
8208
8383
  language_id: 992375436
8384
+ crontab:
8385
+ type: data
8386
+ color: "#ead7ac"
8387
+ aliases:
8388
+ - cron
8389
+ - cron table
8390
+ filenames:
8391
+ - crontab
8392
+ tm_scope: text.crontab
8393
+ ace_mode: tcl
8394
+ language_id: 705203557
8209
8395
  desktop:
8210
8396
  type: data
8211
8397
  extensions:
@@ -8266,6 +8452,19 @@ hoon:
8266
8452
  extensions:
8267
8453
  - ".hoon"
8268
8454
  language_id: 560883276
8455
+ iCalendar:
8456
+ type: data
8457
+ color: "#ec564c"
8458
+ extensions:
8459
+ - ".ics"
8460
+ - ".ical"
8461
+ tm_scope: source.iCalendar
8462
+ aliases:
8463
+ - iCal
8464
+ ace_mode: properties
8465
+ codemirror_mode: properties
8466
+ codemirror_mime_type: text/x-properties
8467
+ language_id: 98384424
8269
8468
  jq:
8270
8469
  color: "#c7254e"
8271
8470
  ace_mode: text
@@ -8388,6 +8587,27 @@ sed:
8388
8587
  ace_mode: text
8389
8588
  tm_scope: source.sed
8390
8589
  language_id: 847830017
8590
+ templ:
8591
+ type: markup
8592
+ color: "#66D0DD"
8593
+ extensions:
8594
+ - ".templ"
8595
+ ace_mode: text
8596
+ tm_scope: source.templ
8597
+ language_id: 795579337
8598
+ vCard:
8599
+ type: data
8600
+ color: "#ee2647"
8601
+ extensions:
8602
+ - ".vcf"
8603
+ tm_scope: source.vcard
8604
+ aliases:
8605
+ - virtual contact file
8606
+ - electronic business card
8607
+ ace_mode: properties
8608
+ codemirror_mode: properties
8609
+ codemirror_mime_type: text/x-properties
8610
+ language_id: 851476558
8391
8611
  wisp:
8392
8612
  type: programming
8393
8613
  ace_mode: clojure
@@ -10,10 +10,12 @@ module Linguist
10
10
  class Repository
11
11
  attr_reader :repository
12
12
 
13
+ MAX_TREE_SIZE = 100_000
14
+
13
15
  # Public: Create a new Repository based on the stats of
14
16
  # an existing one
15
- def self.incremental(repo, commit_oid, old_commit_oid, old_stats)
16
- repo = self.new(repo, commit_oid)
17
+ def self.incremental(repo, commit_oid, old_commit_oid, old_stats, max_tree_size = MAX_TREE_SIZE)
18
+ repo = self.new(repo, commit_oid, max_tree_size)
17
19
  repo.load_existing_stats(old_commit_oid, old_stats)
18
20
  repo
19
21
  end
@@ -24,11 +26,13 @@ module Linguist
24
26
  # repo - a Rugged::Repository object
25
27
  # commit_oid - the sha1 of the commit that will be analyzed;
26
28
  # this is usually the master branch
29
+ # max_tree_size - the maximum tree size to consider for analysis (default: MAX_TREE_SIZE)
27
30
  #
28
31
  # Returns a Repository
29
- def initialize(repo, commit_oid)
32
+ def initialize(repo, commit_oid, max_tree_size = MAX_TREE_SIZE)
30
33
  @repository = repo
31
34
  @commit_oid = commit_oid
35
+ @max_tree_size = max_tree_size
32
36
 
33
37
  @old_commit_oid = nil
34
38
  @old_stats = nil
@@ -129,10 +133,8 @@ module Linguist
129
133
  end
130
134
 
131
135
  protected
132
- MAX_TREE_SIZE = 100_000
133
-
134
136
  def compute_stats(old_commit_oid, cache = nil)
135
- return {} if current_tree.count_recursive(MAX_TREE_SIZE) >= MAX_TREE_SIZE
137
+ return {} if current_tree.count_recursive(@max_tree_size) >= @max_tree_size
136
138
 
137
139
  old_tree = old_commit_oid && Rugged::Commit.lookup(repository, old_commit_oid).tree
138
140
  read_index