pojokcodeid.nvim-lazy/lua/user/autocommands.lua

118 lines
3.2 KiB
Lua
Raw Normal View History

2024-10-12 16:42:46 +07:00
local api = vim.api
2023-01-15 00:17:41 +07:00
2024-10-12 16:42:46 +07:00
-- General Settings
api.nvim_create_augroup("_general_settings", { clear = true })
2023-01-15 00:17:41 +07:00
2024-10-12 16:42:46 +07:00
api.nvim_create_autocmd("TextYankPost", {
group = "_general_settings",
callback = function()
require("vim.highlight").on_yank({ higroup = "Visual", timeout = 200 })
end,
})
2023-01-15 00:17:41 +07:00
2024-10-12 16:42:46 +07:00
api.nvim_create_autocmd("FileType", {
group = "_general_settings",
pattern = "qf",
command = "set nobuflisted",
})
2024-10-12 16:42:46 +07:00
-- Git Settings
api.nvim_create_augroup("_git", { clear = true })
api.nvim_create_autocmd("FileType", {
group = "_git",
pattern = "gitcommit",
command = "setlocal wrap spell",
})
-- Markdown Settings
api.nvim_create_augroup("_markdown", { clear = true })
api.nvim_create_autocmd("FileType", {
group = "_markdown",
pattern = "markdown",
command = "setlocal wrap spell",
})
2024-10-12 16:42:46 +07:00
-- Auto Resize
api.nvim_create_augroup("_auto_resize", { clear = true })
api.nvim_create_autocmd("VimResized", {
group = "_auto_resize",
command = "tabdo wincmd =",
})
-- Alpha Settings
api.nvim_create_augroup("_alpha", { clear = true })
api.nvim_create_autocmd("User", {
group = "_alpha",
pattern = "AlphaReady",
command = "set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2",
})
-- Terminal Settings
api.nvim_create_augroup("neovim_terminal", { clear = true })
api.nvim_create_autocmd("TermOpen", {
group = "neovim_terminal",
command = "startinsert | set nonumber norelativenumber | nnoremap <buffer> <C-c> i<C-c>",
})
-- Function to Create Non-Existent Directory on BufWrite
local function MkNonExDir(file, buf)
if vim.fn.empty(vim.fn.getbufvar(buf, "&buftype")) == 1 and not string.match(file, "^%w+://") then
local dir = vim.fn.fnamemodify(file, ":h")
if vim.fn.isdirectory(dir) == 0 then
vim.fn.mkdir(dir, "p")
end
end
end
api.nvim_create_augroup("BWCCreateDir", { clear = true })
api.nvim_create_autocmd("BufWritePre", {
group = "BWCCreateDir",
callback = function(_)
MkNonExDir(vim.fn.expand("<afile>"), vim.fn.expand("<abuf>"))
end,
})
2023-01-15 00:17:41 +07:00
2023-03-03 06:29:47 +07:00
-- for fix error last close buffer
vim.api.nvim_create_autocmd({ "QuitPre" }, {
callback = function()
2024-06-14 06:46:42 +07:00
vim.cmd("NvimTreeClose")
end,
2023-03-03 06:29:47 +07:00
})
2023-04-17 20:15:20 +07:00
local autocmd = vim.api.nvim_create_autocmd
autocmd("VimEnter", {
pattern = "*",
callback = function()
vim.opt.statusline = "%#normal# "
end,
})
vim.api.nvim_create_autocmd("FileType", {
2024-06-14 06:46:42 +07:00
pattern = { "help", "alpha", "dashboard", "NvimTree", "Trouble", "lazy", "mason", "neotest-summary" },
callback = function()
vim.b.miniindentscope_disable = true
end,
2023-04-17 20:15:20 +07:00
})
2024-06-25 10:25:26 +07:00
vim.filetype.add({
pattern = {
[".*%.blade%.php"] = "blade",
},
})
2024-08-03 18:05:19 +07:00
-- config cursor
vim.opt.guicursor = {
"n-v:block", -- Normal, Visual, Command mode: block cursor
"i-ci-ve-c:ver25", -- Insert, Command-line Insert, Visual mode: vertical bar cursor
"r-cr:hor20", -- Replace, Command-line Replace mode: horizontal bar cursor
"o:hor50", -- Operator-pending mode: horizontal bar cursor
"a:blinkwait700-blinkoff400-blinkon250", -- Blinking settings
"sm:block-blinkwait175-blinkoff150-blinkon175", -- Select mode: block cursor with blinking
}
2023-01-15 00:17:41 +07:00
-- Autoformat
-- augroup _lsp
-- autocmd!
-- autocmd BufWritePre * lua vim.lsp.buf.formatting()
-- augroup end