DEV Community

Cover image for Golang automatic code formatting : Code like a Pro
karan singh
karan singh

Posted on • Originally published at Medium

Golang automatic code formatting : Code like a Pro

Why Format your code?

Everyone loves clean readable and beautifully organized code using tabs/spaces (whatever you like), short lines etc. As a developer, while writing code, you should not spend time counting the tabs/spaces, instead let the tools handle your code formatting for you and that too automatically.

In this short post, we will learn how you can use golines to automagically format all your golang code

Implementing Golines: a Golang formatter

  • Installing golines
go install github.com/segmentio/golines@latest
Enter fullscreen mode Exit fullscreen mode
  • Using golines from VSCode

    • Go into the VSCode settings menu, scroll down to the section for the Run on Save extension, click the Edit in settings.json link
    • Set the emeraldwalk.runonsave key as follows
    "emeraldwalk.runonsave": {
        "commands": [
            {
                "match": "\\.go$",
                "cmd": "golines ${file} -w"
            }
        ]
    }
    
    • Save the settings and restart VSCode
  • (optional) using golines from CLI

golines -w "path to *.go files"
Enter fullscreen mode Exit fullscreen mode

Summary

golines together with vscode helps you autoformatt your code

from

myMap := map[string]string{"first key": "first value", "second key": "second value", "third key": "third value", "fourth key": "fourth value", "fifth key": "fifth value"}
Enter fullscreen mode Exit fullscreen mode

To

myMap := map[string]string{
    "first key": "first value",
    "second key": "second value",
    "third key": "third value",
    "fourth key": "fourth value",
    "fifth key": "fifth value",
}
Enter fullscreen mode Exit fullscreen mode

Isn't this beautiful, I know it is ;)

Top comments (2)

Collapse
 
kakhavk profile image
Kakhaber Kashmadze

It is better than gofmt because that it also organizes imports! Thank you

Collapse
 
mareoraft profile image
MareoRaft

Why not use Go's builtin code formatter, gofmt?

usage:
go fmt path/to/your/package

I read about it on go.dev/blog/gofmt