linguist-js 2.7.1 → 2.8.1

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 (44) hide show
  1. package/dist/cli.js +5 -2
  2. package/dist/helpers/convert-pcre.js +1 -1
  3. package/dist/helpers/load-data.d.ts +1 -1
  4. package/dist/helpers/load-data.js +4 -5
  5. package/dist/helpers/parse-gitattributes.d.ts +1 -0
  6. package/dist/helpers/parse-gitattributes.js +6 -4
  7. package/dist/helpers/parse-gitignore.js +1 -1
  8. package/dist/helpers/read-file.d.ts +1 -1
  9. package/dist/helpers/read-file.js +2 -2
  10. package/dist/helpers/walk-tree.js +7 -2
  11. package/dist/index.js +73 -32
  12. package/dist/package.json +56 -0
  13. package/dist/src/cli.d.ts +1 -0
  14. package/dist/src/cli.js +146 -0
  15. package/dist/src/helpers/convert-pcre.d.ts +2 -0
  16. package/dist/src/helpers/convert-pcre.js +38 -0
  17. package/dist/src/helpers/load-data.d.ts +4 -0
  18. package/dist/src/helpers/load-data.js +37 -0
  19. package/dist/src/helpers/norm-path.d.ts +2 -0
  20. package/dist/src/helpers/norm-path.js +15 -0
  21. package/dist/src/helpers/parse-gitattributes.d.ts +17 -0
  22. package/dist/src/helpers/parse-gitattributes.js +37 -0
  23. package/dist/src/helpers/parse-gitignore.d.ts +1 -0
  24. package/dist/src/helpers/parse-gitignore.js +12 -0
  25. package/dist/src/helpers/read-file.d.ts +5 -0
  26. package/dist/src/helpers/read-file.js +23 -0
  27. package/dist/src/helpers/walk-tree.d.ts +20 -0
  28. package/dist/src/helpers/walk-tree.js +85 -0
  29. package/dist/src/index.d.ts +4 -0
  30. package/dist/src/index.js +485 -0
  31. package/dist/src/schema.d.ts +37 -0
  32. package/dist/src/schema.js +2 -0
  33. package/dist/src/types.d.ts +74 -0
  34. package/dist/src/types.js +2 -0
  35. package/dist/types.d.ts +22 -0
  36. package/dist/version.d.ts +2 -0
  37. package/dist/version.js +4 -0
  38. package/ext/documentation.yml +0 -3
  39. package/ext/generated.rb +5 -0
  40. package/ext/heuristics.yml +91 -16
  41. package/ext/languages.yml +317 -8
  42. package/ext/vendor.yml +0 -2
  43. package/package.json +6 -5
  44. package/readme.md +29 -5
package/ext/generated.rb CHANGED
@@ -8,7 +8,10 @@
8
8
  - (Gopkg|glide)\.lock
9
9
  - poetry\.lock
10
10
  - pdm\.lock
11
+ - uv\.lock
12
+ - pixi\.lock
11
13
  - (^|\/)(\w+\.)?esy.lock$
14
+ - deno\.lock
12
15
  - npm-shrinkwrap\.json
13
16
  - package-lock\.json
14
17
  - pnpm-lock\.yaml
@@ -17,7 +20,9 @@
17
20
  - composer\.lock
18
21
  - .\.zep\.(?:c|h|php)$
19
22
  - Cargo\.lock
23
+ - Cargo\.toml\.orig
20
24
  - (^|\/)flake\.lock$
25
+ - (^|\/)MODULE\.bazel\.lock$
21
26
  - Pipfile\.lock
22
27
  - (?:^|\/)\.terraform\.lock\.hcl$
23
28
  - ppport\.h$
@@ -1,4 +1,3 @@
1
-
2
1
  ---
3
2
  disambiguations:
4
3
  - extensions: ['.1', '.2', '.3', '.4', '.5', '.6', '.7', '.8', '.9']
@@ -59,14 +58,20 @@ disambiguations:
59
58
  - language: Asymptote
60
59
  - extensions: ['.bas']
61
60
  rules:
