--- /dev/null
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = { ensure_installed = { "cmake" } },
+ },
+ {
+ "nvimtools/none-ls.nvim",
+ optional = true,
+ opts = function(_, opts)
+ local nls = require("null-ls")
+ opts.sources = vim.list_extend(opts.sources or {}, {
+ nls.builtins.diagnostics.cmake_lint,
+ })
+ end,
+ },
+ {
+ "mfussenegger/nvim-lint",
+ optional = true,
+ opts = {
+ linters_by_ft = {
+ cmake = { "cmakelint" },
+ },
+ },
+ },
+ {
+ "mason.nvim",
+ opts = { ensure_installed = { "cmakelang", "cmakelint" } },
+ },
+ {
+ "neovim/nvim-lspconfig",
+ opts = {
+ servers = {
+ neocmake = {},
+ },
+ },
+ },
+ {
+ "Civitasv/cmake-tools.nvim",
+ lazy = true,
+ init = function()
+ local loaded = false
+ local function check()
+ local cwd = vim.uv.cwd()
+ if vim.fn.filereadable(cwd .. "/CMakeLists.txt") == 1 then
+ require("lazy").load({ plugins = { "cmake-tools.nvim" } })
+ loaded = true
+ end
+ end
+ check()
+ vim.api.nvim_create_autocmd("DirChanged", {
+ callback = function()
+ if not loaded then
+ check()
+ end
+ end,
+ })
+ end,
+ opts = {},
+ },
+}