Linguist
========

We use this library on GitHub to detect file language types for syntax highlighting, ignore binary files, suppress generated code in diffs and generate language breakdown graphs.

Features
--------

### Language detection

* Common extensions
* Shebang
* C header files *(C/C++/Obj-C)*

### Binary detection

### Generated file detection

* Generated JS files *(minified js, compiled CoffeeScript)*
* Generated config files *(Xcode project files and nibs)*

### Ignore vendored libs

* Ignores common vendored libs conventions *(deps/, vendor/, jquery, prototype)*

### Stats

* Generates project LOC stats

Usage
-----

    file = Linguist::FileBlob.new("linguist.rb")
    file.language.name #=> "Ruby"

    file = Linguist::FileBlob.new("linguist.gem")
    file.binary? #=> true

    project = Linguist::Repository.new(".")
    project.language.name  #=> "Ruby"
    project.languages      #=> { "Ruby" => 0.98, "Shell" => 0.02 }


Contributing
------------

Once you've made your great commits:

1. Fork it.
2. Create a branch (`git checkout -b detect-foo-language`)
3. Commit your changes (`git commit -am "Added detection for the new Foo language"`)
4. Push to the branch (`git push origin detect-foo-language`)
5. Create a [Pull Request](http://help.github.com/pull-requests/) from your branch.
6. Promote it. Mention a public repository to demostration the value of your changes. Get others to drop in and :+1: it.