62
- - language: FreeBasic
63
- pattern: '^[ \t]*#(?i)(?:define|endif|endmacro|ifn?def|include|lang|macro)(?:$|\s)'
61
+ - language: B4X
62
+ pattern: '\A\W{0,3}(?:.*(?:\r?\n|\r)){0,9}B4(?:J|A|R|i)=true'
63
+ - language: FreeBASIC
64
+ named_pattern: freebasic
65
+ - language: FreeBASIC
66
+ and:
67
+ - pattern: '(?i)^[ \t]*return '
68
+ - negative_pattern: '(?i)[ \t]*gosub '
64
69
  - language: BASIC
65
70
  pattern: '\A\s*\d'
71
+ - language: QuickBASIC
72
+ named_pattern: quickbasic
66
73
  - language: VBA
67
- and:
68
- - named_pattern: vb-module
69
- - named_pattern: vba
74
+ named_pattern: vba
70
75
  - language: Visual Basic 6.0
71
76
  named_pattern: vb-module
72
77
  - extensions: ['.bb']
@@ -89,8 +94,12 @@ disambiguations:
89
94
  pattern: '(>\+>|>\+<)'
90
95
  - extensions: ['.bi']
91
96
  rules:
92
- - language: FreeBasic
93
- pattern: '^[ \t]*#(?i)(?:define|endif|endmacro|ifn?def|if|include|lang|macro)(?:$|\s)'
97
+ - language: FreeBASIC
98
+ named_pattern: freebasic
99
+ - language: FreeBASIC
100
+ and:
101
+ - pattern: '(?i)^[ \t]*return '
102
+ - negative_pattern: '(?i)[ \t]*gosub '
94
103
  - extensions: ['.bs']
95
104
  rules:
96
105
  - language: Bikeshed
@@ -107,6 +116,11 @@ disambiguations:
107
116
  rules:
108
117
  - language: XML
109
118
  pattern: '^(\s*)(?i:<Project|<Import|<Property|<?xml|xmlns)'
119
+ - extensions: ['.cairo']
120
+ rules:
121
+ - language: Cairo Zero
122
+ pattern: '(^(\s*)%lang(\s+)([A-Za-z0-9_]+))|(^(\s*)%builtins(\s+)([A-Za-z0-9_]+\s*)*$)|(^(\s*)from(\s+)starkware\.(cairo|starknet)\.([A-Za-z0-9_.\s]+?)import)|(,\s*ap\+\+;$)|(;\s*ap\+\+$)'
123
+ - language: Cairo
110
124
  - extensions: ['.ch']
111
125
  rules:
112
126
  - language: xBase
@@ -190,7 +204,7 @@ disambiguations:
190
204
  - language: Erlang
191
205
  pattern: '^\s*(?:%%|main\s*\(.*?\)\s*->)'
192
206
  - language: JavaScript
193
- pattern: '\/\/|("|'')use strict\1|export\s+default\s|\/\*(?:.|[\r\n])*?\*\/'
207
+ pattern: '\/\/|["'']use strict["'']|export\s+default\s|\/\*(?:.|[\r\n])*?\*\/'
194
208
  - extensions: ['.ex']
195
209
  rules:
196
210
  - language: Elixir
@@ -315,7 +329,7 @@ disambiguations:
315
329
  - extensions: ['.ice']
316
330
  rules:
317
331
  - language: JSON
318
- pattern: '\A\s*[{\[]'
332
+ named_pattern: json
319
333
  - language: Slice
320
334
  - extensions: ['.inc']
321
335
  rules:
@@ -433,6 +447,8 @@ disambiguations:
433
447
  rules:
434
448
  - language: XML
435
449
  pattern: '<!ENTITY '
450
+ - language: NMODL
451
+ pattern: '\b(NEURON|INITIAL|UNITS)\b'
436
452
  - language: Modula-2
437
453
  pattern: '^\s*(?i:MODULE|END) [\w\.]+;'
438
454
  - language: [Linux Kernel Module, AMPL]
@@ -451,6 +467,10 @@ disambiguations:
451
467
  - negative_pattern: '/\*'
452
468
  - pattern: '^\s*\.(?:include\s|globa?l\s|[A-Za-z][_A-Za-z0-9]*:)'
