return {
	"kylechui/nvim-surround",
	version = "*",
	event = "VeryLazy",
	init = function()
		-- Disable default keymaps (we'll set custom ones)
		vim.g.nvim_surround_no_mappings = true
	end,
	config = function()
		require("nvim-surround").setup({
			-- Configuration for surrounds, aliases, etc. can go here
		})
		-- Set custom keymaps (v4 method)
		-- Add surrounding: Siw" -> surround word with quotes, Siw) -> (surround word)
		vim.keymap.set("n", "S", "<Plug>(nvim-surround-normal)", {
			desc = "Add surrounding",
		})
		-- Delete surrounding: SD" -> remove quotes, SD) -> remove parentheses
		vim.keymap.set("n", "SD", "<Plug>(nvim-surround-delete)", {
			desc = "Delete surrounding",
		})
		-- Change surrounding: SC"' -> change quotes to single quotes, SC)] -> change parens to brackets
		vim.keymap.set("n", "SC", "<Plug>(nvim-surround-change)", {
			desc = "Change surrounding",
		})
		-- Change surrounding on current line
		vim.keymap.set("n", "SCL", "<Plug>(nvim-surround-change-line)", {
			desc = "Change surrounding on current line",
		})
		-- Visual mode: select text and press S" -> surround selection with quotes
		vim.keymap.set("v", "S", "<Plug>(nvim-surround-visual)", {
			desc = "Add surrounding in visual mode",
		})
	end,
}
