return { { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) if type(opts) == "table" then opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { "hcl", "terraform", }) end end, }, { "jose-elias-alvarez/null-ls.nvim", opts = function(_, opts) if type(opts) == "table" then opts.sources = opts.sources or {} local null_ls = require("null-ls") vim.list_extend(opts.sources, { null_ls.builtins.diagnostics.tfsec, null_ls.builtins.formatting.terraform_fmt.with({ extra_filetypes = { "hcl" }, }), }) end end, }, { "neovim/nvim-lspconfig", opts = function(_, opts) if type(opts) == "table" then opts.servers = opts.servers or {} opts.servers.terraformls = {} end end, }, }