Що робить інструмент
Форматер Go переписує вихідний код Go в той єдиний канонічний стиль, яким користується вся спільнота Go. Вставте файл чи фрагмент — і він повернеться з відступами, пробілами, групуванням імпортів і вирівняними полями структур та коментарями за правилами gofmt.
Тут працює справжній gofmt з інструментарію Go, скомпільований у WebAssembly. Жодних наближень: ви бачите саме те, що записав би go fmt, тож відформатований код можна комітити без зайвих диффів у CI.
Як користуватися
- Вставте код Go або відкрийте файл
.go. - Відформатований код з’являється праворуч під час введення.
- Залиште відступ Табуляція для коду, який будете комітити. Виберіть 2 пробіли або 4 пробіли, якщо код іде в документ, на слайд чи на сайт, що показує табуляцію надто широкою.
- Скопіюйте або збережіть результат.
Якщо код не розбирається, інструмент показує першу помилку з рядком і стовпцем, наприклад expected ')', found '{', і ви можете одразу перейти до цього рядка.
Приклад
Приклад — коротка програма, втиснута в якомога менше рядків: імпорти, розділені крапкою з комою, структура у два рядки й функції без пробілів навколо операторів. Після форматування:
- імпорти стають блоком у дужках, по одному пакету в рядку;
- поля структури розміщуються в окремих рядках, а їхні типи вирівнюються в стовпчик;
if u.Age<18{перетворюється наif u.Age < 18 {, а тіло переходить на окремий рядок;- у складених літералах з’являються пробіли після ком і двокрапок.
Що gofmt змінює, а що ні
gofmt змінює лише оформлення. Він ніколи не перейменовує ідентифікатори, не переставляє оголошення й не видаляє невикористані імпорти — це робота для інструментів на кшталт goimports і go vet. Він також зберігає ваші перенесення рядків там, де вони мають сенс, тож довгий список аргументів, розбитий на кілька рядків, лишається розбитим.
Коментарі зберігаються й отримують відступи разом із навколишнім кодом. Коментарі в кінці кількох послідовних рядків вирівнюються в стовпчик, так само як поля структур.
Поради
- Форматування — швидкий спосіб знайти пропущену фігурну дужку: позиція помилки зазвичай вказує на перший рядок після неї.
- Запускайте форматер, перш ніж ділитися кодом в issue чи на рев’ю. Тоді рецензенти зможуть зосередитися на тому, що код робить, а не на тому, як він виглядає.
- Увімкніть у редакторі «format on save» через gopls, щоб ваші файли завжди збігалися з цим результатом.
Часті запитання
› Це справжній gofmt?
Так. Форматер — це код gofmt з інструментарію Go, скомпільований у WebAssembly, тож результат байт у байт збігається з тим, що виводять `gofmt` або `go fmt` на вашому комп’ютері.
› Чи потрібне оголошення package?
Ні. Найкраще вставляти повний файл, але gofmt приймає й список оголошень або кілька інструкцій — це зручно для фрагментів, скопійованих із допису в блозі чи чату.
› Чому для відступів використовується табуляція?
gofmt завжди робить відступи табуляцією, а вирівнює пробілами. Це домовленість Go, і редактори показують табуляцію будь-якої зручної вам ширини. Якщо для документа чи слайда потрібні пробіли, виберіть 2 або 4 пробіли — замінено буде лише табуляцію на початку рядків.
› Чи завантажується мій код на сервер?
Ні. Модуль WebAssembly завантажується один раз, а форматування виконується локально у вашому браузері.