aboutsummaryrefslogtreecommitdiff
path: root/lua/cmake/autocmds.lua
diff options
context:
space:
mode:
authorDaniil Rozanov <daniilrozzanov@gmail.com>2024-04-26 02:09:30 +0300
committerDaniil Rozanov <daniilrozzanov@gmail.com>2024-04-26 02:09:30 +0300
commit93945a96daad5db8f91b07d1aef65b3ec6f758fb (patch)
tree92b061bfffcf58515bb4c04ed448364262d67341 /lua/cmake/autocmds.lua
parent8d05fcaaeb1442c709f148ff934d92900743f051 (diff)
feat: autocommands to regenerate and reset project
One autocommand generates project after saving CMakeLists.txt, and other sets up all project after saving variants
Diffstat (limited to 'lua/cmake/autocmds.lua')
-rw-r--r--lua/cmake/autocmds.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/lua/cmake/autocmds.lua b/lua/cmake/autocmds.lua
new file mode 100644
index 0000000..e665182
--- /dev/null
+++ b/lua/cmake/autocmds.lua
@@ -0,0 +1,29 @@
+local config = require("cmake.config")
+local actions = require("cmake.actions")
+local constants = require("cmake.constants")
+
+local autocmds = {}
+
+function autocmds.setuo()
+ local cmake_nvim_augroup = vim.api.nvim_create_augroup("CMake", {})
+ vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+ group = cmake_nvim_augroup,
+ pattern = constants.variants_yaml_filename,
+ callback = function(args)
+ require("cmake.project").setup()
+ end,
+ desc = "Setup project after saving variants",
+ })
+ if config.generate_after_save then
+ vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+ group = cmake_nvim_augroup,
+ pattern = constants.cmakelists,
+ callback = function(args)
+ actions.generate()
+ end,
+ desc = "Generate project after saving CMakeLists.txt",
+ })
+ end
+end
+
+return autocmds