Documentation ¶
Index ¶
- Constants
- func FancyFmt(src []byte) ([]byte, error)
- func GoFmt(src []byte) ([]byte, error)
- func GoRendererBuffer[T Importer](r *GoRenderer[T]) *bytes.Buffer
- func Private(head string, parts ...string) string
- func Proto(head string, parts ...string) string
- func Public(head string, parts ...string) string
- func QuoteBias(v any) any
- func RegisterInitalism(word string)
- func Shy(r renderingOptionsHandler) bool
- func Striked(head string, parts ...string) string
- func Underscored(head string, parts ...string) string
- type AliasCorrector
- type Commas
- type Formatter
- type GoFuncBodyRenderer
- type GoFuncRenderer
- type GoRenderer
- func (r *GoRenderer[T]) C(a ...any)
- func (r *GoRenderer[T]) F(name string) func(params ...any) *GoFuncRenderer[T]
- func (r *GoRenderer[T]) Imports() T
- func (r *GoRenderer[T]) InCtx(name string) bool
- func (r *GoRenderer[T]) InnerScope(f func(r *GoRenderer[T]))
- func (r *GoRenderer[T]) L(line string, a ...any)
- func (r *GoRenderer[T]) Let(name string, value any)
- func (r *GoRenderer[T]) M(rcvr ...any) func(name string) func(params ...any) *GoFuncRenderer[T]
- func (r *GoRenderer[T]) N()
- func (r *GoRenderer[T]) Object(item types.Object) string
- func (r *GoRenderer[T]) PkgObject(pkgRef any, name string) string
- func (r *GoRenderer[T]) Proto(t ast.Type) ProtocType
- func (r *GoRenderer[T]) R(line string)
- func (r *GoRenderer[T]) S(line string, a ...any) string
- func (r *GoRenderer[T]) Scope() (res *GoRenderer[T])
- func (r *GoRenderer[T]) SetReturnZeroValues(values ...string)
- func (r *GoRenderer[T]) T() *GoRenderer[T]
- func (r *GoRenderer[T]) Taken(name string) bool
- func (r *GoRenderer[T]) TryLet(name string, value any)
- func (r *GoRenderer[T]) Type(t types.Type) string
- func (r *GoRenderer[T]) Uniq(name string, optSuffix ...string) string
- func (r *GoRenderer[T]) Z() (res *GoRenderer[T])
- type ImportAliasControl
- type ImportReferenceControl
- type Importer
- type Imports
- type L
- type Module
- func (m *Module[T]) Current(name string) (*Package[T], error)
- func (m *Module[T]) GetDependency(path, version string) error
- func (m *Module[T]) GetDependencyLatest(path string) error
- func (m *Module[T]) Name() string
- func (m *Module[T]) Package(name, pkgpath string) (*Package[T], error)
- func (m *Module[T]) PackageName(pkgpath string) (string, error)
- func (m *Module[T]) Raw(relpath string, opts ...RendererOption) *RawRenderer
- func (m *Module[T]) Render() error
- func (m *Module[T]) Root(name string) (*Package[T], error)
- type ModuleOption
- type Package
- func (p *Package[T]) Go(name string, opts ...RendererOption) (res *GoRenderer[T])
- func (p *Package[T]) Package(name, pkgpath string) (*Package[T], error)
- func (p *Package[T]) Path() string
- func (p *Package[T]) Raw(name string, opts ...RendererOption) *RawRenderer
- func (p *Package[T]) Reuse(name string) (result *GoRenderer[T], _ error)
- func (p *Package[T]) Void() *GoRenderer[T]
- type Params
- type ProtocType
- type Q
- type RawRenderer
- type RendererOption
Constants ¶
const ( // ReturnZeroValues is used as a renderer's scope key to represent // zero values in a function returning on, most likely, errors processing. // // It is computed automatically in some cases ReturnZeroValues = "ReturnZeroValues" )
Variables ¶
This section is empty.
Functions ¶
func GoRendererBuffer ¶ added in v0.18.0
func GoRendererBuffer[T Importer](r *GoRenderer[T]) *bytes.Buffer
GoRendererBuffer switches the given renderer to a new block two times and returns a buffer of the block that was the current after the first switch.
See what is happening here:
- B is a current block before the call.
- A is a current block after the first switch.
- C is a current block after the second switch.
And
Original blocks: …, B₋, B, B₊, … First switch: …, B₋, B, A, B₊, … Second switch: …, B₋, B, A, C, B₊, …
We could actually do only one switch and return a black that was the current before the switch, but it can be pretty unsafe, becaue:
- A user can mutate buffer data by an accident.
- Contents of blocks is always concatenated with LF between them. The usage of the dedicated block ensures the user is not needed to care about new lines.
This double switch makes it sure we are safe from these sorts of issues.
This function aimed for an external usage. mimchain output uses this BTW.
func Public ¶ added in v0.7.0
Public returns a Go-public golint-aware camel cased word built upon head and parts joined with _
func QuoteBias ¶ added in v0.21.0
QuoteBias returns just v if it is not a string. Returns Q(v) otherwise.
func RegisterInitalism ¶ added in v0.7.0
func RegisterInitalism(word string)
RegisterInitalism registers initialisms to be used in casings.
func Shy ¶ added in v0.7.0
func Shy(r renderingOptionsHandler) bool
Shy prevents overwrite of existing file
func Striked ¶ added in v0.7.0
Striked returns striked case of a word, this is same as Underscored, just with - instead of _
func Underscored ¶ added in v0.7.0
Underscored returns underscored case of a word
Types ¶
type AliasCorrector ¶ added in v0.7.0
AliasCorrector this function may alter alias for a package with the given name and path in case of name conflict. Empty string means no correction for the given pkgpath.
type Commas ¶ added in v0.4.0
type Commas struct {
// contains filtered or unexported fields
}
Commas comma-separated list
func A ¶ added in v0.17.0
A shortcut function to create comma separated list out of string list values quickly.
type Formatter ¶ added in v0.7.0
Formatter is a signature of source code formatting function. GoFmt and FancyFmt are provided by this package.
type GoFuncBodyRenderer ¶ added in v0.17.0
type GoFuncBodyRenderer[T Importer] struct { // contains filtered or unexported fields }
GoFuncBodyRenderer renders function/method body.
func (*GoFuncBodyRenderer[T]) Body ¶ added in v0.17.0
func (r *GoFuncBodyRenderer[T]) Body(f func(r *GoRenderer[T]))
Body renders function body with the provided f function.
type GoFuncRenderer ¶ added in v0.17.0
type GoFuncRenderer[T Importer] struct { // contains filtered or unexported fields }
GoFuncRenderer renders definitions of functions and methods.
func (*GoFuncRenderer[T]) Body ¶ added in v0.17.0
func (r *GoFuncRenderer[T]) Body(f func(r *GoRenderer[T]))
Body this renders function/method body.
func (*GoFuncRenderer[T]) Returns ¶ added in v0.17.0
func (r *GoFuncRenderer[T]) Returns(results ...any) *GoFuncBodyRenderer[T]
Returns sets up a return tuple of the function.
We don't divide fmt.Stringer or string here, except stringers from types or ast [libraries
Arguments are treated almost the same way as for function/method calls, it can be:
- missing at all
- a single instance of Params or *Params
- a single instance of Commas or *Commas
- a single instance of *types.Tuple.
- a list of *types.Var.
- a list of (K₁, V₁, K₂, V₂, ..., Kₙ, Vₙ), where *types.Var are not allowed for Ks anv Vs, Ks must be string or stringers and Vs must be string or stringers or *types.Tuple or and each Kᵢ value or String() can either be .
- a list of (T₁, T₂, …, T₂ₙ₋₁) composed entirely of strings or fmt.Stringers with the last value being empty string (or .String() method returning an empty string)
It may produce zero values expression for a return statement, but this rather depends on types, if this call could deduce their values. It puts zero expression into the rendering context under ReturnZeroValues name.
Specifics:
- If the last argument type is the error, "zero value" of the last return type is empty. It is because we mostly need them (zero values) to return an error, where we will be setting an expression for the last return value (error) ourselves.
- Zero values depend on return types. We can only rely on text matching heuristics if types are represented as strings. We wouldn't have much trouble with types.Type or ast.Type though. In case if our return values are named, "zeroes" will be just these names. Except the case of "_" names of course, where we will use heuristics again.
Raw text heuristics rules:
- Builtin types like int, uint32, bool, string, etc are supported, even though they may be shadowed somehow. We just guess they weren't and this is acceptable for most cases.
- Chans, maps, slices, pointers are supported too.
- Error type is matched by its name, same guess as for builtins here.
type GoRenderer ¶ added in v0.7.0
type GoRenderer[T Importer] struct { // contains filtered or unexported fields }
GoRenderer GoFile source file code generation.
The text data it used for code rendering is kept in a sequence of text blocksmgr, where the renderer instance reference one of them, it is called a current block for the renderer.
Renderer also provides means to control import statements.
Overall, you can:
- Add new import paths.
- Append a text to the current block of the renderer.
- Insert a new text block after the current one and make the current block switched to it. Read Z method docs to learn what it gives.
The generated text consists of two major parts:
- Auto generated header with file comment, package statement and import statements.
- A concatenated text from an ordered sequence of text blocksmgr.
With the GoRenderer you can:
func (*GoRenderer[T]) C ¶ added in v0.20.0
func (r *GoRenderer[T]) C(a ...any)
C concatenates given objects into a single text line using space character as a separator.
func (*GoRenderer[T]) F ¶ added in v0.17.0
func (r *GoRenderer[T]) F(name string) func(params ...any) *GoFuncRenderer[T]
F function definition rendering helper. Here name is just a function name and params can be:
- missing at all
- a single instance of Params or *Params
- a single instance of Commas or *Commas
- a single instance of *types.Tuple, where names MUST NOT be empty.
- a list of *types.Var, where names in each one MUST NOT be empty.
- a list of (K₁, V₁, K₂, V₂, ..., Kₙ, Vₙ), where Kᵢ = (string | fmt.Stringer), except *types.Var even though it is fmt.Stringer. Vᵢ = (string | fmt.Stringer | types.Type | ast.Type) except *types.Var. and each Kᵢ value or String() can either be.
- a list of (T₁, T₂, …, T₂ₙ₋₁) composed entirely of strings or fmt.Stringers with the last value being empty string (or .String() method returning an empty string) and all other values looking like "<name> <type".
Usage example:
r.F("name")(
func (*GoRenderer[T]) Imports ¶ added in v0.7.0
func (r *GoRenderer[T]) Imports() T
Imports returns imports controller.
Usage example:
r.Import().Add("errors").Manager("errs") r.L(` return $errs.New("error")`)
Will render:
return errors.New("error")
Remember, using Manager to put package name into the scope is highly preferable over no Manager or setting package name manually (via the As call): It will take care of conflicting package names, you won't need to resolve dependencies manually.
Beware though: do not use the same Manager name for different packages and do not try to Manager with the name you have used with Let before.
func (*GoRenderer[T]) InCtx ¶ added in v0.16.0
func (r *GoRenderer[T]) InCtx(name string) bool
InCtx checks if this name is already in the rendering context.
func (*GoRenderer[T]) InnerScope ¶ added in v0.16.0
func (r *GoRenderer[T]) InnerScope(f func(r *GoRenderer[T]))
InnerScope creates a new scope and feeds it into the given function.
func (*GoRenderer[T]) L ¶ added in v0.7.0
func (r *GoRenderer[T]) L(line string, a ...any)
L renders text line using given format and puts it into the buffer.
Usage example:
r.Let("dst", "buf") r.L(`$dst = append($dst, $0)`, 12)
Will render:
buf = append(buf, 12)
func (*GoRenderer[T]) Let ¶ added in v0.12.2
func (r *GoRenderer[T]) Let(name string, value any)
Let adds a named constant into the scope of the renderer. It will panic if you will try to set a different value for the existing name.
func (*GoRenderer[T]) M ¶ added in v0.17.0
func (r *GoRenderer[T]) M(rcvr ...any) func(name string) func(params ...any) *GoFuncRenderer[T]
M method definition rendering helper. rcvr must be one of:
- single string
- single fmt.Stringer
- single *types.Var
- single types.Type
- single ast.Type
- a string or fmt.Stringer followed by an any option above except *types.Var.
The return value is a function with a signature whose semantics matches F.
So, the usage of this method will be like
r.M("t", "*Type")("Name")("ctx $ctx.Context").Returns("string", "error, "").Body(func(…) { r.L(`return $ZeroReturnValue $errs.New("error")`) })
Producing this code
func (t *Type) Name(ctx context.Context) (string, error) { return "", errors.New("error") }
func (*GoRenderer[T]) N ¶ added in v0.7.0
func (r *GoRenderer[T]) N()
N puts the new line character into the buffer.
func (*GoRenderer[T]) Object ¶ added in v0.19.0
func (r *GoRenderer[T]) Object(item types.Object) string
Object renders fully qualified object name.
func (*GoRenderer[T]) PkgObject ¶ added in v0.19.0
func (r *GoRenderer[T]) PkgObject(pkgRef any, name string) string
PkgObject renders fully qualified object name used with the referenced package. The reference can be done with one of:
- *types.Named.
- types.Object.
- *GoRenderer[T].
- string containing package path.
func (*GoRenderer[T]) Proto ¶ added in v0.7.0
func (r *GoRenderer[T]) Proto(t ast.Type) ProtocType
Proto renders protoc-gen-go generated name based on protoast protobuf types representation. Provides the same guarantees as Type, i.e. imports, package qualifiers, etc.
func (*GoRenderer[T]) R ¶ added in v0.7.0
func (r *GoRenderer[T]) R(line string)
R puts raw text without formatting into the buffer.
func (*GoRenderer[T]) S ¶ added in v0.7.0
func (r *GoRenderer[T]) S(line string, a ...any) string
S same as L but returns string instead of buffer write.
func (*GoRenderer[T]) Scope ¶ added in v0.10.0
func (r *GoRenderer[T]) Scope() (res *GoRenderer[T])
Scope returns a new renderer with a scope inherited from the original. Any scope changes made with this renderer will not reflect into the scope of the original renderer.
func (*GoRenderer[T]) SetReturnZeroValues ¶ added in v0.18.1
func (r *GoRenderer[T]) SetReturnZeroValues(values ...string)
SetReturnZeroValues adds a named constant with the ReturnZeroValues name whose role is to represent zero return values in functions.
Usage example:
r.Imports.Add("io").Manager("io") r.Imports.Add("errors").Manager("errs") r.F("file")("name", "string").Returns("*$io.ReadCloser", "error", "").Body(func(r *Go) { r.L(`// Look at trailing comma, it is important ... $ReturnZeroValues`) r.L(`return $ReturnZeroValues $errs.New("error")`) })
Output:
func file(name string) (io.ReadCloser, error) { // Look at trailing comma, it is important ... nil, return nil, errors.New("error" }
Take a look at the doc to know more about how results and parameters can be set up.
This example may look weird and actually harder to write than a simple formatting, but it makes a sense in fact when we work upon the existing source code, with these types.Type everywhere. You don't even need to set up this constant manually with them BTW, it will be done for you based on return types provided by the Returns call itself.
This value can be overriden BTW.
func (*GoRenderer[T]) T ¶ added in v0.20.0
func (r *GoRenderer[T]) T() *GoRenderer[T]
T produces a temporary renderer which renders for the same package but will not save its content anywhere. It is meant to deal with side effects caused by Type, PkgObject, Object, Proto and alike – – they do imports for the file generated with this renderer.
func (*GoRenderer[T]) Taken ¶ added in v0.14.0
func (r *GoRenderer[T]) Taken(name string) bool
Taken checks if the given unique name has been taken before.
func (*GoRenderer[T]) TryLet ¶ added in v0.16.0
func (r *GoRenderer[T]) TryLet(name string, value any)
TryLet same as Let but without a panic, it just exits when the variable is already there.
func (*GoRenderer[T]) Type ¶ added in v0.7.0
func (r *GoRenderer[T]) Type(t types.Type) string
Type renders fully qualified type name based on go/types representation. You don't need to care about importing a package this type defined in or to use package name to access a type. This method will do this all.
Beware though, the produced code may be incorrect if your type names are only used in strings or comments. You will have an import statement for them, but won't use them at the same time.
func (*GoRenderer[T]) Uniq ¶ added in v0.10.0
func (r *GoRenderer[T]) Uniq(name string, optSuffix ...string) string
Uniq is used to generate unique names, to avoid variables names clashes in the first place. This is how it works:
r.Uniq("name") // name r.Uniq("name") // name1 r.Uniq("name") // name2 r.Uniq("name", "alt") // nameAlt r.Uniq("name", "alt") // name3 r.Uniq("name", "opt") // nameOpt
Remember, Uniq's name and Let's key have nothing in common.
func (*GoRenderer[T]) Z ¶ added in v0.7.0
func (r *GoRenderer[T]) Z() (res *GoRenderer[T])
Z provides a renderer instance of "laZy" writing.
What it does:
- Inserts a new text block and switches the current renderer to it.
- Return a new renderer which references a block which was the current before.
So, with this renderer you will write into the previous "current", while the original renderer will write into the next. This means you will have text rendered with the returned GoRenderer instance will appear before the one made with the original renderer after the Z call. Even if writes with the original were made before the writes with the returned.
Example:
r.R(`// Hello`) x := r.Z() r.R(`// World!`) x.R(`// 你好`)
Output:
// Hello // 你好 // World!
See, even though we wrote Chinese("Hello") after the "World!" it appears before it after the rendering.
type ImportAliasControl ¶ added in v0.7.0
type ImportAliasControl struct {
// contains filtered or unexported fields
}
ImportAliasControl allows to assign an alias for package import
func (*ImportAliasControl) As ¶ added in v0.7.0
func (a *ImportAliasControl) As(alias string) *ImportReferenceControl
As assign given alias for the import. Conflicting one may cause a panic.
func (*ImportAliasControl) Ref ¶ added in v0.7.0
func (a *ImportAliasControl) Ref(ref string)
Ref adds a package name or alias into the renderingOptionsHandler's context under the given name ref
type ImportReferenceControl ¶ added in v0.7.0
type ImportReferenceControl struct {
// contains filtered or unexported fields
}
ImportReferenceControl allows to add a variable having package name (or alias) in the renderingOptionsHandler scope
func (*ImportReferenceControl) Ref ¶ added in v0.7.0
func (r *ImportReferenceControl) Ref(ref string)
Ref adds a package name or alias into the renderering context under the given name ref
type Importer ¶ added in v0.7.0
type Importer interface { Add(pkgpath string) *ImportAliasControl Module(relpath string) *ImportAliasControl Imports() *Imports }
Importer an abstraction for Imports extensions
type Imports ¶
type Imports struct {
// contains filtered or unexported fields
}
Imports a facility to add imports in the GoFile source file
func (*Imports) Add ¶
func (i *Imports) Add(pkgpath string) *ImportAliasControl
Add registers new import if it wasn't before.
func (*Imports) Module ¶ added in v0.7.0
func (i *Imports) Module(relpath string) *ImportAliasControl
Module to import a package placed with the current module
type L ¶ added in v0.17.0
type L string
L means "literal" and is intended to be used when raw strings are to be represented as quoted string literals while fmt.Stringer-s are to keep their original values.
type Module ¶ added in v0.7.0
type Module[T Importer] struct { // contains filtered or unexported fields }
Module all code generation is done within a module.
func New ¶ added in v0.7.0
func New[T Importer]( formatter Formatter, importer func(r *Imports) T, opts ...ModuleOption[T], ) (*Module[T], error)
New computes GoFile module data and creates an instance of Module
func (*Module[T]) Current ¶ added in v0.10.0
Current create a package places in the current directory. The name parameter is rather optional and will be replaced if there are existing Go files in the package.
func (*Module[T]) GetDependency ¶ added in v0.10.0
GetDependency adds the dependency at the given version to the module
func (*Module[T]) GetDependencyLatest ¶ added in v0.10.0
GetDependencyLatest adds the latest version of the dependency to the module
func (*Module[T]) Package ¶ added in v0.7.0
Package creates if needed and returns a subpackage of the project root. The pkgpath parameter can be relative to the module or to be a full package path, including module name as well. This will be handled. The name parameter is rather optional and will be replaced if there are existing Go files in the package.
func (*Module[T]) PackageName ¶ added in v0.10.0
PackageName returns package name if it does exist, returns empty string otherwise. props parameter may
func (*Module[T]) Raw ¶ added in v0.8.0
func (m *Module[T]) Raw(relpath string, opts ...RendererOption) *RawRenderer
Raw creates a renderer for plain text file
type ModuleOption ¶ added in v0.7.0
ModuleOption module option
func WithAliasCorrector ¶ added in v0.7.0
func WithAliasCorrector[T Importer](corrector AliasCorrector) ModuleOption[T]
WithAliasCorrector sets alias corrector for all GoRenderers to be created
func WithFixedDeps ¶ added in v0.10.0
func WithFixedDeps[T Importer](deps map[string]semver.Version) ModuleOption[T]
WithFixedDeps sets dependencies whose versions must have a specific version
type Package ¶ added in v0.7.0
type Package[T Importer] struct { // contains filtered or unexported fields }
Package represents a package of the current module
func (*Package[T]) Go ¶ added in v0.7.0
func (p *Package[T]) Go(name string, opts ...RendererOption) (res *GoRenderer[T])
Go creates new or reuse existing Go source file renderer, options may alter code generation.
func (*Package[T]) Raw ¶ added in v0.9.0
func (p *Package[T]) Raw(name string, opts ...RendererOption) *RawRenderer
Raw creates new or reuse existing plain text file renderer.
func (*Package[T]) Reuse ¶ added in v0.12.0
func (p *Package[T]) Reuse(name string) (result *GoRenderer[T], _ error)
Reuse creates a renderer over existing file if it exists. Works as Go without options otherwise.
func (*Package[T]) Void ¶ added in v0.13.0
func (p *Package[T]) Void() *GoRenderer[T]
Void creates a Go renderer for a file in the current package that will not be saved on the Modules' Render call and won't have any kind of footprint.
type Params ¶ added in v0.4.0
type Params struct {
// contains filtered or unexported fields
}
Params parameters list
type ProtocType ¶ added in v0.7.0
type ProtocType struct {
// contains filtered or unexported fields
}
ProtocType сущность для различных сценариев использования сгенерированного protoc-gen-go типа
func (ProtocType) Impl ¶ added in v0.7.0
func (s ProtocType) Impl() string
Impl используемый тип (добавляется указатель, если proto.Message реализуется на указателе на значение типа)
func (ProtocType) Local ¶ added in v0.7.0
func (s ProtocType) Local() string
Local локальное имя сгенерированного типа
func (ProtocType) LocalImpl ¶ added in v0.7.0
func (s ProtocType) LocalImpl() string
LocalImpl локальный используемый тип (добавляется указатель, если proto.Message реализуется на указателе на значение типа)
func (ProtocType) Pkg ¶ added in v0.7.0
func (s ProtocType) Pkg() string
Pkg возвращает название пакета
func (ProtocType) String ¶ added in v0.7.0
func (s ProtocType) String() string
String имя сгенерированного типа
type Q ¶ added in v0.17.0
type Q string
Q is a shortcut to write string values as Go source code strings.
type RawRenderer ¶ added in v0.8.0
type RawRenderer struct {
// contains filtered or unexported fields
}
RawRenderer rendering of plain text files
func (*RawRenderer) L ¶ added in v0.8.0
func (r *RawRenderer) L(line string, a ...any)
L puts a single formatted line and new line character
func (*RawRenderer) Put ¶ added in v0.22.0
func (r *RawRenderer) Put(data []byte)
Put puts raw bytes directly.
func (*RawRenderer) R ¶ added in v0.8.0
func (r *RawRenderer) R(line string)
R puts unformatted line and new line character
func (*RawRenderer) S ¶ added in v0.8.0
func (r *RawRenderer) S(line string, a ...any) string
S same as L, just returns string insert of pushing it
func (*RawRenderer) Z ¶ added in v0.8.0
func (r *RawRenderer) Z() *RawRenderer
Z returns extended RawRenderer which will write after the last written line of the current one and before any new line pushed after this call.
type RendererOption ¶ added in v0.8.0
type RendererOption func(r renderingOptionsHandler) bool
RendererOption an option to be applied before the rendering
func Autogen ¶ added in v0.7.0
func Autogen(appname string) RendererOption
Autogen puts header `Code generated by <app name> version vX.Y.Z. DO NOT EDIT.`
func WithValue ¶ added in v0.8.0
func WithValue(name string, value any) RendererOption
WithValue shortcut for WithValues with the single named value
func WithValues ¶ added in v0.8.0
func WithValues(vals map[string]any) RendererOption
WithValues puts given named values into the rendering context
Source Files ¶
- cases.go
- cases_initialisms.go
- commas.go
- consts.go
- hidden_type.go
- imports.go
- module.go
- module_deps.go
- module_options.go
- package.go
- renderer_go.go
- renderer_go_func.go
- renderer_go_func_def_zeroes.go
- renderer_go_line_format.go
- renderer_go_proto.go
- renderer_go_source_format.go
- renderer_options.go
- renderer_raw.go
- renderer_types.go
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
mimchain/internal/testexample
Package testexample is a testing playground for mimchain
|
Package testexample is a testing playground for mimchain |
internal
|
|
blocks
Package block provides an ordered sequence of buffers
|
Package block provides an ordered sequence of buffers |
heuristics
Package heuristics provides guessing on text value representation.
|
Package heuristics provides guessing on text value representation. |
test
Package reuse to dig into ASTs.
|
Package reuse to dig into ASTs. |