2011-05-11 16:14:43 -05:00
2011-05-11 16:14:43 -05:00
2011-05-11 16:14:43 -05:00
2011-05-09 21:59:42 -05:00
2011-05-09 22:18:55 -05:00
2011-05-09 17:53:41 -05:00

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::SourceFile.new("linguist.rb")
file.language.name #=> "Ruby"

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

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

# Using Grit backend
repo = Grit::Repo.new("./.git")
project = Linguist::Project.new(repo)

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 from your branch.
  6. Promote it. Mention a public repository to demostration the value of your changes. Get others to drop in and 👍 it.
Description
Language Savant. If your repository's language is being reported incorrectly, send us a pull request!
Readme MIT 34 MiB
Languages
Ruby 68.7%
C 22.3%
Go 7.1%
Lex 1.2%
Shell 0.4%
Other 0.3%