return {
	-- surround things with other things using ys/cs/ds
	{ "kylechui/nvim-surround", config = true, event = { "CursorHold", "InsertEnter" } },

	-- extend the ^x / ^a possibilities to dates, hex, alphabets, markdown headers
	-- REMAPPED TO C-X / C-S for decrement/increment
	{
		"monaqa/dial.nvim",
		version = false,
		config = function()
			local augend = require("dial.augend")
			require("dial.config").augends:register_group({
				-- default augends used when no group name is specified
				default = {
					augend.integer.alias.decimal,
					augend.integer.alias.hex,
					augend.hexcolor.new({ case = "lower" }),
					augend.date.alias["%Y/%m/%d"],
					augend.date.alias["%Y-%m-%d"],
					augend.date.alias["%m/%d"],
					augend.date.alias["%H:%M:%S"],
					augend.date.alias["%H:%M"],
					augend.constant.alias.de_weekday_full,
					augend.constant.alias.de_weekday,
					augend.semver.alias.semver,
					augend.constant.alias.Alpha,
					augend.constant.alias.alpha,
					augend.constant.alias.bool,
					augend.constant.new({
						elements = { "and", "or" },
						word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
						cyclic = true, -- "or" is incremented into "and".
					}),
					augend.constant.new({
						elements = { "&&", "||" },
						word = false,
						cyclic = true,
					}),
				},
			})
		end,
		event = { "CursorHold", "InsertEnter" },
		keys = {
			{
				"<C-s>",
				function()
					require("dial.map").manipulate("increment", "normal")
				end,
				mode = "n",
			},
			{
				"<C-x>",
				function()
					require("dial.map").manipulate("decrement", "normal")
				end,
				mode = "n",
			},
			{
				"<C-s>",
				function()
					require("dial.map").manipulate("increment", "visual")
				end,
				mode = "v",
			},
			{
				"<C-x>",
				function()
					require("dial.map").manipulate("decrement", "visual")
				end,
				mode = "v",
			},
			{
				"g<C-s>",
				function()
					require("dial.map").manipulate("increment", "gnormal")
				end,
				mode = "n",
			},
			{
				"g<C-x>",
				function()
					require("dial.map").manipulate("decrement", "gnormal")
				end,
				mode = "n",
			},
			{
				"g<C-s>",
				function()
					require("dial.map").manipulate("increment", "gvisual")
				end,
				mode = "v",
			},
			{
				"g<C-x>",
				function()
					require("dial.map").manipulate("decrement", "gvisual")
				end,
				mode = "v",
			},
		},
	},
}
