github-linguist 9.5.0 → 9.6.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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/etc.json +1 -1
  3. data/grammars/markdown.mojo.codeblock.json +1 -0
  4. data/grammars/markdown.move.codeblock.json +1 -1
  5. data/grammars/source.4dm.json +1 -1
  6. data/grammars/source.abl.json +1 -1
  7. data/grammars/source.apex.json +1 -1
  8. data/grammars/source.baml-jinja.json +1 -0
  9. data/grammars/source.baml.json +1 -0
  10. data/grammars/source.bb.json +1 -1
  11. data/grammars/source.brs.embedded.xml.json +1 -0
  12. data/grammars/source.bsl.json +1 -1
  13. data/grammars/source.c++.json +1 -1
  14. data/grammars/source.c.json +1 -1
  15. data/grammars/source.c3.json +1 -1
  16. data/grammars/source.cel.json +1 -0
  17. data/grammars/source.clarion.json +1 -1
  18. data/grammars/source.cmake.json +1 -1
  19. data/grammars/source.cs.json +1 -1
  20. data/grammars/source.csv.json +1 -1
  21. data/grammars/source.curlrc.json +1 -1
  22. data/grammars/source.daslang.json +1 -1
  23. data/grammars/source.data-weave.json +1 -1
  24. data/grammars/source.emacs.lisp.json +1 -1
  25. data/grammars/source.gdscript.json +1 -1
  26. data/grammars/source.gimprc.json +1 -0
  27. data/grammars/source.gimpres.json +1 -0
  28. data/grammars/source.graphql.json +1 -1
  29. data/grammars/source.gtkrc.json +1 -0
  30. data/grammars/source.hack.json +1 -1
  31. data/grammars/source.hosts.json +1 -1
  32. data/grammars/source.il.json +1 -0
  33. data/grammars/source.ink.json +1 -1
  34. data/grammars/source.interp.json +1 -0
  35. data/grammars/source.jac.json +1 -1
  36. data/grammars/source.jactoml.json +1 -0
  37. data/grammars/source.jai.json +1 -1
  38. data/grammars/source.just.json +1 -1
  39. data/grammars/source.lean4.markdown.json +1 -1
  40. data/grammars/source.luau.json +1 -1
  41. data/grammars/source.m2.json +1 -1
  42. data/grammars/source.m3u.json +1 -1
  43. data/grammars/source.matlab.json +1 -1
  44. data/grammars/source.mdx.astro.json +1 -1
  45. data/grammars/source.mo.json +1 -1
  46. data/grammars/source.mojo.json +1 -1
  47. data/grammars/source.moonbit.config.json +1 -0
  48. data/grammars/source.moonbit.json +1 -1
  49. data/grammars/source.move.json +1 -1
  50. data/grammars/source.opy.json +1 -0
  51. data/grammars/source.pic.json +1 -1
  52. data/grammars/source.pkgconf.json +1 -0
  53. data/grammars/source.powerquery.json +1 -0
  54. data/grammars/source.powershell.json +1 -1
  55. data/grammars/source.prisma.json +1 -1
  56. data/grammars/source.quint.json +1 -0
  57. data/grammars/source.rascal.json +1 -1
  58. data/grammars/source.rascript.json +1 -1
  59. data/grammars/source.record-jar.json +1 -1
  60. data/grammars/source.redscript.json +1 -0
  61. data/grammars/source.slang.json +1 -1
  62. data/grammars/source.slint.json +1 -1
  63. data/grammars/source.soql.json +1 -1
  64. data/grammars/source.spicedb-yaml.json +1 -0
  65. data/grammars/source.spicedb.json +1 -0
  66. data/grammars/source.stan.json +1 -1
  67. data/grammars/source.surrealql.json +1 -1
  68. data/grammars/source.swift.json +1 -1
  69. data/grammars/source.uri-list.json +1 -0
  70. data/grammars/source.v.json +1 -1
  71. data/grammars/source.wgsl.json +1 -1
  72. data/grammars/spicedb-yaml.injection.json +1 -0
  73. data/grammars/text.cachedir.json +1 -0
  74. data/grammars/text.cookie-jar.json +1 -0
  75. data/grammars/text.html.vue.json +1 -1
  76. data/grammars/text.mac-tts.json +1 -0
  77. data/grammars/text.roff.json +1 -1
  78. data/grammars/version +1 -1
  79. data/lib/linguist/VERSION +1 -1
  80. data/lib/linguist/classifier.rb +2 -1
  81. data/lib/linguist/generated.rb +16 -0
  82. data/lib/linguist/generic.yml +2 -0
  83. data/lib/linguist/heuristics.yml +17 -0
  84. data/lib/linguist/language.rb +8 -0
  85. data/lib/linguist/languages.json +1 -1
  86. data/lib/linguist/languages.yml +139 -12
  87. data/lib/linguist/lazy_blob.rb +19 -1
  88. data/lib/linguist/samples.json +1 -1
  89. data/lib/linguist/vendor.yml +3 -0
  90. metadata +25 -1