453
469
  - language: MAXScript
470
+ - extensions: ['.msg']
471
+ rules:
472
+ - language: omnetpp-msg
473
+ pattern: '^cplusplus \{\{|^namespace[\s]*([^.\s]*\.)*[^.\s]*;|^struct \{|^message [\S]* (extends)? [\S]*[\s]*\{|^packet \{|^class (extends) [\S]*[\s]*\{|^enum \{|^import ([^.\s]*\.)*[^.\s]*;'
454
474
  - extensions: ['.n']
455
475
  rules:
456
476
  - language: Roff
@@ -470,6 +490,11 @@ disambiguations:
470
490
  - language: NL
471
491
  pattern: '^(b|g)[0-9]+ '
472
492
  - language: NewLisp
493
+ - extensions: ['.nr']
494
+ rules:
495
+ - language: Roff
496
+ pattern: '^\.'
497
+ - language: Noir
473
498
  - extensions: ['.nu']
474
499
  rules:
475
500
  - language: Nushell
@@ -494,6 +519,13 @@ disambiguations:
494
519
  pattern: '<\?hh'
495
520
  - language: PHP
496
521
  pattern: '<\?[^h]'
522
+ - extensions: ['.pkl']
523
+ rules:
524
+ - language: Pkl
525
+ pattern:
526
+ - '^\s*(module|import|amends|extends|local|const|fixed|abstract|open|class|typealias|@\w+)\b'
527
+ - '^\s*[a-zA-Z0-9_$]+\s*(=|{|:)|^\s*`[^`]+`\s*(=|{|:)|for\s*\(|when\s*\('
528
+ - language: Pickle
497
529
  - extensions: ['.pl']
498
530
  rules:
499
531
  - language: Prolog
@@ -507,7 +539,7 @@ disambiguations:
507
539
  - extensions: ['.plist']
508
540
  rules:
509
541
  - language: XML Property List
510
- pattern: '^\s*(?:<\?xml\s|<!DOCTYPE\s+plist|<plist(?:\s+version\s*=\s*(["''])\d+(?:\.\d+)?\1)?\s*>\s*$)'
542
+ pattern: '^\s*(?:<\?xml\s|<!DOCTYPE\s+plist|<plist(?:\s+version\s*=\s*["'']\d+(?:\.\d+)?["''])?\s*>\s*$)'
511
543
  - language: OpenStep Property List
512
544
  - extensions: ['.plt']
513
545
  rules:
@@ -599,6 +631,11 @@ disambiguations:
599
631
  pattern:
600
632
  - '^\s*(let|module|type)\s+\w*\s+=\s+'
601
633
  - '^\s*(?:include|open)\s+\w+\s*$'
634
+ - extensions: ['.resource']
635
+ rules:
636
+ - language: RobotFramework
637
+ pattern:
638
+ - '^\*{3} (Settings|Variables|Keywords) \*{3}$'
602
639
  - extensions: ['.rno']
603
640
  rules:
604
641
  - language: RUNOFF
@@ -686,6 +723,11 @@ disambiguations:
686
723
  pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\bmy\s+class\b)'
687
724
  - language: Turing
688
725
  pattern: '^\s*%[ \t]+|^\s*var\s+\w+(\s*:\s*\w+)?\s*:=\s*\w+'
726
+ - extensions: ['.tact']
727
+ rules:
728
+ - language: JSON
729
+ pattern: '\A\s*\{\"'
730
+ - language: Tact
689
731
  - extensions: ['.tag']
690
732
  rules:
691
733
  - language: Java Server Pages
@@ -705,6 +747,12 @@ disambiguations:
705
747
  - language: XML
706
748
  pattern: '<TS\b'
707
749
  - language: TypeScript
750
+ - extensions: ['.tsp']
751
+ rules:
752
+ - language: TypeSpec
753
+ pattern: '^(import|using|namespace|interface|op|model|scalar|alias|union|enum)\s'
754
+ - language: TSPLIB data
755
+ pattern: '^(NAME|TYPE|DIMENSION|EDGE_WEIGHT_TYPE|EDGE_WEIGHT_FORMAT)\s*:'
708
756
  - extensions: ['.tst']
