diff options
author | Daniil Rozanov <daniilrozzanov@gmail.com> | 2024-03-18 01:49:23 +0300 |
---|---|---|
committer | Daniil Rozanov <daniilrozzanov@gmail.com> | 2024-03-18 01:49:23 +0300 |
commit | 6184ca819279c7e44f470a731fcca3d469f40a01 (patch) | |
tree | 4f51162ca534935c2cbbf404c08ea1c51359340b /lua/cmake-explorer/capabilities.lua | |
parent | d36594025727d32b6580f188a4c0476aaeecfd77 (diff) |
feat: new CMakeConfigureLast and CMakeConfigureDir commands. CMakeConfigure and CMakeConfigureDir now have vim.ui.* interface to edit
Diffstat (limited to 'lua/cmake-explorer/capabilities.lua')
-rw-r--r-- | lua/cmake-explorer/capabilities.lua | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lua/cmake-explorer/capabilities.lua b/lua/cmake-explorer/capabilities.lua new file mode 100644 index 0000000..f3a966c --- /dev/null +++ b/lua/cmake-explorer/capabilities.lua @@ -0,0 +1,42 @@ +local config = require("cmake-explorer.config") + +local multiconfig_generators = { + "Ninja Multi-Config", + "Xcode", + "Visual Studio 12 2013", + "Visual Studio 14 2015", + "Visual Studio 15 2017", + "Visual Studio 16 2019", + "Visual Studio 17 2022", + -- "Green Hills MULTI" +} + +local Capabilities = { + json = nil, +} + +function Capabilities.generators() + local ret = {} + if not Capabilities then + return ret + end + for k, v in pairs(Capabilities.json.generators) do + table.insert(ret, v.name) + end + return vim.fn.reverse(ret) +end + +function Capabilities.is_multiconfig_generator(generator) + return vim.tbl_contains(multiconfig_generators, generator) +end + +function Capabilities.has_fileapi() + return vim.tbl_get(Capabilities.json, "fileApi") ~= nil +end + +Capabilities.setup = function() + local output = vim.fn.system({ config.cmake_cmd, "-E", "capabilities" }) + Capabilities.json = vim.json.decode(output) +end + +return Capabilities |