goreleaser-ls.nvim
April 3, 2026 · View on GitHub
Neovim plugin for goreleaser-ls — a language server for .goreleaser.yml files.

Features
- Hover — documentation for all goreleaser keys, enum values, deprecation warnings
- Completion — context-aware keys, nested fields,
{{ .template variables - Diagnostics — missing
version: 2, unknown keys, deprecated fields, invalid template variables, build ID cross-references - Go to definition — jump from ID references to build definitions
- Document symbols — outline of all configuration sections
- Code actions — quick-fix deprecated field names
Requirements
Install the goreleaser-ls binary:
go install github.com/owenrumney/goreleaser-ls/cmd/goreleaser-ls@latest
Installation
lazy.nvim
{
"owenrumney/goreleaser-ls.nvim",
ft = "yaml",
opts = {},
}
packer.nvim
use {
"owenrumney/goreleaser-ls.nvim",
config = function()
require("goreleaser-ls").setup()
end,
}
Configuration
All options are optional — defaults work out of the box if goreleaser-ls is on your $PATH.
require("goreleaser-ls").setup({
-- Command to start the language server.
cmd = { "goreleaser-ls" },
-- Files used to detect the project root.
root_markers = {
".goreleaser.yml",
".goreleaser.yaml",
"goreleaser.yml",
"goreleaser.yaml",
},
})
How it works
The plugin activates on FileType yaml and checks the filename against goreleaser patterns (.goreleaser.yml, .goreleaser.yaml, etc.). It only starts the language server for matching files — other YAML files are unaffected.
License
MIT