709
757
  rules:
710
758
  - language: GAP
@@ -712,14 +760,15 @@ disambiguations:
712
760
  - language: Scilab
713
761
  - extensions: ['.tsx']
714
762
  rules:
715
- - language: TSX
716
- pattern: '^\s*(import.+(from\s+|require\()[''"]react|\/\/\/\s*<reference\s)'
717
763
  - language: XML
718
764
  pattern: '(?i:^\s*<\?xml\s+version)'
765
+ - language: TSX
719
766
  - extensions: ['.txt']
720
767
  rules:
721
768
  - language: Vim Help File
722
769
  pattern: '(?:(?:^|[ \t])(?:vi|Vi(?=m))(?:m[<=>]?[0-9]+|m)?|[ \t]ex)(?=:(?=[ \t]*set?[ \t][^\r\n:]+:)|:(?![ \t]*set?[ \t]))(?:(?:[ \t]*:[ \t]*|[ \t])\w*(?:[ \t]*=(?:[^\\\s]|\\.)*)?)*[ \t:](?:filetype|ft|syntax)[ \t]*=(help)(?=$|\s|:)'
770
+ - language: Hosts File
771
+ pattern: '(?xi) ^(?<ipv4>(?!\.)(?:\.?(?: 25[0-5]| 2[0-4]\d| 1\d\d| [1-9]?\d)\b){4})(?<cidr>/(3[0-2]|[12]?\d)\b)?(?<domains>[ \t]+\w[-\w]* (?:\.\w[-\w]*)*(?<!-)\b)*+(?=$|\s)'
723
772
  - language: Adblock Filter List
724
773
  pattern: '\A\[(?<version>(?:[Aa]d[Bb]lock(?:[ \t][Pp]lus)?|u[Bb]lock(?:[ \t][Oo]rigin)?|[Aa]d[Gg]uard)(?:[ \t] \d+(?:\.\d+)*+)?)(?:[ \t]?;[ \t]?\g<version>)*+\]'
725
774
  - language: Text
@@ -745,6 +794,12 @@ disambiguations:
745
794
  - language: Vim Script
746
795
  pattern: '^UseVimball'
747
796
  - language: VBA
797
+ - extensions: ['.vcf']
798
+ rules:
799
+ - language: TSV
800
+ pattern: '\A##fileformat=VCF'
801
+ - language: vCard
802
+ pattern: '\ABEGIN:VCARD'
748
803
  - extensions: ['.w']
749
804
  rules:
750
805
  - language: OpenEdge ABL
@@ -774,7 +829,7 @@ disambiguations:
774
829
  - extensions: ['.yy']
775
830
  rules:
776
831
  - language: JSON
777
- pattern: '\"modelName\"\:\s*\"GM'
832
+ named_pattern: json
778
833
  - language: Yacc
779
834
  named_patterns:
780
835
  cpp:
@@ -791,11 +846,16 @@ named_patterns:
791
846
  - '^\s*(?:public\s+)?include\s'
792
847
  - '^\s*(?:(?:public|export|global)\s+)?(?:atom|constant|enum|function|integer|object|procedure|sequence|type)\s'
793
848
  fortran: '^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)'
849
+ freebasic:
850
+ - '(?i)^[ \t]*#(?:define|endif|endmacro|ifn?def|include|lang|macro|pragma)(?:$|\s)'
851
+ - '(?i)^[ \t]*dim( shared)? [a-z_][a-z0-9_]* as [a-z_][a-z0-9_]* ptr'
852
+ - '(?i)^[ \t]*dim( shared)? as [a-z_][a-z0-9_]* [a-z_][a-z0-9_]*'
794
853
  gsc:
795
854
  - '^\s*#\s*(?:using|insert|include|define|namespace)[ \t]+\w'
796
855
  - '^\s*(?>(?:autoexec|private)\s+){0,2}function\s+(?>(?:autoexec|private)\s+){0,2}\w+\s*\('
797
856
  - '\b(?:level|self)[ \t]+thread[ \t]+(?:\[\[[ \t]*(?>\w+\.)*\w+[ \t]*\]\]|\w+)[ \t]*\([^\r\n\)]*\)[ \t]*;'
