Search code examples
coding-stylego

How to support Allman Style coding in Go?


In all the projects I've worked with in other languages the bracing-style of choice has been the Allman Style(aka ANSI style). The lack of a free-form bracing style(parenthesis too) is something I miss from other C-style syntax family of languages when working in Go.

Can anyone come up with a way to make the Go compiler accept the following bracing-style?

package main

import "fmt"

func main() 
{
    f()
    fmt.Println("Returned normally from f.")
}

func f() 
{
    fmt.Println("In function f.")
}

Note I am aware of the arguments for why Go was designed with such artificial 'limitation', but I'm not really buying into it. I'm a firm believer that the bracing-style used should really be decided by the coding-standard adopted by the people or company working on the code-base rather than being forced upon by the language itself.

As such please consider my question within the scope of 'how it can be done' rather than 'why not to do it and just adapt'.

Thanks


Solution

  • Give a try to https://gofork.org

    forkgo supports allman/horstmann style:

    package main
    import
    (   "fmt"
    )
    
    
    func main()
    {   if false
        {   fmt.Println("jack")
            fmt.Println("forkgo")
        } else
        {   fmt/
               .Println("hello")
            fmt.Println("forkgo")
        }
    }