界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

golang-tooling

golang-tooling

【开发与工程】Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: golang-tooling description: Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. metadata: triggers: files: - 'golangci.yml' keywords: - gopls - golangci-lint - go vet - goimports - staticcheck - go tooling - go lint

Golang Tooling Standards

Priority: P1 (HIGH)

Verification Workflow (Mandatory)

After writing or modifying Go code, run in order:

  1. mcp__ide__getDiagnostics — gopls real-time errors and type warnings (requires gopls-lsp plugin)
  2. go vet ./... — catch printf mismatches, unreachable code, shadowed variables
  3. goimports -w . — organize imports and format in one pass
  4. golangci-lint run ./... — run full linter suite (if .golangci.yml present)

Tool Overview

ToolPurposeWhen to Use
goplsLSP: diagnostics, completion, hoverAlways (IDE integration)
go vetStatic analysis — correctness bugsAfter every edit
goimportsImport sorting + gofmtBefore commit
golangci-lintAggregated linters (errcheck, staticcheck, etc.)CI / pre-commit
staticcheckAdvanced static analysisLarge codebases

golangci-lint Setup

Configure via .golangci.yml at repo root. Recommended linters:

  • errcheck — enforce error handling
  • staticcheck — bug detection beyond go vet
  • govet — shadow, composites
  • revive — style enforcement
  • gosec — security issues

See golangci.yml example.

gopls Integration

gopls powers mcp__ide__getDiagnostics. Install:

go install golang.org/x/tools/gopls@latest

Anti-Patterns

  • No gofmt alone: Use goimports — it formatting AND imports.
  • No manual import sorting: Let goimports manage order.
  • No skipping go vet: Run it — catches real bugs gofmt misses.
  • No broad lint disable: Fix root cause instead of //nolint comments.

References

我的收藏