* Add failing test for finding with non-String input
Show the failing behaviour of find_by_alias, find_by_name, and []
when non-String input is provided.
* Return nil rather than erroring on non-String input
* .xpm and .pm extensions associated with XPM.
* .pm is disambiguated by searching the /* XPM */ string.
This is how `file` performs detection and should work with
every XPM3 file (most XPM generated by software later than 1991).
Added XPM samples:
* stick-unfocus.xpm: extracted from Fluxbox (MIT License)
0c13ddc0c8/data/styles/Emerge/pixmaps/stick-unfocus.xpm
* cc-public_domain_mark_white.pm: public domain image from
https://commons.wikimedia.org/wiki/File:Cc-public_domain_mark_white.svg
converted to XPM with ImageMagick (convert input.svg output.xpm).
* Separate find_by_extension and find_by_filename
find_by_extension now takes a path as argument and not only the file extension.
Currently only find_by_extension is used as a strategy.
* Add find_by_filename as first strategy
* Remove deprecated find_by_shebang
* Remove deprecated ace_modes function
* Remove deprecated primary_extension function
Gists don't have a language dropdown anymore
* Remove deprecated Linguist::Language.detect function
* Remove deprecated search_term field
* Generate language_id from language names
The language_id is generated from the SHA256 hash of the language's name
* Test the validity of language ids
All languages should have a positive 32bit integer as an id
* Update languages.yml header in set-language-ids
plus a few minor language support updates including:
- recognize `sclang` and `scsynth` interpreters
- set `tm_scope: source.supercollider`
- reorder extensions so that `.sc` is primary
This gives us a consistent test framework across all Ruby versions which
should help avoid errors that are only found when CI runs the tests on
different Rubies. (And this fixes an immediate bug where there's no
`skip` method in the version of test-unit we're currently using only on
Ruby 2.2.)