~ubuntu-branches/ubuntu/saucy/padre/saucy-proposed

« back to all changes in this revision

Viewing changes to lib/Padre/MimeTypes.pm

  • Committer: Package Import Robot
  • Author(s): Dominique Dumont, gregor herrmann, Dominique Dumont
  • Date: 2012-01-04 12:04:20 UTC
  • mfrom: (1.3.3)
  • Revision ID: package-import@ubuntu.com-20120104120420-i5oybqwf91m1d3il
Tags: 0.92.ds1-1
[ gregor herrmann ]
* Remove debian/source/local-options; abort-on-upstream-changes
  and unapply-patches are default in dpkg-source since 1.16.1.
* Swap order of alternative (build) dependencies after the perl
  5.14 transition.

[ Dominique Dumont ]
* Imported Upstream version 0.92.ds1
* removed fix-spelling patch (applied upstream)
* lintian-override: use wildcard to avoid listing a gazillion files
* updated size of some 'not-real-man-page' entries
* rules: remove dekstop cruft (replaced by a file provided in debian
  directory)
* control: removed Breaks statement. Add /me to uploaders. Updated
  dependencies
* rules: make sure that non-DFSG file (i.e. the cute butterfly, sigh)
  is not distributed

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 
5
5
=head1 NAME
6
6
 
7
 
Padre::MimeTypes - Padre Mime-types
 
7
Padre::MimeTypes - Padre MIME Types
8
8
 
9
9
=head1 DESCRIPTION
10
10
 
24
24
use Padre::Util    ('_T');
25
25
use Padre::Wx      ();
26
26
use Padre::DB      ();
 
27
use Wx::Scintilla  ();
27
28
 
28
 
our $VERSION = '0.90';
 
29
our $VERSION = '0.92';
29
30
 
30
31
# Binary file extensions, which we don't support loading at all
31
32
my %EXT_BINARY = ();
68
69
                ada   => 'text/x-adasrc',
69
70
                asm   => 'text/x-asm',
70
71
                bat   => 'text/x-bat',
 
72
                cmd   => 'text/x-bat',
71
73
                bib   => 'application/x-bibtex',
72
74
                bml   => 'application/x-bml',     # dreamwidth file format
73
75
                c     => 'text/x-c',
75
77
                cc    => 'text/x-c++src',
76
78
                cpp   => 'text/x-c++src',
77
79
                cxx   => 'text/x-c++src',
 
80
                cob   => 'text/x-cobol',
 
81
                cbl   => 'text/x-cobol',
78
82
                'c++' => 'text/x-c++src',
79
83
                hh    => 'text/x-c++src',
80
84
                hpp   => 'text/x-c++src',
87
91
                f     => 'text/x-fortran',
88
92
                htm   => 'text/html',
89
93
                html  => 'text/html',
 
94
                hs    => 'text/x-haskell',
90
95
                i     => 'text/x-c',              # C code that should not be preprocessed
91
96
                ii    => 'text/x-c++src',         # C++ code that should not be preprocessed
92
97
                java  => 'text/x-java-source',
94
99
                json  => 'application/json',
95
100
                lsp   => 'application/x-lisp',
96
101
                lua   => 'text/x-lua',
 
102
                m     => 'text/x-matlab',
97
103
                mak   => 'text/x-makefile',
98
 
                mat   => 'text/x-matlab',
99
 
                pas   => 'text/x-pascal',
100
104
                pod   => 'text/x-pod',
101
 
                php   => 'application/x-php',
102
105
                py    => 'text/x-python',
103
106
                rb    => 'application/x-ruby',
104
107
                sql   => 'text/x-sql',
105
108
                tcl   => 'application/x-tcl',
106
 
                vbs   => 'text/vbscript',
107
109
                patch => 'text/x-patch',
 
110
                pks   => 'text/x-sql',            # PLSQL package spec
 
111
                pkb   => 'text/x-sql',            # PLSQL package body
108
112
                pl    => \&perl_mime_type,
109
113
                plx   => \&perl_mime_type,
110
114
                pm    => \&perl_mime_type,
111
115
                pmc   => \&perl_mime_type,        # Compiled Perl Module or gimme5's output
112
116
                pod   => \&pod_mime_type,
 
117
                pov   => 'text/x-povray',
