Я работаю над проектом Go и использую VSCode в качестве IDE. Я установил официальные расширения Go и настроил свои настройки таким образом, чтобы форматирование onSave
сохранялось во время кодирования.
Мой файл settings.json
выглядит так:
{
"editor.formatOnPaste": true,
"git.autofetch": true,
"[markdown]": {
"editor.wordWrap": "on"
},
"eslint.codeActionsOnSave.rules": null,
"solidity.telemetry": false,
"editor.formatOnSave": true,
"eslint.run": "onSave",
"workbench.editor.wrapTabs": true,
"remote.SSH.remoteServerListenOnSocket": true,
"redhat.telemetry.enabled": false,
"githubPullRequests.pullBranch": "never",
"eslint.workingDirectories": [],
"eslint.timeBudget.onValidation": {
"warn": 4000,
"error": 8000
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[python]": {
"editor.formatOnType": true
},
"prettier.ignorePath": "",
"editor.rulers": [
120
],
"editor.inlineSuggest.enabled": true,
"go.alternateTools": {
"go": "/Users/vitomirpavlov/go/bin"
},
"go.toolsManagement.autoUpdate": true,
"go.lintFlags": [
"--fast"
],
"go.lintTool": "golangci-lint",
"go.formatTool": "goimports",
"go.testTimeout": "15m",
"go.lintOnSave": "file",
"go.vetOnSave": "package",
"[go]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"[go.mod]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.validate": [
"javascript",
"javascriptreact"
],
"prettier.requireConfig": true,
}
Я использую golang v1.20.14, gopls v0.15.3 и golangci-lint v1.51.0. Я попробовал несколько вещей, таких как переустановка расширения Go, удаление всех других конфигураций в файле settings.json
и отключение всех других расширений, которые у меня есть, чтобы убедиться в отсутствии конфликтов.
У меня довольно длинные строки, которые нужно форматировать как многострочные, но это вообще не форматирует.
Как правильно настроить линтер/форматер?
@JimB Я проверил, удалив его, но это все равно не решает проблему.
вам может потребоваться указать форматировщик для go: "editor.defaultFormatter": "golang.Go"
@Hoopra, вообще-то, это сработало! Теперь он перезаписал defaultFormatter, который я установил выше. Теперь я вижу, что это было очевидно, потому что на других языках я сделал это :D Спасибо!
Чтобы отформатировать файл кода, вам понадобится форматировщик по умолчанию для этого языка:
"[go]": {
"editor.defaultFormatter": "golang.Go"
}
Я не знаю vscode, но вижу, что
editor.defaultFormatter
настроен на что-то, что не предназначено для Go. При быстром поиске в Google кажется, что эта настройка переопределяет любые отдельные настройки плагина.