Files
linguist/CONTRIBUTING.md
Adam Roben f2ab426d38 Move all grammars that use Git repos to submodules
This makes it so we don't have to redownload all the grammars every time
we build the grammars gem. It will also let us verify that grammars.yml
is accurate in the future by checking it against the submodules on disk.

script/bootstrap now updates the submodules.
2014-12-19 15:39:02 -05:00

2.6 KiB

Contributing

The majority of contributions won't need to touch any Ruby code at all. The master language list is just a YAML configuration file.

Almost all bug fixes or new language additions should come with some additional code samples. Just drop them under samples/ in the correct subdirectory and our test suite will automatically test them. In most cases you shouldn't need to add any new assertions.

My code is detected as the wrong language

This can usually be solved either by adding a new filename or file name extension to the language's entry in languages.yml or adding more samples for your language to the repository to make Linguist's classifier smarter.

Syntax highlighting looks wrong

Assuming your code is being detected as the right language (see above), in most cases this is due to a bug in the language grammar rather than a bug in Linguist. grammars.yml lists all the grammars we use for syntax highlighting on github.com. Find the one corresponding to your code's programming language and submit a bug report upstream. If you can, try to reproduce the highlighting problem in the text editor that the grammar is designed for (TextMate, Sublime Text, or Atom) and include that information in your bug report.

You can also try to fix the bug yourself and submit a Pull Request. This piece from TextMate's documentation offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using Lightshow.

Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub.

I want to add support for the X programming language

Great! You'll need to:

  1. Add an entry for your language to languages.yml.
  2. Add a grammar for your language. Please only add grammars that have a license that permits redistribution. 0. Add your grammar as a submodule: git submodule add https://github.com/JaneSmith/MyGrammar grammar_sources/MyGrammar. 0. Add your grammar to grammars.yml by running script/download-grammars --add grammar_sources/MyGrammar.
  3. Add samples for your language to the samples directory.

We try only to add languages once they have some usage on GitHub, so please note in-the-wild usage examples in your pull request. In most cases we prefer that languages already be in use in hundreds of repositories before supporting them in Linguist.