113
118
                psgi  => 'application/x-psgi',
114
119
                sty   => 'application/x-latex',
115
120
                t     => \&perl_mime_type,
137
142
                p6m => 'application/x-perl6',
138
143
                pl6 => 'application/x-perl6',
139
144
                pm6 => 'application/x-perl6',
 
145
 
 
146
                # Pascal
 
147
                pas => 'text/x-pascal',
 
148
                dpr => 'text/x-pascal',
 
149
                dfm => 'text/x-pascal',
 
150
                inc => 'text/x-pascal',
 
151
                pp  => 'text/x-pascal',
 
152
 
 
153
                # ActionScript
 
154
                as   => 'text/x-actionscript',
 
155
                asc  => 'text/x-actionscript',
 
156
                jsfl => 'text/x-actionscript',
 
157
 
 
158
                # PHP
 
159
                php   => 'application/x-php',
 
160
                php3  => 'application/x-php',
 
161
                phtml => 'application/x-php',
 
162
 
 
163
                # VisualBasic and VBScript
 
164
                vb  => 'text/vbscript',
 
165
                bas => 'text/vbscript',
 
166
                frm => 'text/vbscript',
 
167
                cls => 'text/vbscript',
 
168
                ctl => 'text/vbscript',
 
169
                pag => 'text/vbscript',
 
170
                dsr => 'text/vbscript',
 
171
                dob => 'text/vbscript',
 
172
                vbs => 'text/vbscript',
 
173
                dsm => 'text/vbscript',
140
174
        );
141
175
 
142
176
        %DEFAULT_DOC_CLASS = (
143
 
 
144
 
                #       'text/x-abc'                => ## \
145
 
                'text/x-adasrc' => 'DoubleDashComment',
146
 
                'text/x-asm'    => 'HashComment',
147
 
 
148
 
                #       'text/x-bat'                => ## REM
149
 
                'application/x-bibtex' => 'PercentComment',
150
 
                'text/x-c'             => 'DoubleSlashComment',
151
 
                'text/x-c++src'        => 'DoubleSlashComment',
152
 
 
153
 
                #       'text/css'                  => ## /* ... */
154
 
                'text/x-eiffel' => 'DoubleDashComment',
155
 
 
156
 
                #       'text/x-forth'              => ## \
157
 
                #       'text/x-fortran'            => ## !
158
 
                #       'text/html'                 => ## <!-- ... -->
159
 
                'application/javascript' => 'DoubleSlashComment',
160
 
                'application/x-latex'    => 'PercentComment',
161
 
 
162
 
                #       'application/x-lisp'        => ## ;
163
 
                'application/x-shellscript' => 'HashComment',
164
 
                'text/x-java-source'        => 'DoubleSlashComment',
165
 
                'text/x-lua'                => 'DoubleDashComment',
166
 
                'text/x-makefile'           => 'HashComment',
167
 
                'text/x-matlab'             => 'PercentComment',
168
 
 
169
 
                #       'text/x-pascal'             => ## { ... }
170
 
                'application/x-perl' => 'Perl',
171
 
 
172
 
                #       'application/x-psgi'        => ## Perl or HashComment or something else?
173
 
                'text/x-python' => 'HashComment',
174
 
 
175
 
                'application/x-php'  => 'HashComment',
176
 
                'application/x-ruby' => 'HashComment',
177
 
 
178
 
                'text/x-sql' => 'DoubleDashComment',
179
 
 
180
 
                #       'text/vbscript'             => ## '
181
 
                'text/x-config' => 'HashComment',
182
 
 
183
 
                #       'text/xml'                  => ## <!-- ... -->
184
 
                'text/x-yaml'         => 'HashComment',
185
 
                'application/x-perl6' => 'HashComment',
186
 
 
187
 
                #       'text/x-perlxs'             => ## ' #'
188
 
                #       'text/x-perltt'             => ## <!-- ... -->
189
 
                'text/x-csharp' => 'DoubleSlashComment',
190
 
 
191
 
                'text/x-pod' => 'POD',
 
177
                'application/x-perl' => 'Padre::Document::Perl',
 
178
                'text/x-python'      => 'Padre::Document::Python',
 
179
                'application/x-ruby' => 'Padre::Document::Ruby',
 
180
                'text/x-java-source' => 'Padre::Document::Java',
 
181
                'text/x-csharp'      => 'Padre::Document::CSharp',
 
182
                'text/x-patch'       => 'Padre::Document::Patch',
192
183
        );
