Skip to content

gopls adds interactive refactoring, and proposes it as an LSP standard

Go editor refactorings can now ask follow-up questions through multi-step dialogs, a capability the Go and Dart teams built as an open LSP extension for any language.

Source: The Go Blog

Go’s language server, gopls, can now ask questions mid-refactor instead of guessing. The Go team, working with the Dart team, added this as a new Language Server Protocol capability rather than a Go-only feature, so any editor or language server can adopt it.

The examples in the post: adding struct tags now opens a dialog to pick which tags to add, json, yaml, db, followed by a second dialog for naming convention, camelCase, snake_case or PascalCase. Implementing an interface gets a searchable dialog with autocomplete for picking the type. Moving a declaration to another file opens a file picker and updates references and imports automatically. It needs gopls v0.24.0 and the VS Code Go extension v0.56.0.

Add struct tags → [ ] json [ ] yaml [ ] db → Next
Naming convention → camelCase / snake_case / PascalCase → Apply

Why it matters: most LSP refactorings today are all-or-nothing: the server picks defaults and you clean up after. A standard for multi-step dialogs means editor-agnostic refactorings that actually ask what you want, and since it is proposed as an open LSP capability rather than a VS Code or Go-specific hack, other language servers can pick it up without reinventing it.

The caveat: today it only ships in gopls and VS Code’s Go extension. Other editors and language servers need to implement the same LSP extension before it works there too.

Share

More from The Wire

All briefs

GitHub Copilot retires six AI models today

Gemini 3.7 Flash, GPT-5.5, GPT-5.4, GPT-5.4 mini, GPT-5 mini and Grok 4.5 stop working across Copilot Chat, inline edits, agent mode and completions from today.

via GitHub