798
857
  - '^[ \t]*#[ \t]*(?:precache|using_animtree)[ \t]*\('
858
+ json: '\A\s*[{\[]'
799
859
  key_equals_value: '^[^#!;][^=]*='
800
860
  m68k:
801
861
  - '(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b'
@@ -817,6 +877,21 @@ named_patterns:
817
877
  - '^\s*(?:\*|(?:our\s*)?@)EXPORT\s*='
818
878
  - '^\s*package\s+[^\W\d]\w*(?:::\w+)*\s*(?:[;{]|\sv?\d)'
819
879
  - '[\s$][^\W\d]\w*(?::\w+)*->[a-zA-Z_\[({]'
880
+ quickbasic:
881
+ - '^[ ]*(CONST|DIM|REDIM|DEFINT|PRINT|DECLARE (SUB|FUNCTION)|FUNCTION|SUB) '
882
+ - '(#|$)lang:?\s*"?qb"?'
883
+ - '(?i)''\$INCLUDE:'
884
+ - '(?i)^[ ]*CLS[ ]*(''|:|\r|\n)'
885
+ - '(?i)^[ ]*OPTION _EXPLICIT'
886
+ - '(?i)^[ ]*DIM SHARED '
887
+ - '(?i)^[ ]*PRINT "'
888
+ - '(?i) As _(Byte|Offset|MEM)'
889
+ - '(?i)^[ ]*_(DISPLAY|DEST|CONSOLE|SOURCE|FREEIMAGE|PALETTECOLOR|PRINTSTRING|LOADFONT|PUTIMAGE)'
890
+ - '(?i)^[ ]*_(TITLE|PLAYMOD) "'
891
+ - '(?i)^[ ]*_(LIMIT|SCREEN|DELAY) \.?\d+'
892
+ - '(?i)\b_(MOUSEBUTTON|NEWIMAGE|KEYDOWN|WIDTH|HEIGHT)\('
893
+ - '(?i)^[ ]*\$(CONSOLE|CHECKING):'
894
+ - '(?i)^[ ]*\$(FULLSCREEN|RESIZE|STATIC|DYNAMIC|NOPREFIX|SCREENSHOW|SCREENHIDE|EXEICON)\b'
820
895
  raku: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'
821
896
  vb-class: '^[ ]*VERSION [0-9]\.[0-9] CLASS'
822
897
  vb-form: '^[ ]*VERSION [0-9]\.[0-9]{2}'
@@ -826,9 +901,9 @@ named_patterns:
826
901
  - '^[ ]*(?:Public|Private)? Declare PtrSafe (?:Sub|Function)\b'
827
902
  - '^[ ]*#If Win64\b'
828
903
  - '^[ ]*(?:Dim|Const) [0-9a-zA-Z_]*[ ]*As Long(?:Ptr|Long)\b'
829
- - '^[ ]*Option (?:Private Module|Compare (?:Database|Text|Binary))\b'
904
+ - '^[ ]*Option (?:Private Module|Compare Database)\b'
830
905
  - '(?: |\()(?:Access|Excel|Outlook|PowerPoint|Visio|Word|VBIDE)\.\w'
831
906
  - '\b(?:(?:Active)?VBProjects?|VBComponents?|Application\.(?:VBE|ScreenUpdating))\b'
832
- - '\b(?:ThisDrawing|AcadObject|Active(?:Explorer|Inspector|Window\.Presentation|Presentation|Document)|Selection\.(?:Find|Paragraphs))\b'
907
+ - '\b(?:ThisDrawing|AcadObject|Active(?:Explorer|Inspector|Window\.Presentation|Presentation|Document)|Selection\.(?:Document|Find|Paragraphs|Range))\b'
833
908
  - '\b(?:(?:This|Active)?Workbooks?|Worksheets?|Active(?:Sheet|Chart|Cell)|WorksheetFunction)\b'
834
909
  - '\b(?:Range\(".*|Cells\([0-9a-zA-Z_]*, (?:[0-9a-zA-Z_]*|"[a-zA-Z]{1,3}"))\)'