---@module 'lazy'
---@type LazySpec
return { {
	'ellisonleao/gruvbox.nvim',
	lazy = false,
	priority = 1000,
	---@module 'gruvbox'
	---@type GruvboxConfig
	opts = {
		styles = {
			comments = { italic = true }
		}
	},
	config = function(_, opts)
		local colour = require('gruvbox')
		colour.setup(opts)
		vim.cmd.colorscheme('gruvbox')
		_G.userdat.palette = colour.palette

		-- non-essential configuration should be put in here
		Autocmd('VimEnter', {
			callback =
			    function()
				    -- spell highlight must be grey
				    for _, spell in pairs { 'SpellBad', 'SpellCap', 'SpellRare', 'SpellLocal' } do
					    vim.api.nvim_set_hl(0, spell,
						    { fg = nil, bg = nil, sp = _G.userdat.palette.gray, undercurl = true })
				    end
			    end
		})
	end
} }
