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.
List of packages maintained under go-toolsmith
project.
Package astinfo records useful AST information like node parents and such.
Package astcopy implements Go AST deep copy operations.
Package astequal provides AST (deep) equallity check operations.
Package astfmt implements ast.Node
formatting with fmt-like API.
Package astp provides AST predicates.
Package astcast wraps type assertion operations in such way that you don't have to worry about nil pointer results anymore.
Package strparse provides convenience wrappers around go/parser
for simple expr/stmt/decl parsing from string.
Package typep provides type predicates.
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