Key details

  1. Announcement dated October 16, 2026.
  2. Interactive code actions available in gopls v0.24.0 and VS Code Go extension v0.56.0.
  3. Configurable struct tag insertion/removal and generated interface implementations are demonstrated.
  4. Protocol is a proposed LSP extension, not an accepted universal standard.
  5. Move Declaration across packages is preview work for a future release.
  6. Change Signature and interactive conflict resolution are roadmap items.

What builders should take away

  1. Update gopls and the official VS Code Go extension together before testing interactive code actions.
  2. Use tag-selection dialogs instead of accepting hard-coded JSON/camelCase defaults.
  3. Review generated interface method stubs and compile/test before committing.
  4. Do not assume other editors or language servers support the proposed LSP forms yet.
  5. Track the LSP design issue and Go release notes before planning automation around preview refactorings.

What changed

On October 16, 2026, the Go team announced interactive refactoring in gopls v0.24.0 and the official VS Code Go extension v0.56.0. The implementation introduces dynamic, multi-step prompts during language-server code actions, letting developers specify details that standard LSP actions cannot currently ask for. It builds on a proposed LSP extension developed with input from the Dart team; the protocol proposal is not an adopted cross-editor standard.

Why it matters

Traditional language-server refactors generally infer intent from code location or use editor-specific UI integrations. A shared way to ask for choices could allow the same language-server feature to work across editors, reduce bespoke editor integrations, and make automated refactors more reliable. Go developers can use the shipped actions now, but other languages and editors should not assume compatibility until the proposal is adopted and implemented.

The change: code actions can ask questions

Instead of unconditionally adding camelCase JSON tags, gopls can ask which struct tags to add or remove and which naming convention to apply. The implementation can also ask which interface a concrete type should implement, search matching symbols and generate method stubs, including for generic interfaces.

The LSP gap it aims to close

Standard LSP code actions generally accept no dynamic input from the user; rename has a specialised parameter path. The Go team's proposed interactive code-action protocol would allow a language server to describe a sequence of input forms and then produce edits, avoiding a separate UI implementation for every editor and language combination. The upstream design and Microsoft LSP issue remain under discussion.

What's shipping and what's not

The official Go blog identifies gopls v0.24.0 and vscode-go v0.56.0 as working implementations. The blog also describes tag and interface actions present since v0.23.0. Cross-file and cross-package Move Declaration is demonstrated as a preview for an upcoming release, not a generally available v0.24 feature. Change Signature and richer conflict-resolution prompts are future directions.

Practical adoption and limits

Go developers using the supported VS Code extension can test the new actions and review the generated edits, especially import cleanup, tag naming and interface signatures. The project has explored proof-of-concept clients for Neovim and Emacs, but editor support varies; developers should verify exact gopls and extension versions before relying on the workflow.

What to watch next

  • Whether the LSP proposal is accepted or revised.
  • Adoption by Neovim, Emacs, Dart and other language servers.
  • Release of cross-package Move Declaration and Change Signature refactorings.
  • Compatibility and regression reports from real projects.

Still unclear

  • The proposed protocol may change during review.
  • Not all Go editors support the interaction today.
  • The release announcement does not establish independent productivity gains.

Sources

Direct reading behind this dossier.

3 sources

Discussion

Discussion is reader-contributed. Comments are not part of the BTN dossier or its editorial evidence.

0 visible comments

Join the discussion

Keep comments useful and relevant. Reader contributions may be moderated and are not BTN editorial evidence.

Sign in to comment