SoloVim/after/plugin/snips/cmake.lua

54 lines
989 B
Lua

if not pcall(require, "luasnip") then
return
end
local ls = require("luasnip")
local s = ls.snippet
local i = ls.insert_node
local fmt = require("luasnip.extras.fmt").fmt
local shared = require("config.snips")
local same = shared.same
local cmake_version = function()
local version = "3.27.4"
-- vim.fn.jobstart("cmake --version | head -n 1 | rg -o '\\d+\\.\\d+\\.\\d+'", {})
return version
end
ls.add_snippets("cmake", {
s(
"lib",
fmt(
[[
cmake_minimum_required(VERSION {})
project({})
add_library(${{PROJECT_NAME}} src/{}.cc)
]],
{
cmake_version(),
i(1),
same(1),
}
)
),
s(
"bin",
fmt(
[[
cmake_minimum_required(VERSION {})
project({})
add_executable(${{PROJECT_NAME}} src/main.cc)
target_link_directories(${{PROJECT_NAME}} PRIVATE ${{CMAKE_SOURCE_DIR}}/include/{}/target/build/)
target_link_libraries(${{PROJECT_NAME}} {})
]],
{
cmake_version(),
i(1),
i(2),
same(2),
}
)
),
})