lithammer / dedent

Remove any common leading whitespace from multiline strings
https://pkg.go.dev/github.com/lithammer/dedent
MIT License
101 stars 9 forks source link
dedent go

Dedent

Build Status Godoc

Removes common leading whitespace from multiline strings. Inspired by textwrap.dedent in Python.

Usage / example

Imagine the following snippet that prints a multiline string. You want the indentation to both look nice in the code as well as in the actual output.

package main

import (
    "fmt"

    "github.com/lithammer/dedent"
)

func main() {
    s := `
        Lorem ipsum dolor sit amet,
        consectetur adipiscing elit.
        Curabitur justo tellus, facilisis nec efficitur dictum,
        fermentum vitae ligula. Sed eu convallis sapien.`
    fmt.Println(dedent.Dedent(s))
    fmt.Println("-------------")
    fmt.Println(s)
}

To illustrate the difference, here's the output:

$ go run main.go
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Curabitur justo tellus, facilisis nec efficitur dictum,
fermentum vitae ligula. Sed eu convallis sapien.
-------------

        Lorem ipsum dolor sit amet,
        consectetur adipiscing elit.
        Curabitur justo tellus, facilisis nec efficitur dictum,
        fermentum vitae ligula. Sed eu convallis sapien.

License

MIT