return { "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, keys = { { "mg", ":CMakeGenerate -G Ninja", desc = "CMake Generate -G Ninja", remap = false }, { "mb", ":CMakeBuild", desc = "CMake Build", remap = false }, { "mr", ":CMakeRun", desc = "CMake Run", remap = false }, { "mc", ":CMakeClean", desc = "CMake Clear", remap = false }, { "ms", ":CMakeStop", desc = "CMake Stop", remap = false }, { "mq", ":CMakeCloseRunner", desc = "CMake Close", remap = false }, { "mt", ":CMakeSelectLaunchTarget", desc = "CMake Change Target", remap = false }, { "ma", ":CMakeLaunchArgs", desc = "CMake Launch Args", remap = false }, { "md", ":CMakeDebug", desc = "CMake Debug", remap = false }, }, opts = { cmake_build_directory = "build", cmake_soft_link_compile_commands = false, }, }