go-formatter

command module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2022 License: MIT Imports: 16 Imported by: 0

README

# go-formatter

Конфигурируемый форматер кода для Go на Go

Установка и использование

Конфигурация

Файл config.json нужно положить в корень проекта

{
  "formatters": [
    {
      "name": "many_arguments",
      "on": true
    },
    ...
  ]
}

Пример конфигурации

{
  "formatters": [
    {
      "name": "context_first_parameter",
      "on": true
    },
    {
      "name": "empty_func_body",
      "on": true
    },
    {
      "name": "grouped_vars",
      "on": true
    },
    {
      "name": "many_arguments",
      "on": true
    },
    {
      "name": "methods_with_star_and_rename",
      "on": true
    },
    {
      "name": "new_line",
      "on": true
    },
    {
      "name": "rm_ignore_vars",
      "on": true
    },
    {
      "name": "start_enums_at_one",
      "on": true
    },
    {
      "name": "with",
      "on": true
    },
    {
      "name": "order",
      "on": true
    }
  ]
}

Правила форматирования

context_first_parameter

До

package a

import "context"

func ctxFirstParameter(a int, ctx context.Context) {

}

После

package a

import "context"

func ctxFirstParameter(ctx context.Context, a int) {

}

empty_func_body

До

package a

func WithCarColor(color string) {

}

После

package a

func WithCarColor(color string) {}

grouped_vars

До

package main

var a = "a"
var b = "b"

var (
	с = "с"
)

var (
	d = "d"
)
var e = "e"

После

package main

var (
	a = "a"
	b = "b"
)

var с = "с"

var (
	d = "d"
	e = "e"
)

many_arguments

До

package a

func ManyArguments(a int, b int, c string, d bool, l int64, m string) {

}


После

package a

func ManyArguments(
	a int,
	b int,
	c string,
	d bool,
	l int64,
	m string,
) {

}


methods_with_star_and_rename

До

package main

type car struct{}

func (c *car) run() {}

func (e car) stop() {}


После

package main

type car struct{}

func (c *car) run() {}

func (c *car) stop() {}


new_line

До

package main

type car struct{}

func (c *car) run()  {}
func (c *car) stop() {}

После

package main

type car struct{}

func (c *car) run() {}

func (c *car) stop() {}

rm_ignore_vars

До

package main

var _, b = "b", "b"

var _, _ = "b", "b"

После

package main

var _, b = "b", "b"

start_enums_at_one

До

package main

type Operation int

const (
	Add Operation = iota
	Subtract
	Multiply
)

После

package main

type Operation int

const (
	Add Operation = iota + 1
	Subtract
	Multiply
)

with

До

package a

func CarWithColor(color string) {}

func carWithPrice(price float64) {}

После

package a

func WithCarColor(color string) {}

func withCarPrice(price float64) {}

arguments_form

До

func argumentsForm(a, b, c int) {

}

После

package a

func argumentsForm(a int, b int, c int) {

}

return_value

До

package a

func returnValue(a, b int) (e int, d bool) {
	return a + b, a > b
}

После

package a

func returnValue(a, b int) (int, bool) {
	return a + b, a > b
}

order

До

package main

var v1 = "v1"

type e struct{}

var v2 = "v2"

После

package main

var v1 = "v1"

var v2 = "v2"

type e struct{}

Как пользоваться

Запуск

Для запуска на весь проект

go-formatter -fix .

Для запуска на отдельную директорию

go-formatter -fix DIR_PATH

Также команду можно выполнять по сохранению или на git pre_commit hook

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL