go-toolsmith.github.io
Site for Go tools crafters: combined documentation for go-toolsmith packages, external references and other useful resources.
There are two major project goals:
- Provide reusable libraries that make Go tools implementation easier.
- Knowledge sharing. Make tools development less frustrating by providing docs for parts that are not easy to grasp and/or hard to find on the internet for whatever reason.
Packages
List of packages maintained under go-toolsmith
project.
astinfo
Package astinfo records useful AST information like node parents and such.
astcopy
Package astcopy implements Go AST deep copy operations.
astequal
Package astequal provides AST (deep) equallity check operations.
astfmt
Package astfmt implements ast.Node
formatting with fmt-like API.
astp
Package astp provides AST predicates.
astcast
Package astcast wraps type assertion operations in such way that you don't have to worry about nil pointer results anymore.
strparse
Package strparse provides convenience wrappers around go/parser
for simple expr/stmt/decl parsing from string.
typep
Package typep provides type predicates.
Users
Projects that use go-toolsmith
and are willing to share that fact.
- go-critic linter
- go-consistent linter
- go-lintpack linter builder
- go-namecheck linter