|
|
8 years ago | |
|---|---|---|
| .. | ||
| LICENSE | 8 years ago | |
| README.md | 8 years ago | |
| editorconfig.go | 8 years ago | |
A Editorconfig file parser and manipulator for Go.
This package is already working, but still under testing.
We recommend the use of gopkg.in for this package:
go get -u gopkg.in/editorconfig/editorconfig-core-go.v1
Import by the same path. Tha package name you will use to access it is
editorconfig.
import (
"gopkg.in/editorconfig/editorconfig-core-go.v1"
)
editorConfig, err := editorconfig.ParseFile("path/to/.editorconfig")
if err != nil {
log.Fatal(err)
}
data := []byte("...")
editorConfig, err := editorconfig.ParseBytes(data)
if err != nil {
log.Fatal(err)
}
This method builds a definition to a given filename. This definition is a merge of the properties with selectors that matched the given filename. The lasts sections of the file have preference over the priors.
def := editorConfig.GetDefinitionForFilename("my/file.go")
This definition have the following properties:
type Definition struct {
Selector string
Charset string
IndentStyle string
IndentSize string
TabWidth int
EndOfLine string
TrimTrailingWhitespace bool
InsertFinalNewline bool
}
.editorconfig filesIf you want a definition of a file without having to manually
parse the .editorconfig files, you can then use the static version
of GetDefinitionForFilename:
def, err := editorconfig.GetDefinitionForFilename("foo/bar/baz/my-file.go")
In the example above, the package will automatically search for
.editorconfig files on:
foo/bar/baz/.editorconfigfoo/baz/.editorconfigfoo/.editorconfigUntil it reaches a file with root = true or the root of the filesystem.
You can easily convert a Editorconfig struct to a compatible INI file:
// serialize to slice of bytes
data, err := editorConfig.Serialize()
if err != nil {
log.Fatal(err)
}
// save directly to file
err := editorConfig.Save("path/to/.editorconfig")
if err != nil {
log.Fatal(err)
}
To run the tests:
go test -v