Esta página se muestra en inglés. Una traducción al español está en curso.
ScriptsJul 21, 2026·3 min de lectura

gopls — The Official Go Language Server

The official Go language server providing IDE features like auto-completion, go-to-definition, and diagnostics to any LSP-compatible editor.

Listo para agents

Instalación lista para agent

Este activo puede instalarse después de elegir el runtime, revisar el plan y ejecutar el comando correspondiente.

Native · 98/100Política: permitir
Superficie agent
Cualquier agent MCP/CLI
Tipo
Skill
Instalación
Single
Confianza
Confianza: Established
Entrada
gopls Overview
Comando de instalación directa
npx -y tokrepo@latest install 3c6ad7f3-84e1-11f1-9bc6-00163e2b0d79 --target codex

Ejecutar después de confirmar el plan con dry-run.

Introduction

gopls (pronounced "go please") is the official language server for Go, maintained by the Go team at Google. It implements the Language Server Protocol to bring rich IDE features — completion, navigation, refactoring, diagnostics — to any editor that speaks LSP.

What gopls Does

  • Provides intelligent auto-completion with type-aware suggestions and documentation
  • Implements go-to-definition, find-references, and rename across packages and modules
  • Runs real-time diagnostics including vet checks, staticcheck, and build errors
  • Supports code actions like organize imports, extract function, and generate tests
  • Handles workspace-wide symbol search and document outline

Architecture Overview

gopls runs as a long-lived process that communicates with editors over JSON-RPC. It loads Go modules using the standard go/packages API and builds an in-memory representation of the workspace. Incremental parsing and caching let it respond to edits without re-analyzing the entire module. It integrates analysis passes from the go/analysis framework for diagnostics.

Self-Hosting & Configuration

  • Install with go install golang.org/x/tools/gopls@latest; no separate runtime needed
  • Configure via editor-specific LSP settings or a gopls JSON settings block
  • Key settings include staticcheck (enable extra linters), gofumpt (stricter formatting), and analyses (toggle individual analyzers)
  • Memory usage scales with workspace size; large monorepos may need tuning via directoryFilters
  • Supports multi-module workspaces via the go.work file

Key Features

  • Zero-config setup for most editors — install and it works with Go modules out of the box
  • Integrated support for go generate, build tags, and CGo
  • Semantic token highlighting for richer syntax coloring
  • Inlay hints for parameter names, type parameters, and composite literal fields
  • Call hierarchy and implementation finder for navigating complex codebases

Comparison with Similar Tools

  • rust-analyzer — Equivalent LSP server for Rust; gopls mirrors its architecture for the Go ecosystem
  • TypeScript Language Server (tsserver) — Built into VS Code; gopls follows a similar approach but as a standalone binary
  • clangd — C/C++ language server; gopls is simpler to set up since Go tooling is self-contained
  • pyright — Python type-checking LSP; gopls benefits from Go's static type system for more precise analysis

FAQ

Q: Which editors support gopls? A: Any LSP-compatible editor including VS Code (via the Go extension), Neovim, Emacs, Sublime Text, and Helix.

Q: Does gopls replace goimports and gofmt? A: gopls runs organize-imports and formatting internally. You can still use standalone tools, but gopls handles them during save if configured.

Q: How much memory does gopls use? A: Typically a few hundred MB for medium projects. Large monorepos may need directoryFilters to limit scope.

Q: Is gopls maintained by the Go team? A: Yes, gopls is an official project under golang.org/x/tools, maintained by Google's Go team.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados