github-linguist 2.10.0 → 2.10.5
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.
- checksums.yaml +4 -4
- data/lib/linguist/blob_helper.rb +2 -2
- data/lib/linguist/classifier.rb +15 -15
- data/lib/linguist/generated.rb +9 -0
- data/lib/linguist/language.rb +60 -4
- data/lib/linguist/languages.yml +114 -6
- data/lib/linguist/samples.json +1515 -104
- data/lib/linguist/samples.rb +46 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0ecbabc138b17a77febdabc0c64f378f67bd13c
|
4
|
+
data.tar.gz: ae91bedb24a96d1dfcaf4680dcc5530f475deee0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea8ea0349099feaee685a38a6800bef2f4d695b9c422394f5d34c3432da19621912a2f296bd48cc43d989758ff8d45613a4185e86195907b6cf133fd24fa74c3
|
7
|
+
data.tar.gz: cb0dd718502e691e8e09baf8753b17e6dc042f408b5d297f139167c62ae8ff5c9348c9f2498435b7a233ecd7e792ef346920f68f4e11d4b8c2c7738b1637637f
|
data/lib/linguist/blob_helper.rb
CHANGED
@@ -190,9 +190,9 @@ module Linguist
|
|
190
190
|
# Public: Is the blob safe to colorize?
|
191
191
|
#
|
192
192
|
# We use Pygments for syntax highlighting blobs. Pygments
|
193
|
-
# can be too slow for very large blobs or for certain
|
193
|
+
# can be too slow for very large blobs or for certain
|
194
194
|
# corner-case blobs.
|
195
|
-
#
|
195
|
+
#
|
196
196
|
# Return true or false
|
197
197
|
def safe_to_colorize?
|
198
198
|
!large? && text? && !high_ratio_of_long_lines?
|
data/lib/linguist/classifier.rb
CHANGED
@@ -78,18 +78,13 @@ module Linguist
|
|
78
78
|
def classify(tokens, languages)
|
79
79
|
return [] if tokens.nil?
|
80
80
|
tokens = Tokenizer.tokenize(tokens) if tokens.is_a?(String)
|
81
|
-
|
82
81
|
scores = {}
|
83
|
-
|
84
|
-
|
85
|
-
|
82
|
+
|
83
|
+
debug_dump_all_tokens(tokens, languages) if verbosity >= 2
|
84
|
+
|
86
85
|
languages.each do |language|
|
87
|
-
|
88
|
-
|
89
|
-
if verbosity >= 1
|
90
|
-
printf "%10s = %10.3f + %7.3f = %10.3f\n",
|
91
|
-
language, tokens_probability(tokens, language), language_probability(language), scores[language]
|
92
|
-
end
|
86
|
+
debug_dump_probabilities(tokens, language) if verbosity >= 1
|
87
|
+
scores[language] = tokens_probability(tokens, language) + language_probability(language)
|
93
88
|
end
|
94
89
|
|
95
90
|
scores.sort { |a, b| b[1] <=> a[1] }.map { |score| [score[0], score[1]] }
|
@@ -135,6 +130,11 @@ module Linguist
|
|
135
130
|
@verbosity ||= (ENV['LINGUIST_DEBUG'] || 0).to_i
|
136
131
|
end
|
137
132
|
|
133
|
+
def debug_dump_probabilities
|
134
|
+
printf("%10s = %10.3f + %7.3f = %10.3f\n",
|
135
|
+
language, tokens_probability(tokens, language), language_probability(language), scores[language])
|
136
|
+
end
|
137
|
+
|
138
138
|
# Internal: show a table of probabilities for each <token,language> pair.
|
139
139
|
#
|
140
140
|
# The number in each table entry is the number of "points" that each
|
@@ -145,22 +145,22 @@ module Linguist
|
|
145
145
|
# how much more likely (log of probability ratio) that token is to
|
146
146
|
# appear in one language vs. the least-likely language. Dashes
|
147
147
|
# indicate the least-likely language (and zero points) for each token.
|
148
|
-
def
|
148
|
+
def debug_dump_all_tokens(tokens, languages)
|
149
149
|
maxlen = tokens.map { |tok| tok.size }.max
|
150
|
-
|
150
|
+
|
151
151
|
printf "%#{maxlen}s", ""
|
152
152
|
puts " #" + languages.map { |lang| sprintf("%10s", lang) }.join
|
153
|
-
|
153
|
+
|
154
154
|
token_map = Hash.new(0)
|
155
155
|
tokens.each { |tok| token_map[tok] += 1 }
|
156
|
-
|
156
|
+
|
157
157
|
token_map.sort.each { |tok, count|
|
158
158
|
arr = languages.map { |lang| [lang, token_probability(tok, lang)] }
|
159
159
|
min = arr.map { |a,b| b }.min
|
160
160
|
minlog = Math.log(min)
|
161
161
|
if !arr.inject(true) { |result, n| result && n[1] == arr[0][1] }
|
162
162
|
printf "%#{maxlen}s%5d", tok, count
|
163
|
-
|
163
|
+
|
164
164
|
puts arr.map { |ent|
|
165
165
|
ent[1] == min ? " -" : sprintf("%10.3f", count * (Math.log(ent[1]) - minlog))
|
166
166
|
}.join
|
data/lib/linguist/generated.rb
CHANGED
@@ -60,6 +60,7 @@ module Linguist
|
|
60
60
|
generated_net_designer_file? ||
|
61
61
|
generated_protocol_buffer? ||
|
62
62
|
generated_jni_header? ||
|
63
|
+
composer_lock? ||
|
63
64
|
node_modules?
|
64
65
|
end
|
65
66
|
|
@@ -204,5 +205,13 @@ module Linguist
|
|
204
205
|
def node_modules?
|
205
206
|
!!name.match(/node_modules\//)
|
206
207
|
end
|
208
|
+
|
209
|
+
# the php composer tool generates a lock file to represent a specific dependency state.
|
210
|
+
# In general not meant for humans in pull requests.
|
211
|
+
#
|
212
|
+
# Returns true or false.
|
213
|
+
def composer_lock?
|
214
|
+
!!name.match(/composer.lock/)
|
215
|
+
end
|
207
216
|
end
|
208
217
|
end
|
data/lib/linguist/language.rb
CHANGED
@@ -21,17 +21,27 @@ module Linguist
|
|
21
21
|
@alias_index = {}
|
22
22
|
|
23
23
|
@extension_index = Hash.new { |h,k| h[k] = [] }
|
24
|
+
@interpreter_index = Hash.new { |h,k| h[k] = [] }
|
24
25
|
@filename_index = Hash.new { |h,k| h[k] = [] }
|
25
26
|
@primary_extension_index = {}
|
26
27
|
|
27
28
|
# Valid Languages types
|
28
|
-
TYPES = [:data, :markup, :programming]
|
29
|
+
TYPES = [:data, :markup, :programming, :prose]
|
29
30
|
|
30
31
|
# Names of non-programming languages that we will still detect
|
31
32
|
#
|
32
33
|
# Returns an array
|
33
34
|
def self.detectable_markup
|
34
|
-
["CSS", "Less", "Sass", "TeX"]
|
35
|
+
["CSS", "Less", "Sass", "Stylus", "TeX"]
|
36
|
+
end
|
37
|
+
|
38
|
+
# Detect languages by a specific type
|
39
|
+
#
|
40
|
+
# type - A symbol that exists within TYPES
|
41
|
+
#
|
42
|
+
# Returns an array
|
43
|
+
def self.by_type(type)
|
44
|
+
all.select { |h| h.type == type }
|
35
45
|
end
|
36
46
|
|
37
47
|
# Internal: Create a new Language object
|
@@ -75,6 +85,10 @@ module Linguist
|
|
75
85
|
|
76
86
|
@primary_extension_index[language.primary_extension] = language
|
77
87
|
|
88
|
+
language.interpreters.each do |interpreter|
|
89
|
+
@interpreter_index[interpreter] << language
|
90
|
+
end
|
91
|
+
|
78
92
|
language.filenames.each do |filename|
|
79
93
|
@filename_index[filename] << language
|
80
94
|
end
|
@@ -103,10 +117,13 @@ module Linguist
|
|
103
117
|
|
104
118
|
if possible_languages.length > 1
|
105
119
|
data = data.call() if data.respond_to?(:call)
|
120
|
+
|
106
121
|
if data.nil? || data == ""
|
107
122
|
nil
|
108
|
-
elsif result =
|
109
|
-
|
123
|
+
elsif (result = find_by_shebang(data)) && !result.empty?
|
124
|
+
result.first
|
125
|
+
elsif classified = Classifier.classify(Samples::DATA, data, possible_languages.map(&:name)).first
|
126
|
+
Language[classified[0]]
|
110
127
|
end
|
111
128
|
else
|
112
129
|
possible_languages.first
|
@@ -166,6 +183,20 @@ module Linguist
|
|
166
183
|
langs.compact.uniq
|
167
184
|
end
|
168
185
|
|
186
|
+
# Public: Look up Languages by shebang line.
|
187
|
+
#
|
188
|
+
# data - Array of tokens or String data to analyze.
|
189
|
+
#
|
190
|
+
# Examples
|
191
|
+
#
|
192
|
+
# Language.find_by_shebang("#!/bin/bash\ndate;")
|
193
|
+
# # => [#<Language name="Bash">]
|
194
|
+
#
|
195
|
+
# Returns the matching Language
|
196
|
+
def self.find_by_shebang(data)
|
197
|
+
@interpreter_index[Linguist.interpreter_from_shebang(data)]
|
198
|
+
end
|
199
|
+
|
169
200
|
# Public: Look up Language by its name or lexer.
|
170
201
|
#
|
171
202
|
# name - The String name of the Language
|
@@ -251,6 +282,7 @@ module Linguist
|
|
251
282
|
|
252
283
|
# Set extensions or default to [].
|
253
284
|
@extensions = attributes[:extensions] || []
|
285
|
+
@interpreters = attributes[:interpreters] || []
|
254
286
|
@filenames = attributes[:filenames] || []
|
255
287
|
|
256
288
|
unless @primary_extension = attributes[:primary_extension]
|
@@ -363,6 +395,15 @@ module Linguist
|
|
363
395
|
# Returns the extension String.
|
364
396
|
attr_reader :primary_extension
|
365
397
|
|
398
|
+
# Public: Get interpreters
|
399
|
+
#
|
400
|
+
# Examples
|
401
|
+
#
|
402
|
+
# # => ['awk', 'gawk', 'mawk' ...]
|
403
|
+
#
|
404
|
+
# Returns the interpreters Array
|
405
|
+
attr_reader :interpreters
|
406
|
+
|
366
407
|
# Public: Get filenames
|
367
408
|
#
|
368
409
|
# Examples
|
@@ -456,6 +497,7 @@ module Linguist
|
|
456
497
|
end
|
457
498
|
|
458
499
|
extensions = Samples::DATA['extnames']
|
500
|
+
interpreters = Samples::DATA['interpreters']
|
459
501
|
filenames = Samples::DATA['filenames']
|
460
502
|
popular = YAML.load_file(File.expand_path("../popular.yml", __FILE__))
|
461
503
|
|
@@ -470,6 +512,7 @@ module Linguist
|
|
470
512
|
|
471
513
|
languages.each do |name, options|
|
472
514
|
options['extensions'] ||= []
|
515
|
+
options['interpreters'] ||= []
|
473
516
|
options['filenames'] ||= []
|
474
517
|
|
475
518
|
if extnames = extensions[name]
|
@@ -480,6 +523,18 @@ module Linguist
|
|
480
523
|
end
|
481
524
|
end
|
482
525
|
|
526
|
+
if interpreters == nil
|
527
|
+
interpreters = {}
|
528
|
+
end
|
529
|
+
|
530
|
+
if interpreter_names = interpreters[name]
|
531
|
+
interpreter_names.each do |interpreter|
|
532
|
+
if !options['interpreters'].include?(interpreter)
|
533
|
+
options['interpreters'] << interpreter
|
534
|
+
end
|
535
|
+
end
|
536
|
+
end
|
537
|
+
|
483
538
|
if fns = filenames[name]
|
484
539
|
fns.each do |filename|
|
485
540
|
if !options['filenames'].include?(filename)
|
@@ -500,6 +555,7 @@ module Linguist
|
|
500
555
|
:searchable => options.key?('searchable') ? options['searchable'] : true,
|
501
556
|
:search_term => options['search_term'],
|
502
557
|
:extensions => options['extensions'].sort,
|
558
|
+
:interpreters => options['interpreters'].sort,
|
503
559
|
:primary_extension => options['primary_extension'],
|
504
560
|
:filenames => options['filenames'],
|
505
561
|
:popular => popular.include?(name)
|
data/lib/linguist/languages.yml
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
# ace_mode - A String name of Ace Mode (if available)
|
11
11
|
# wrap - Boolean wrap to enable line wrapping (default: false)
|
12
12
|
# extension - An Array of associated extensions
|
13
|
+
# interpreter - An Array of associated interpreters
|
13
14
|
# primary_extension - A String for the main extension associated with
|
14
15
|
# the language. Must be unique. Used when a Language is picked
|
15
16
|
# from a dropdown and we need to automatically choose an
|
@@ -22,7 +23,7 @@
|
|
22
23
|
# Any additions or modifications (even trivial) should have corresponding
|
23
24
|
# test change in `test/test_blob.rb`.
|
24
25
|
#
|
25
|
-
# Please keep this list alphabetized.
|
26
|
+
# Please keep this list alphabetized. Capitalization comes before lower case.
|
26
27
|
|
27
28
|
ABAP:
|
28
29
|
type: programming
|
@@ -70,6 +71,7 @@ Ada:
|
|
70
71
|
|
71
72
|
Agda:
|
72
73
|
type: programming
|
74
|
+
color: "#467C91"
|
73
75
|
primary_extension: .agda
|
74
76
|
|
75
77
|
ApacheConf:
|
@@ -101,6 +103,16 @@ Arduino:
|
|
101
103
|
lexer: C++
|
102
104
|
primary_extension: .ino
|
103
105
|
|
106
|
+
AsciiDoc:
|
107
|
+
type: prose
|
108
|
+
lexer: Text only
|
109
|
+
ace_mode: asciidoc
|
110
|
+
wrap: true
|
111
|
+
primary_extension: .asciidoc
|
112
|
+
extensions:
|
113
|
+
- .adoc
|
114
|
+
- .asc
|
115
|
+
|
104
116
|
Assembly:
|
105
117
|
type: programming
|
106
118
|
lexer: NASM
|
@@ -140,6 +152,11 @@ Awk:
|
|
140
152
|
- .gawk
|
141
153
|
- .mawk
|
142
154
|
- .nawk
|
155
|
+
interpreters:
|
156
|
+
- awk
|
157
|
+
- gawk
|
158
|
+
- mawk
|
159
|
+
- nawk
|
143
160
|
|
144
161
|
Batchfile:
|
145
162
|
type: programming
|
@@ -181,6 +198,11 @@ Brainfuck:
|
|
181
198
|
extensions:
|
182
199
|
- .bf
|
183
200
|
|
201
|
+
Brightscript:
|
202
|
+
type: programming
|
203
|
+
lexer: Text only
|
204
|
+
primary_extension: .brs
|
205
|
+
|
184
206
|
Bro:
|
185
207
|
type: programming
|
186
208
|
primary_extension: .bro
|
@@ -333,6 +355,12 @@ Common Lisp:
|
|
333
355
|
- .lsp
|
334
356
|
- .ny
|
335
357
|
- .podsl
|
358
|
+
interpreters:
|
359
|
+
- lisp
|
360
|
+
- sbcl
|
361
|
+
- ccl
|
362
|
+
- clisp
|
363
|
+
- ecl
|
336
364
|
|
337
365
|
Coq:
|
338
366
|
type: programming
|
@@ -346,6 +374,12 @@ Cpp-ObjDump:
|
|
346
374
|
- .c++objdump
|
347
375
|
- .cxx-objdump
|
348
376
|
|
377
|
+
Creole:
|
378
|
+
type: prose
|
379
|
+
lexer: Text only
|
380
|
+
wrap: true
|
381
|
+
primary_extension: .creole
|
382
|
+
|
349
383
|
Cucumber:
|
350
384
|
lexer: Gherkin
|
351
385
|
primary_extension: .feature
|
@@ -379,7 +413,7 @@ D-ObjDump:
|
|
379
413
|
DM:
|
380
414
|
type: programming
|
381
415
|
color: "#075ff1"
|
382
|
-
lexer:
|
416
|
+
lexer: C++
|
383
417
|
primary_extension: .dm
|
384
418
|
aliases:
|
385
419
|
- byond
|
@@ -748,6 +782,7 @@ JSON:
|
|
748
782
|
- .sublime-settings
|
749
783
|
- .sublime-workspace
|
750
784
|
filenames:
|
785
|
+
- .jshintrc
|
751
786
|
- composer.lock
|
752
787
|
|
753
788
|
Jade:
|
@@ -918,6 +953,8 @@ Makefile:
|
|
918
953
|
- makefile
|
919
954
|
- Makefile
|
920
955
|
- GNUmakefile
|
956
|
+
interpreters:
|
957
|
+
- make
|
921
958
|
|
922
959
|
Mako:
|
923
960
|
primary_extension: .mako
|
@@ -925,7 +962,7 @@ Mako:
|
|
925
962
|
- .mao
|
926
963
|
|
927
964
|
Markdown:
|
928
|
-
type:
|
965
|
+
type: prose
|
929
966
|
lexer: Text only
|
930
967
|
ace_mode: markdown
|
931
968
|
wrap: true
|
@@ -956,6 +993,12 @@ Max:
|
|
956
993
|
- .mxt
|
957
994
|
- .pat
|
958
995
|
|
996
|
+
MediaWiki:
|
997
|
+
type: prose
|
998
|
+
lexer: Text only
|
999
|
+
wrap: true
|
1000
|
+
primary_extension: .mediawiki
|
1001
|
+
|
959
1002
|
MiniD: # Legacy
|
960
1003
|
searchable: false
|
961
1004
|
primary_extension: .minid # Dummy extension
|
@@ -1091,6 +1134,12 @@ OpenEdge ABL:
|
|
1091
1134
|
- abl
|
1092
1135
|
primary_extension: .p
|
1093
1136
|
|
1137
|
+
Org:
|
1138
|
+
type: prose
|
1139
|
+
lexer: Text only
|
1140
|
+
wrap: true
|
1141
|
+
primary_extension: .org
|
1142
|
+
|
1094
1143
|
Oxygene:
|
1095
1144
|
type: programming
|
1096
1145
|
lexer: Text only
|
@@ -1157,6 +1206,8 @@ Perl:
|
|
1157
1206
|
- .pm6
|
1158
1207
|
- .pod
|
1159
1208
|
- .psgi
|
1209
|
+
interpreters:
|
1210
|
+
- perl
|
1160
1211
|
|
1161
1212
|
Pike:
|
1162
1213
|
type: programming
|
@@ -1166,6 +1217,13 @@ Pike:
|
|
1166
1217
|
extensions:
|
1167
1218
|
- .pmod
|
1168
1219
|
|
1220
|
+
Pod:
|
1221
|
+
type: prose
|
1222
|
+
lexer: Text only
|
1223
|
+
ace_mode: perl
|
1224
|
+
wrap: true
|
1225
|
+
primary_extension: .pod
|
1226
|
+
|
1169
1227
|
PogoScript:
|
1170
1228
|
type: programming
|
1171
1229
|
color: "#d80074"
|
@@ -1224,12 +1282,15 @@ Python:
|
|
1224
1282
|
primary_extension: .py
|
1225
1283
|
extensions:
|
1226
1284
|
- .gyp
|
1285
|
+
- .lmi
|
1227
1286
|
- .pyt
|
1228
1287
|
- .pyw
|
1229
1288
|
- .wsgi
|
1230
1289
|
- .xpy
|
1231
1290
|
filenames:
|
1232
1291
|
- wscript
|
1292
|
+
interpreters:
|
1293
|
+
- python
|
1233
1294
|
|
1234
1295
|
Python traceback:
|
1235
1296
|
type: data
|
@@ -1252,6 +1313,15 @@ R:
|
|
1252
1313
|
- .R
|
1253
1314
|
filenames:
|
1254
1315
|
- .Rprofile
|
1316
|
+
interpreters:
|
1317
|
+
- Rscript
|
1318
|
+
|
1319
|
+
RDoc:
|
1320
|
+
type: prose
|
1321
|
+
lexer: Text only
|
1322
|
+
ace_mode: rdoc
|
1323
|
+
wrap: true
|
1324
|
+
primary_extension: .rdoc
|
1255
1325
|
|
1256
1326
|
REALbasic:
|
1257
1327
|
type: programming
|
@@ -1269,6 +1339,15 @@ RHTML:
|
|
1269
1339
|
group: HTML
|
1270
1340
|
primary_extension: .rhtml
|
1271
1341
|
|
1342
|
+
RMarkdown:
|
1343
|
+
type: markup
|
1344
|
+
lexer: Text only
|
1345
|
+
wrap: true
|
1346
|
+
ace_mode: markdown
|
1347
|
+
primary_extension: .rmd
|
1348
|
+
extensions:
|
1349
|
+
- .Rmd
|
1350
|
+
|
1272
1351
|
Racket:
|
1273
1352
|
type: programming
|
1274
1353
|
lexer: Racket
|
@@ -1339,6 +1418,8 @@ Ruby:
|
|
1339
1418
|
- .ru
|
1340
1419
|
- .thor
|
1341
1420
|
- .watchr
|
1421
|
+
interpreters:
|
1422
|
+
- ruby
|
1342
1423
|
filenames:
|
1343
1424
|
- Appraisals
|
1344
1425
|
- Berksfile
|
@@ -1381,6 +1462,8 @@ Scala:
|
|
1381
1462
|
ace_mode: scala
|
1382
1463
|
color: "#7dd3b0"
|
1383
1464
|
primary_extension: .scala
|
1465
|
+
extensions:
|
1466
|
+
- .sc
|
1384
1467
|
|
1385
1468
|
Scaml:
|
1386
1469
|
group: HTML
|
@@ -1394,6 +1477,11 @@ Scheme:
|
|
1394
1477
|
extensions:
|
1395
1478
|
- .sls
|
1396
1479
|
- .ss
|
1480
|
+
interpreters:
|
1481
|
+
- guile
|
1482
|
+
- racket
|
1483
|
+
- bigloo
|
1484
|
+
- chicken
|
1397
1485
|
|
1398
1486
|
Scilab:
|
1399
1487
|
type: programming
|
@@ -1418,6 +1506,10 @@ Shell:
|
|
1418
1506
|
extensions:
|
1419
1507
|
- .bats
|
1420
1508
|
- .tmux
|
1509
|
+
interpreters:
|
1510
|
+
- bash
|
1511
|
+
- sh
|
1512
|
+
- zsh
|
1421
1513
|
filenames:
|
1422
1514
|
- Dockerfile
|
1423
1515
|
|
@@ -1446,11 +1538,17 @@ Standard ML:
|
|
1446
1538
|
- sml
|
1447
1539
|
primary_extension: .sml
|
1448
1540
|
|
1541
|
+
Stylus:
|
1542
|
+
type: markup
|
1543
|
+
group: CSS
|
1544
|
+
lexer: Text only
|
1545
|
+
primary_extension: .styl
|
1546
|
+
|
1449
1547
|
SuperCollider:
|
1450
1548
|
type: programming
|
1451
1549
|
color: "#46390b"
|
1452
1550
|
lexer: Text only
|
1453
|
-
primary_extension: .
|
1551
|
+
primary_extension: .scd
|
1454
1552
|
|
1455
1553
|
TOML:
|
1456
1554
|
type: data
|
@@ -1477,7 +1575,9 @@ Tcsh:
|
|
1477
1575
|
|
1478
1576
|
TeX:
|
1479
1577
|
type: markup
|
1578
|
+
color: "#3D6117"
|
1480
1579
|
ace_mode: latex
|
1580
|
+
wrap: true
|
1481
1581
|
aliases:
|
1482
1582
|
- latex
|
1483
1583
|
primary_extension: .tex
|
@@ -1498,7 +1598,7 @@ Tea:
|
|
1498
1598
|
primary_extension: .tea
|
1499
1599
|
|
1500
1600
|
Textile:
|
1501
|
-
type:
|
1601
|
+
type: prose
|
1502
1602
|
lexer: Text only
|
1503
1603
|
ace_mode: textile
|
1504
1604
|
wrap: true
|
@@ -1544,6 +1644,14 @@ VHDL:
|
|
1544
1644
|
lexer: vhdl
|
1545
1645
|
color: "#543978"
|
1546
1646
|
primary_extension: .vhdl
|
1647
|
+
extensions:
|
1648
|
+
- .vhd
|
1649
|
+
- .vhf
|
1650
|
+
- .vhi
|
1651
|
+
- .vho
|
1652
|
+
- .vhs
|
1653
|
+
- .vht
|
1654
|
+
- .vhw
|
1547
1655
|
|
1548
1656
|
Vala:
|
1549
1657
|
type: programming
|
@@ -1733,7 +1841,7 @@ ooc:
|
|
1733
1841
|
primary_extension: .ooc
|
1734
1842
|
|
1735
1843
|
reStructuredText:
|
1736
|
-
type:
|
1844
|
+
type: prose
|
1737
1845
|
wrap: true
|
1738
1846
|
search_term: rst
|
1739
1847
|
aliases:
|