<commit_before># GoTools

GoTools is a [Go programming language](http://www.golang.org) plugin for [Sublime Text 3](http://www.sublimetext.com) inspired by [vim-go](https://github.com/fatih/vim-go). Rather than attempting to reinvent various supporting IDE components, it provides integration with existing community-supported tools.

**Please note** that the project is still considered a pre-release alpha/personal project and no effort is being made to maintain compatibility with any old settings or environments.

## Features

* Jump to symbol/declaration (using your choice of [oracle](https://godoc.org/golang.org/x/tools/oracle) or [godef](https://github.com/rogpeppe/godef))
* Format and syntax check on save, including gutter marks (using [gofmt](https://golang.org/cmd/gofmt/))
* Autocompletion (using [gocode](https://github.com/nsf/gocode))
* Build and test integration
* Source analysis (using [oracle](https://godoc.org/golang.org/x/tools/oracle))
* Identifier renaming (using [gorename](https://godoc.org/golang.org/x/tools/cmd/gorename))
* Improved syntax support (borrowed from [GoSublime](https://github.com/DisposaBoy/GoSublime))

### Prerequisites

GoTools will attempt to find all external Go tools (`oracle`, `gofmt`, `gocode`, etc.) using `GOPATH` and `GOROOT` (not `PATH`). If you don't have these binaries, use `go get` to install them:

    go get -u -v github.com/nsf/gocode
    go get -u -v github.com/rogpeppe/godef
    go get -u -v golang.org/x/tools/cmd/goimports
    go get -u -v golang.org/x/tools/cmd/oracle
    go get -u -v golang.org/x/tools/cmd/gorename

GoTools is only tested with Go 1.4. Note that `gofmt` is now included with the Go distribution, and any `gofmt` installed to `GOPATH` is likely from an old Go version and should probably be removed.

### Installing

The easiest way to install GoTools is to use [Package Control](https://packagecontrol.io). Simply install Package Control, and then install the "GoTools" package using `Package Control: Install Package` from the command palette.<commit_msg>Add a note to the README<commit_after># GoTools

GoTools is a [Go programming language](http://www.golang.org) plugin for [Sublime Text 3](http://www.sublimetext.com) inspired by [vim-go](https://github.com/fatih/vim-go). Rather than attempting to reinvent various supporting IDE components, it provides integration with existing community-supported tools.

**Please note** that the project is still considered a pre-release alpha/personal project and no effort is being made to maintain compatibility with any old settings or environments.

## Changes from upstream

I (nuance) have made a series of small changes to [GoTools](https://github.com/ironcladlou/GoTools) in order to replace my usage of [GoSublime](https://github.com/DisposaBoy/GoSublime).

- Added snippets to autocomplete results in gotools_suggestions. This gives you access to argument names for suggested functions, with tab-complete for replacement.
- Added type information about the current symbol to the status bar (on the bottom left of the window). This is resolved using a query to gocode for completions starting at the end of what sublime thinks is the current symbol.
- Removed build / test integration in favor of [golang/sublime-build](https://github.com/golang/sublime-build).
- Removed the custom language definition in favor of the improved built-in.
- Added golint / go vet support. Currently run on save.

## Features

* Jump to symbol/declaration (using your choice of [oracle](https://godoc.org/golang.org/x/tools/oracle) or [godef](https://github.com/rogpeppe/godef))
* Format and syntax check on save, including gutter marks (using [gofmt](https://golang.org/cmd/gofmt/))
* Autocompletion (using [gocode](https://github.com/nsf/gocode))
* Build and test integration
* Source analysis (using [oracle](https://godoc.org/golang.org/x/tools/oracle))
* Identifier renaming (using [gorename](https://godoc.org/golang.org/x/tools/cmd/gorename))
* Improved syntax support (borrowed from [GoSublime](https://github.com/DisposaBoy/GoSublime))

### Prerequisites

GoTools will attempt to find all external Go tools (`oracle`, `gofmt`, `gocode`, etc.) using `GOPATH` and `GOROOT` (not `PATH`). If you don't have these binaries, use `go get` to install them:

    go get -u -v github.com/nsf/gocode
    go get -u -v github.com/rogpeppe/godef
    go get -u -v golang.org/x/tools/cmd/goimports
    go get -u -v golang.org/x/tools/cmd/oracle
    go get -u -v golang.org/x/tools/cmd/gorename

GoTools is only tested with Go 1.4. Note that `gofmt` is now included with the Go distribution, and any `gofmt` installed to `GOPATH` is likely from an old Go version and should probably be removed.

### Installing

The easiest way to install GoTools is to use [Package Control](https://packagecontrol.io). Simply install Package Control, and then install the "GoTools" package using `Package Control: Install Package` from the command palette.
{'fraction_non_alphanumeric': 0.10768300060496068, 'fraction_numerical': 0.0012099213551119178, 'mean_word_length': 4.450549450549451, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 21, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6008233', 'n_tokens_mistral': 1546, 'n_tokens_neox': 1466, 'n_words': 565}