* origin/master: (97 commits) Modifying some modeline fixtures to test case InSeNsItivitY Making modelines case-insensitive Missing whitespace Vim and Emacs modelines Update README.md Update URL for AutoHotkey grammar Remove grammar for AutoHotkey Bumping version to v4.3.1 Grammar update 'Text' doesn't qualify as a valid modeline language. Add .4TH Forth extension. Grammar for eC from TextMate bundle Sample for eC Grammar for Ox from Sublime Text package Grammar for Grace from TextMate bundle Grammar for G-Code from Sublime Text package Grammar for TXL from Sublime Text package Grammar for J from Sublime Text package Sample for J Grammar for Golo from Sublime Text package ... Conflicts: README.md
2.8 KiB
Linguist
This library is used on GitHub.com to detect blob languages, ignore binary or vendored files, suppress generated files in diffs, and generate language breakdown graphs.
See Troubleshooting and CONTRIBUTING.md before filing an issue or creating a pull request.
Troubleshooting
My repository is detected as the wrong language
The Language stats bar is built by aggregating the languages of each file in that repository. If it is reporting a language that you don't expect:
- Click on the name of the language in the stats bar to see a list of the files that are identified as that language.
- If you see files that you didn't write, consider moving the files into one of the paths for vendored code, or use the manual overrides feature to ignore them.
- If the files are being misclassified, search for open issues to see if anyone else has already reported the issue. Any information you an add, especially links to public repositories, is helpful.
- If there are no reported issues of this misclassification, open an issue and include a link to the repository or a sample of the code that is being misclassified.
Overrides
Linguist supports a number of different custom overrides strategies for language definitions and vendored paths.
Using gitattributes
Add a .gitattributes file to your project and use standard git-style path matchers for the files you want to override to set linguist-language and linguist-vendored.
$ cat .gitattributes
*.rb linguist-language=Java
Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in lib/linguist/vendor.yml as vendored and therefore doesn't include them in the language statistics for a repository.
Use the linguist-vendored attribute to vendor or un-vendor paths.
$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
Using Emacs and Vim modelines
Alternatively, you can use Vim and Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com
Vim
vim: set filetype=prolog:
vim: set ft=cpp:
Emacs
-*- mode: php;-*-
