| Golint is a linter for Go source code. |
| |
| To install, run |
| go get github.com/golang/lint/golint |
| |
| Invoke golint with one or more filenames, a directory, or a package name. |
| The output of this tool is a list of suggestions in Vim quickfix format, |
| which is accepted by lots of different editors. |
| |
| Golint differs from gofmt. Gofmt reformats Go source code, whereas |
| golint prints out style mistakes. |
| |
| Golint differs from govet. Govet is concerned with correctness, whereas |
| golint is concerned with coding style. Golint is in use at Google, and it |
| seeks to match the accepted style of the open source Go project. |
| |
| The suggestions made by golint are exactly that: suggestions. |
| Golint is not perfect, and has both false positives and false negatives. |
| Do not treat its output as a gold standard. We will not be adding pragmas |
| or other knobs to suppress specific warnings, so do not expect or require |
| code to be completely "lint-free". |
| In short, this tool is not, and will never be, trustworthy enough for its |
| suggestions to be enforced automatically, for example as part of a build process. |
| |
| If you find an established style that is frequently violated, and which |
| you think golint could statically check, file an issue at |
| https://github.com/golang/lint/issues |
| |
| |
| Contributions |
| ------------- |
| Contributions to this project are welcome, though please send mail before |
| starting work on anything major. Contributors retain their copyright, so we |
| need you to fill out a short form before we can accept your contribution: |
| https://developers.google.com/open-source/cla/individual |
| |
| |
| Vim |
| --- |
| Add this to your ~/.vimrc: |
| set rtp+=$GOPATH/src/github.com/golang/lint/misc/vim |
| If you have multiple entries in your GOPATH, replace $GOPATH with the right value. |
| |
| Running :Lint will run golint on the current file and populate the quickfix list. |
| |
| Optionally, add this to your ~/.vimrc to automatically run golint on :w |
| autocmd BufWritePost,FileWritePost *.go execute 'Lint' | cwindow |
| |
| |
| Emacs |
| ----- |
| Add this to your .emacs file: |
| (add-to-list 'load-path (concat (getenv "GOPATH") "/src/github.com/golang/lint/misc/emacs")) |
| (require 'golint) |
| If you have multiple entries in your GOPATH, replace $GOPATH with the right value. |
| |
| Running M-x golint will run golint on the current file. |
| For more usage, see Compilation-Mode: |
| http://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html |