Files
nvim/lua/ow/core/autocommands.lua
T

98 lines
2.9 KiB
Lua

vim.api.nvim_create_autocmd("FileType", {
pattern = "help",
callback = function()
vim.wo.number = true
vim.wo.relativenumber = true
end,
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Use tabs for indents in Go files",
pattern = "go",
callback = function()
vim.bo.expandtab = false
end,
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Fix parsing compile errors into quickfixlist",
pattern = "zig",
callback = function()
vim.bo.errorformat = "%f:%l:%c: %t%.%#: %m,%-G%.%#"
end,
})
vim.api.nvim_create_autocmd({ "BufReadPost" }, {
desc = "Return cursor to last position when re-opening a buffer",
pattern = "*",
command = 'silent! normal! g`"zv',
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "c" },
callback = function()
vim.o.errorformat = "%-Gmake: *** [Makefile:,"
.. "%-Gg%\\?make[%*\\d]: *** [%f:%l:%m,"
.. "%-Gg%\\?make: *** [%f:%l:%m,"
.. "%-G%f:%l: (Each undeclared identifier is reported only once,"
.. "%-G%f:%l: for each function it appears in.),"
.. "%-GIn file included from %f:%l:%c:,"
.. "%-GIn file included from %f:%l:%c\\,,"
.. "%-GIn file included from %f:%l:%c,"
.. "%-GIn file included from %f:%l,"
.. "%-G%*[ ]from %f:%l:%c,"
.. "%-G%*[ ]from %f:%l:,"
.. "%-G%*[ ]from %f:%l\\,,"
.. "%-G%*[ ]from %f:%l,"
.. "%-G%f:%l:%c: note: '%*[^']' declared here,"
.. "%D%*\\a[%*\\d]: Entering directory %*[`']%f',"
.. "%X%*\\a[%*\\d]: Leaving directory %*[`']%f',"
.. "%D%*\\a: Entering directory %*[`']%f',"
.. "%X%*\\a: Leaving directory %*[`']%f',"
.. "%DMaking %*\\a in %f,"
.. "%f:%l:%c: %t%*[^:]: %m,"
.. "%*[^:]: %f:%l: %m,"
.. "%-G%.%#"
end,
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Use two space indent for C++ files",
pattern = { "cpp" },
callback = function()
vim.bo.tabstop = 2
vim.bo.softtabstop = 2
vim.bo.shiftwidth = 2
vim.bo.cinoptions = "g0"
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "netrw" },
callback = function()
vim.keymap.set("n", "<C-h>", "-", { buffer = true, remap = true })
vim.keymap.set("n", "<C-l>", "<CR>", { buffer = true, remap = true })
end,
})
vim.api.nvim_create_autocmd("VimEnter", {
pattern = "*",
command = ":clearjumps",
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Customize python indentation",
pattern = { "python" },
callback = function()
vim.opt_local.indentkeys:remove("<:>")
end,
})
vim.api.nvim_create_autocmd("TermLeave", {
desc = "Reload buffers when leaving terminal",
pattern = "*",
callback = function()
vim.cmd.checktime()
end,
})