/aligo

Utility for checking and viewing Golang struct alignment info

Primary LanguageGoApache License 2.0Apache-2.0

GitHub Actions CI Status GoReportCard codebeat badge GitHub Actions CodeQL Status

ScreenshotsInstallationCommand-line completionMan documentationFAQUsageBuild StatusContributingThanksLicense


aligo is a utility for checking and viewing Golang struct alignment info.

Screenshots

aligo preview aligo preview

Installation

From source

To build the aligo from scratch, make sure you have a working Go 1.18+ workspace (instructions), then:

go install github.com/essentialkaos/aligo@latest

Command-line completion

You can generate completion for bash, zsh or fish shell.

Bash:

sudo aligo --completion=bash 1> /etc/bash_completion.d/aligo

ZSH:

sudo aligo --completion=zsh 1> /usr/share/zsh/site-functions/aligo

Fish:

sudo aligo --completion=fish 1> /usr/share/fish/vendor_completions.d/aligo.fish

Man documentation

You can generate man page for aligo using next command:

aligo --generate-man | sudo gzip > /usr/share/man/man1/aligo.1.gz

FAQ

Q: I think my struct is well aligned. How can I disable check for it?

A: You could add a comment with text aligo:ignore for this struct, and aligo will ignore all problems with it. Example:

// This is my supa-dupa struct
// aligo:ignore
type MyStruct struct {
  A bool
  B int
}

Usage

Usage: aligo {options} {command} package…

Commands

  check    Check package for alignment problems
  view     Print alignment info for all structs

Options

  --arch, -a name      Architecture name
  --struct, -s name    Print info only about struct with given name
  --tags, -t tag…      Build tags (mergeble)
  --no-color, -nc      Disable colors in output
  --help, -h           Show this help message
  --version, -v        Show version

Examples

  aligo view .
  Show info about all structs in current package

  aligo check .
  Check current package

  aligo check ./...
  Check current package and all sub-packages

  aligo --tags tag1,tag2,tag3 check ./...
  Check current package and all sub-packages with custom build tags

  aligo -s PostMessageParameters view .
  Show info about PostMessageParameters struct

Build Status

Branch Status
master CI
develop CI

Contributing

Before contributing to this project please read our Contributing Guidelines.

Thanks

We would like to thank:

License

Apache License, Version 2.0