A Go language server extension for coc.nvim that integrates gopls and provides additional Go development tools.
coc-go is a Go language server extension for the coc.nvim editor. It integrates the official Go language server (gopls) to provide features like code completion, diagnostics, and navigation, while adding extra commands for tasks like managing struct tags, generating tests, and installing Go tools. It solves the problem of setting up a robust Go development environment in Vim/Neovim.
Go developers who use Vim or Neovim with the coc.nvim extension framework and want a language server-powered editing experience.
Developers choose coc-go because it provides a streamlined, gopls-focused setup with convenient commands for everyday Go tasks, without the complexity of larger plugins like vim-go. It integrates seamlessly with coc.nvim's ecosystem.
Go language server extension using gopls for coc.nvim.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly leverages the official Go language server for reliable code completion, diagnostics, and navigation, as it's built directly on gopls.
Provides dedicated commands like go.tags.add and go.tags.remove to efficiently handle JSON, YAML, and XML tags, as detailed in the commands table.
Includes commands such as go.test.generate.function to generate unit tests with a single keystroke, simplifying test creation using gotests.
Offers commands like go.install.tools to install and update essential Go development tools (gopls, gomodifytags, etc.) without manual setup.
Requires coc.nvim and thus Node.js, adding installation complexity and resource overhead compared to pure Vimscript plugins.
As admitted in the FAQ, it doesn't aim to match comprehensive plugins like vim-go, lacking built-in debugging, refactoring, or advanced build tools.
Extensive gopls options (e.g., go.goplsOptions) can be overwhelming, and changes often require restarting coc.nvim, as noted in the configuration notes.