local lspconfig = require('lspconfig')
local config = {
	filetypes = {
		"bib",
		"gitcommit",
		"markdown",
		"org",
		"pandoc",
		"plaintex",
		"rnoweb",
		"rst",
		"tex",
		"text",
	},
	settings = {
		["ltex"] = {
			language = "auto"
		}
	}
}

lspconfig.ltex.setup(config)

-- Use TeX LSP for spellcheck.
vim.api.nvim_create_user_command("SCOn", function (args)
	lspconfig.ltex.setup(config)
end, { desc = "Enable spellcheck." })

vim.api.nvim_create_user_command("SCOff", function (args)
	lspconfig.ltex.setup { filetypes = {} }
end, { desc = "Disable spellcheck." })

vim.api.nvim_create_user_command("SCLangRU", function (args)
	config.settings['ltex'].language = "ru-RU"
	lspconfig.ltex.setup(config)
end, { desc = "Set spellcheck to Russian." })

vim.api.nvim_create_user_command("SCLangEN", function (args)
	config.settings['ltex'].language = "en-US"
	lspconfig.ltex.setup(config)
end, { desc = "Set spellcheck to English." })

vim.api.nvim_create_user_command("SCLangAuto", function (args)
	config.settings['ltex'].language = "auto"
	lspconfig.ltex.setup(config)
end, { desc = "Set spellcheck to Auto." })

vim.api.nvim_create_user_command("SCForce", function (args)
	vim.cmd("setfiletype text")
	vim.cmd("SCOn")
end, { desc = "Set buffer type to text." })

vim.api.nvim_create_user_command("SCReset", function (args)
	vim.cmd("filetype detect")
	vim.cmd("SCLangAuto")
end, { desc = "Set buffer type to auto." })

vim.api.nvim_create_user_command("SCInfo", function (args)
	vim.cmd("LspInfo")
end, { desc = "Show info about spellcheck." })