nvim/lua/ada_mode.lua

68 lines
1.4 KiB
Lua

-- Lua vim-dummy variable
if vim == nil then
local vim = {}
end
-- @name Prove
-- @param
-- @short Run gnatprove
function Prove()
vim.cmd("new")
local run_cmd = { "alr gnatprove" }
vim.api.nvim_buf_set_lines(0, 0, -1, false, run_cmd)
vim.cmd(":%!bash")
buffer_loaded = true
end
-- @name Run
-- @param
-- @short Run program using alire
function Run()
vim.cmd("new")
local run_cmd = { "alr run" }
vim.api.nvim_buf_set_lines(0, 0, -1, false, run_cmd)
vim.cmd(":%!bash")
buffer_loaded = true
end
function Close_Prove()
if buffer_loaded then
buffer_loaded = false
vim.cmd("bd!")
end
end
vim.keymap.set("n", "pp", ":lua Close_Prove()<cr>")
vim.keymap.set("n", "<leader>pp", ":lua Prove()<cr>")
vim.keymap.set("n", "<leader>op", ":lua Run()<cr>")
-- @name setup_ada
-- @param
-- @short Verify installation of ada tools or install them.
local function setup_ada()
vim.keymap.set("n", "<leader>cb", ":!gnatpp %<cr>")
vim.opt.tabstop = 3
vim.opt.shiftwidth = 3
end
-- Setup and verify ada tools when opening a ada file
vim.api.nvim_create_autocmd({ "BufEnter" }, {
pattern = { "*.adb", "*.ads" },
callback = setup_ada,
})
-- @name leave_ada
-- @param
-- @short Leave ada and reverse any changes to my editor defaults
local function leave_ada()
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
end
vim.api.nvim_create_autocmd({ "BufLeave" }, {
pattern = { "*.adb", "*.ads" },
callback = leave_ada,
})