data/grammars/version CHANGED
@@ -1 +1 @@
1
- 9.5.0
1
+ 9.6.0
data/lib/linguist/VERSION CHANGED
@@ -1 +1 @@
1
- 9.5.0
1
+ 9.6.0
@@ -136,7 +136,8 @@ module Linguist
136
136
 
137
137
  scores = {}
138
138
  languages.each do |language|
139
- centroid = @centroids[language]
139
+ fs_name = Language.find_by_name(language).fs_name
140
+ centroid = @centroids[fs_name || language]
140
141
  score = Classifier.similarity(vec, centroid)
141
142
  if score > 0.0
142
143
  scores[language] = score
@@ -92,6 +92,8 @@ module Linguist
92
92
  pipenv_lock? ||
93
93
  gradle_wrapper? ||
94
94
  maven_wrapper? ||
95
+ mise_lock? ||
96
+ julia_manifest? ||
95
97
  generated_go? ||
96
98
  generated_protocol_buffer_from_go? ||
97
99
  generated_protocol_buffer? ||
@@ -582,6 +584,20 @@ module Linguist
582
584
  !!name.match(/(?:^|\/)mvnw(?:\.cmd)?$/i)
583
585
  end
584
586
 
587
+ # Internal: Is the blob a mise-en-place lock file?
588
+ #
589
+ # Returns true or false.
590
+ def mise_lock?
591
+ !!name.match(/(?:^|\/)mise(?:\.[^\/]+)?\.lock$/)
592
+ end
593
+
594
+ # Internal: Is the blob a Julia Manifest.toml file?
595
+ #
596
+ # Returns true or false.
597
+ def julia_manifest?
598
+ !!name.match(/(?:^|\/)(Julia)?Manifest(-v\d+\.\d+)?\.toml$/)
599
+ end
600
+
585
601
  # Is the blob a VCR Cassette file?
586
602
  #
587
603
  # Returns true or false
@@ -19,9 +19,11 @@ extensions:
19
19
  - ".app"
20
20
  - ".cmp"
21
21
  - ".msg"
22
+ - ".network"
22
23
  - ".resource"
23
24
  - ".sol"
24
25
  - ".srv"
25
26
  - ".stl"
26
27
  - ".tag"
28
+ - ".target"
27
29
  - ".url"
@@ -209,6 +209,14 @@ disambiguations:
209
209
  rules:
210
210
  - language: Gerber Image
211
211
  pattern: '^[DGMT][0-9]{2}\*(?:\r?\n|\r)'
212
+ - extensions: ['.container', '.mount', '.network', '.service', '.socket', '.target', '.timer']
213
+ rules:
214
+ - language: INI
215
+ and:
216
+ # e.g., "[foobar]" or "# [commented out]"
217
+ - pattern: '^[#\s]*\[[^\]]+\]\s*$'
218
+ - named_pattern: key_equals_value
219
+ - negative_pattern: '^[^#;=\[]+[^ \r\n=]$'
212
220
  - extensions: ['.cs']
213
221
  rules:
214
222
  - language: Smalltalk
@@ -637,6 +645,15 @@ disambiguations:
637
645
  pattern:
638
646
  - '(?i)\bDEFINE\s+(?:VARIABLE|TEMP-TABLE|BUFFER|QUERY|INPUT\s+PARAMETER|OUTPUT\s+PARAMETER)\b'
639
647
  - '(?i)\bEND(?:\s+(?:PROCEDURE|FUNCTION|DO|FOR\s+EACH))?\.'
648
+ - extensions: ['.pc']
649
+ rules:
650
+ - language: Pro*C
651
+ pattern: '^\s*EXEC\s+SQL\s'
652
+ - language: pkg-config
653
+ and:
654
+ - pattern: '^Name:[ \t]+\S'
655
+ - pattern: '^Description:[ \t]+\S'
656
+ - pattern: '^Version:[ \t]+\S'
640
657
  - extensions: ['.php']
641
658
  rules:
642
659
  - language: Hack
@@ -60,6 +60,14 @@ module Linguist
60
60
  # Language name index
61
61
  @index[language.name.downcase] = @name_index[language.name.downcase] = language
62
62
 
63
+ # Index filesystem name if defined
64
+ if language.fs_name
65
+ if @name_index.key?(language.fs_name)
66
+ raise ArgumentError "Duplicate language name: #{language.fs_name}"
67
+ end
68
+ @index[language.fs_name.downcase] = @name_index[language.fs_name.downcase] = language
69
+ end
70
+
63
71
  language.aliases.each do |name|
64
72
  # All Language aliases should be unique. Raise if there is a duplicate.
65
73
  if @alias_index.key?(name)