193
184
 
194
185
        %HIGHLIGHTER_CONFIG = (
204
195
        # lexer => The Scintilla lexer to be used
205
196
 
206
197
        # Padre can use Wx::Scintilla's built-in Perl 6 lexer
207
 
        my $perl6_scintilla_lexer =
208
 
                Padre::Config::wx_scintilla_ready() ? Wx::Scintilla::wxSCINTILLA_LEX_PERL6() : Wx::wxSTC_LEX_NULL;
 
198
        my $perl6_scintilla_lexer = Wx::Scintilla::wxSCINTILLA_LEX_PERL6();
209
199
 
210
200
        %MIME = (
211
201
                'text/x-abc' => {
212
202
                        name  => 'ABC',
213
 
                        lexer => Wx::wxSTC_LEX_NULL,
 
203
                        lexer => Wx::Scintilla::SCLEX_NULL,
 
204
                },
 
205
 
 
206
                'text/x-actionscript' => {
 
207
                        name  => 'ABC',
 
208
                        lexer => Wx::Scintilla::SCLEX_CPP,
214
209
                },
215
210
 
216
211
                'text/x-adasrc' => {
217
 
                        name  => 'ADA',
218
 
                        lexer => Wx::wxSTC_LEX_ADA, # CONFIRMED
 
212
                        name  => 'Ada',
 
213
                        lexer => Wx::Scintilla::SCLEX_ADA, # CONFIRMED
219
214
                },
220
215
 
221
216
                'text/x-asm' => {
222
 
                        name  => 'ASM',
223
 
                        lexer => Wx::wxSTC_LEX_ASM, # CONFIRMED
 
217
                        name  => 'Assembly',
 
218
                        lexer => Wx::Scintilla::SCLEX_ASM, # CONFIRMED
224
219
                },
225
220
 
226
221
                # application/x-msdos-program includes .exe and .com, so don't use it
227
222
                # text/x-bat is used in EXT_MIME, application/x-bat was listed here,
228
223
                # they need to be the same
229
224
                'text/x-bat' => {
230
 
                        name  => 'BAT',
231
 
                        lexer => Wx::wxSTC_LEX_BATCH, # CONFIRMED
 
225
                        name  => 'Batch',
 
226
                        lexer => Wx::Scintilla::SCLEX_BATCH, # CONFIRMED
232
227
                },
233
228
 
234
229
                'application/x-bibtex' => {
235
230
                        name  => 'BibTeX',
236
 
                        lexer => Wx::wxSTC_LEX_NULL,
 
231
                        lexer => Wx::Scintilla::SCLEX_NULL,
237
232
                },
238
233
 
239
234
                'application/x-bml' => {
240
235
                        name  => 'BML',
241
 
                        lexer => Wx::wxSTC_LEX_NULL,  #
 
236
                        lexer => Wx::Scintilla::SCLEX_NULL,  #
242
237
                },
243
238
 
244
239
                'text/x-c' => {
245
240
                        name  => 'C',
246
 
                        lexer => Wx::wxSTC_LEX_CPP,
 
241
                        lexer => Wx::Scintilla::SCLEX_CPP,
 
242
                },
 
243
 
 
244
                'text/x-cobol' => {
 
245
                        name  => 'COBOL',
 
246
                        lexer => 92,                       #TODO Wx::Scintilla::SCLEX_COBOL once it is working
247
247
                },
248
248
 
249
249
                'text/x-c++src' => {
250
250
                        name  => 'C++',
251
 
                        lexer => Wx::wxSTC_LEX_CPP,   # CONFIRMED
 
251
                        lexer => Wx::Scintilla::SCLEX_CPP,   # CONFIRMED
252
252
                },
253
253
 
254
254
                'text/css' => {
255
255
                        name  => 'CSS',
256
 
                        lexer => Wx::wxSTC_LEX_CSS,   # CONFIRMED
 
256
                        lexer => Wx::Scintilla::SCLEX_CSS,   # CONFIRMED
257
257
                },
258
258
 
259
259
                'text/x-eiffel' => {
260
260
                        name  => 'Eiffel',
261
 
                        lexer => Wx::wxSTC_LEX_EIFFEL, # CONFIRMED
 
261
                        lexer => Wx::Scintilla::SCLEX_EIFFEL, # CONFIRMED
262
262
                },
263
263
 
264
264
                'text/x-forth' => {
265
265
                        name  => 'Forth',
266
 
                        lexer => Wx::wxSTC_LEX_FORTH,  # CONFIRMED
 
266
                        lexer => Wx::Scintilla::SCLEX_FORTH,  # CONFIRMED
267
267
                },
268
268
 
269
269
                'text/x-fortran' => {
270
270
                        name  => 'Fortran',
271
 
                        lexer => Wx::wxSTC_LEX_FORTRAN, # CONFIRMED
 
271
                        lexer => Wx::Scintilla::SCLEX_FORTRAN, # CONFIRMED
 
272
                },
 
273
 
 
274
                'text/x-haskell' => {
 
275
                        name  => 'Haskell',
 
276
                        lexer => Wx::Scintilla::SCLEX_HASKELL, # CONFIRMED
272
277
                },
273
278
 
274
279
                'text/html' => {
275
280
                        name  => 'HTML',
276
 
                        lexer => Wx::wxSTC_LEX_HTML,    # CONFIRMED
 
281
                        lexer => Wx::Scintilla::SCLEX_HTML,    # CONFIRMED
277
282
                },
278
283
 
279
284
                'application/javascript' => {
280
285
                        name  => 'JavaScript',
281
 
                        lexer => Wx::wxSTC_LEX_ESCRIPT, # CONFIRMED
 
286
                        lexer => Wx::Scintilla::SCLEX_ESCRIPT, # CONFIRMED
282
287
                },
283
288
 
284
289
                'application/json' => {
285
290
                        name  => 'JSON',
286
 
                        lexer => Wx::wxSTC_LEX_ESCRIPT, # CONFIRMED
 
291
                        lexer => Wx::Scintilla::SCLEX_ESCRIPT, # CONFIRMED
287
292
                },
288
293
 
289
294
                'application/x-latex' => {
290
295
                        name  => 'LaTeX',
291
 
                        lexer => Wx::wxSTC_LEX_LATEX,   # CONFIRMED
 
296
                        lexer => Wx::Scintilla::SCLEX_LATEX,   # CONFIRMED
292
297
                },
293
298
 
294
299
                'application/x-lisp' => {
295
300
                        name  => 'LISP',
296
 
                        lexer => Wx::wxSTC_LEX_LISP,    # CONFIRMED
 
301
                        lexer => Wx::Scintilla::SCLEX_LISP,    # CONFIRMED
297
302
                },
298
303
 
299
304
                'text/x-patch' => {
300
305
                        name  => 'Patch',
301
 
                        lexer => Wx::wxSTC_LEX_DIFF,    # CONFIRMED
 
306
                        lexer => Wx::Scintilla::SCLEX_DIFF,    # CONFIRMED
302
307
                },
303
308
 
304
309
                'application/x-shellscript' => {
305
310
                        name  => _T('Shell Script'),
306
 
                        lexer => Wx::wxSTC_LEX_BASH,
 
311
                        lexer => Wx::Scintilla::SCLEX_BASH,
307
312
                },
308
313
 
309
314
                'text/x-java-source' => {
310
315
                        name  => 'Java',
311
 
                        lexer => Wx::wxSTC_LEX_CPP,
 
316
                        lexer => Wx::Scintilla::SCLEX_CPP,
312
317
                },
313
318
 
314
319
                'text/x-lua' => {
315
320
                        name  => 'Lua',
316
 
                        lexer => Wx::wxSTC_LEX_LUA, # CONFIRMED
 
321
                        lexer => Wx::Scintilla::SCLEX_LUA, # CONFIRMED
317
322
                },
318
323
 
319
324
                'text/x-makefile' => {
320
325
                        name  => 'Makefile',
321
 
                        lexer => Wx::wxSTC_LEX_MAKEFILE, # CONFIRMED
 
326
                        lexer => Wx::Scintilla::SCLEX_MAKEFILE, # CONFIRMED
322
327
                },
323
328
 
324
329
                'text/x-matlab' => {
325
330
                        name  => 'Matlab',
326
 
                        lexer => Wx::wxSTC_LEX_MATLAB,   # CONFIRMED
 
331
                        lexer => Wx::Scintilla::SCLEX_MATLAB,   # CONFIRMED
327
332
                },
328
333
 
329
334
                'text/x-pascal' => {
330
335
                        name  => 'Pascal',
331
 
                        lexer => Wx::wxSTC_LEX_PASCAL,   # CONFIRMED
 
336
                        lexer => Wx::Scintilla::SCLEX_PASCAL,   # CONFIRMED
332
337
                },
333
338
 
334
339
                'application/x-perl' => {
335
340
                        name  => 'Perl 5',
336
 
                        lexer => Wx::wxSTC_LEX_PERL,     # CONFIRMED
 
341
                        lexer => Wx::Scintilla::SCLEX_PERL,     # CONFIRMED
 
342
                },
 
343
                
 
344
                'text/x-povray' => {
 
345
                        name  => 'POVRAY',
 
346
                        lexer => Wx::Scintilla::SCLEX_POV,
337
347
                },
338
348
 
339
349
                'application/x-psgi' => {
340
350
                        name  => 'PSGI',
341
 
                        lexer => Wx::wxSTC_LEX_PERL,     # CONFIRMED
 
351
                        lexer => Wx::Scintilla::SCLEX_PERL,     # CONFIRMED
342
352
                },
343
353
 
344
354
                'text/x-python' => {
345
355
                        name  => 'Python',
346
 
                        lexer => Wx::wxSTC_LEX_PYTHON,          # CONFIRMED
347
 
                        class => 'Padre::Document::HashComment',
 
356
                        lexer => Wx::Scintilla::SCLEX_PYTHON,   # CONFIRMED
348
357
                },
349
358
 
350
359
                'application/x-php' => {
351
360
                        name  => 'PHP',
352
 
                        lexer => Wx::wxSTC_LEX_PHPSCRIPT,       # CONFIRMED
 
361
                        lexer => Wx::Scintilla::SCLEX_PHPSCRIPT, # CONFIRMED
353
362
                },
354
363
 
355
364
                'application/x-ruby' => {
356
365
                        name  => 'Ruby',
357
 
                        lexer => Wx::wxSTC_LEX_RUBY,            # CONFIRMED
358
 
                        class => 'Padre::Document::HashComment',
 
366
                        lexer => Wx::Scintilla::SCLEX_RUBY,      # CONFIRMED
359
367
                },
360
368
 
361
369
                'text/x-sql' => {
362
370
                        name  => 'SQL',
363
 
                        lexer => Wx::wxSTC_LEX_SQL,             # CONFIRMED
 
371
                        lexer => Wx::Scintilla::SCLEX_SQL,       # CONFIRMED
364
372
                },
365
373
 
366
374
                'application/x-tcl' => {
367
375
                        name  => 'Tcl',
368
 
                        lexer => Wx::wxSTC_LEX_TCL,             # CONFIRMED
 
376
                        lexer => Wx::Scintilla::SCLEX_TCL,       # CONFIRMED
369
377
                },
370
378
 
371
379
                'text/vbscript' => {
372
380
                        name  => 'VBScript',
373
 
                        lexer => Wx::wxSTC_LEX_VBSCRIPT,        # CONFIRMED
 
381
                        lexer => Wx::Scintilla::SCLEX_VBSCRIPT,  # CONFIRMED
374
382
                },
375
383
 
376
384
                'text/x-config' => {
377
385
                        name  => 'Config',
378
 
                        lexer => Wx::wxSTC_LEX_CONF,
 
386
                        lexer => Wx::Scintilla::SCLEX_CONF,
379
387
                },
380
388
 
381
389
                # text/xml specifically means "human-readable XML".
382
390
                # This is prefered to the more generic application/xml
383
391
                'text/xml' => {
384
392
                        name  => 'XML',
385
 
                        lexer => Wx::wxSTC_LEX_XML,             # CONFIRMED
 
393
                        lexer => Wx::Scintilla::SCLEX_XML,       # CONFIRMED
386
394
                },
387
395
 
388
396
                'text/x-yaml' => {
389
397
                        name  => 'YAML',
390
 
                        lexer => Wx::wxSTC_LEX_YAML,            # CONFIRMED
 
398
                        lexer => Wx::Scintilla::SCLEX_YAML,      # CONFIRMED
391
399
                },
392
400
 
393
401
                'application/x-pir' => {
394
402
                        name  => 'PIR',
395
 
                        lexer => Wx::wxSTC_LEX_NULL,            # CONFIRMED
 
403
                        lexer => Wx::Scintilla::SCLEX_NULL,      # CONFIRMED
396
404
                },
397
405
 
398
406
                'application/x-pasm' => {
399
407
                        name  => 'PASM',
400
 
                        lexer => Wx::wxSTC_LEX_NULL,            # CONFIRMED
 
408
                        lexer => Wx::Scintilla::SCLEX_NULL,      # CONFIRMED
401
409
                },
402
410
 
403
411
                'application/x-perl6' => {
404
412
                        name  => 'Perl 6',
405
 
                        lexer => $perl6_scintilla_lexer,        # CONFIRMED
 
413
                        lexer => $perl6_scintilla_lexer,       # CONFIRMED
406
414
                },
407
415
 
408
416
                'text/plain' => {
409
417
                        name  => _T('Text'),
410
 
                        lexer => Wx::wxSTC_LEX_NULL,            # CONFIRMED
 
418
                        lexer => Wx::Scintilla::SCLEX_NULL,      # CONFIRMED
411
419
                },
412
420
 
413
421
                # Completely custom mime types
414
 
                'text/x-perlxs' => {                        # totally not confirmed
 
422
                'text/x-perlxs' => {                       # totally not confirmed
415
423
                        name => 'XS',
416
424
                        lexer =>
417
 
                                Wx::wxSTC_LEX_CPP,                  # for the lack of a better XS lexer (vim?)
 
425
                                Wx::Scintilla::SCLEX_CPP,            # for the lack of a better XS lexer (vim?)
418
426
                },
419
427
                'text/x-perltt' => {
420
428
                        name  => 'Template Toolkit',
421
 
                        lexer => Wx::wxSTC_LEX_HTML,
 
429
                        lexer => Wx::Scintilla::SCLEX_HTML,
422
430
                },
423
431
 
424
432
                'text/x-csharp' => {
425
433
                        name  => 'C#',
426
 
                        lexer => Wx::wxSTC_LEX_CPP,
 
434
                        lexer => Wx::Scintilla::SCLEX_CPP,
427
435
                },
428
436
                'text/x-pod' => {
429
437
                        name  => 'POD',
430
 
                        lexer => Wx::wxSTC_LEX_PERL,
 
438
                        lexer => Wx::Scintilla::SCLEX_PERL,
431
439
                },
432
440
        );
433
441
 
434
442
 
435
443
        foreach my $type ( keys %DEFAULT_DOC_CLASS ) {
436
444
                if ( exists $MIME{$type} ) {
437
 
                        $MIME{$type}->{class} = 'Padre::Document::' . $DEFAULT_DOC_CLASS{$type};
 
445
                        $MIME{$type}->{class} = $DEFAULT_DOC_CLASS{$type};
438
446
                } else {
439
447
                        warn "Unknown MIME type: $type\n";
440
448
                }
529
537
        }
530
538
 
531
539
        if ( exists $DEFAULT_DOC_CLASS{$type} ) {
532
 
                $MIME{$type}->{class} = 'Padre::Document::' . $DEFAULT_DOC_CLASS{$type};
 
540
                $MIME{$type}->{class} = $DEFAULT_DOC_CLASS{$type};
533
541
        } else {
534
542
                delete $MIME{$type}->{class};
535
543
        }
945
953
        my $text  = shift;
946
954
 
947
955
        # Sometimes Perl 6 will look like Perl 5
948
 
        # But only do this test if the Perl 6 plugin is enabled.
949
 
        if ( $MIME{'application/x-perl6'}->{class} and is_perl6($text) ) {
 
956
        # But only do this test if the lang_perl6_auto_detection is enabled.
 
957
        my $config = Padre::Config->read;
 
958
        if ( $config->lang_perl6_auto_detection and is_perl6($text) ) {
950
959
                return 'application/x-perl6';
951
960
        } else {
952
961
                return 'application/x-perl';