Skip to content

Utility for checking and viewing Golang struct alignment info

License

Notifications You must be signed in to change notification settings

essentialkaos/aligo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GoReportCard Codacy badge GitHub Actions CI Status GitHub Actions CodeQL Status

ScreenshotsInstallationCommand-line completionMan documentationFAQUsage
CI StatusContributingThanksLicense


𝑎𝑙𝑖𝑔𝑜 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.22+ workspace (instructions), then:

go install github.com/essentialkaos/aligo/v2@latest

Using with Github Actions

For using aligo with Github Actions use this workflow file or add job Aligo to your workflow:

name: Aligo

on:
  push:
    branches: [master, develop]
  pull_request:
    branches: [master]

jobs:
  Aligo:
    name: Aligo
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: '1.22.x'

      - name: Check Golang sources with Aligo
        uses: essentialkaos/aligo-action@v2
        with:
          files: ./...

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

CI 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