diff options
Diffstat (limited to 'lua/cmake/autocmds.lua')
-rw-r--r-- | lua/cmake/autocmds.lua | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/lua/cmake/autocmds.lua b/lua/cmake/autocmds.lua index f430cf1..4b5b479 100644 --- a/lua/cmake/autocmds.lua +++ b/lua/cmake/autocmds.lua @@ -4,16 +4,20 @@ local constants = require("cmake.constants") local autocmds = {} -function autocmds.setup() - local cmake_nvim_augroup = vim.api.nvim_create_augroup("CMake", {}) +local cmake_nvim_augroup = vim.api.nvim_create_augroup("CMake", {}) + +function autocmds.set_on_variants() vim.api.nvim_create_autocmd({ "BufWritePost" }, { group = cmake_nvim_augroup, pattern = constants.variants_yaml_filename, callback = function(args) - require("cmake.project").setup() + actions.reset_project() end, desc = "Setup project after saving variants", }) +end + +function autocmds.setup() if config.generate_after_save then vim.api.nvim_create_autocmd({ "BufWritePost" }, { group = cmake_nvim_augroup, @@ -24,6 +28,21 @@ function autocmds.setup() desc = "Generate project after saving CMakeLists.txt", }) end + --NOTE: this autocmd was written only to handle very rarely case when inside directory + --without CMakeLists.txt neovim starts like `nvim CMakeLists.txt`. In this case initial + --setup will not make the affect and to correctry process the file save, we need to create + --this autocommand so it reinitializes the project if it has not been done before. IMHO this + --is not the best way to do this + if config.generate_after_save then + vim.api.nvim_create_autocmd({ "BufEnter" }, { + group = cmake_nvim_augroup, + pattern = constants.cmakelists, + callback = function(args) + actions.reset_project({ first_time_only = true }) + end, + desc = "Set up project on open CMakeLists.txt if not set before", + }) + end end return autocmds |