SoloVim/lua/solo/autocommands.lua
2023-08-28 21:32:28 +03:00

139 lines
3.9 KiB
Lua

-- Use 'q' to quit from common plugins
vim.api.nvim_create_autocmd({ "FileType" }, {
pattern = { "qf", "help", "man", "lspinfo", "spectre_panel", "lir", "git" },
callback = function()
vim.cmd([[ nnoremap <silent> <buffer> q :close<cr>
set nobuflisted
]])
end,
})
-- Set wrap and spell in markdown and gitcommit
vim.api.nvim_create_autocmd({ "FileType" }, {
pattern = { "gitcommit", "markdown", "vimwiki" },
callback = function()
vim.opt_local.wrap = true
-- vim.opt_local.spell = true
end,
})
vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif")
-- Fixes Autocomment
vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
callback = function()
vim.cmd("set formatoptions-=cro")
end,
})
-- Highlight Yanked Text
vim.api.nvim_create_autocmd({ "TextYankPost" }, {
callback = function()
vim.highlight.on_yank({ higroup = "Visual", timeout = 200 })
end,
})
-- Format File on Save
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
callback = function()
vim.lsp.buf.format()
end,
})
-- Center on InsertEnter
vim.api.nvim_create_autocmd({ "InsertEnter" }, {
callback = function()
vim.cmd("norm zz")
end,
})
-- Disable `expandtab` (don't replace tab with spaces)
vim.api.nvim_create_autocmd({ "FileType" }, {
pattern = { "lua" },
callback = function()
vim.opt_local.expandtab = false
end,
})
-- Set tab size for the following file types to 2
vim.api.nvim_create_autocmd({ "FileType" }, {
pattern = { "vimwiki", "sql" },
callback = function()
vim.opt_local.ts = 2
vim.opt_local.sw = 2
vim.opt_local.sts = 2
end,
})
-- Autocommand that reloads waybar whenever you save the ~/.config/waybar/config file
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
group = vim.api.nvim_create_augroup("AutoReloadWaybar", { clear = true }),
pattern = { "**/waybar/config", "**/waybar/style.css" },
callback = function()
vim.cmd("!pkill waybar && waybar & disown")
end,
})
-- Autocommand that sources neovim files on save
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
group = vim.api.nvim_create_augroup("AutoReloadConfig", { clear = true }),
pattern = { "**/nvim/**/*.lua", "**/SoloVim/**/*.lua" },
callback = function()
local file_path = vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf())
vim.cmd.source(file_path)
end,
})
-- vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
-- vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
-- group = vim.api.nvim_create_augroup("Fugitive", {}),
-- pattern = "*",
-- callback = function()
-- if vim.bo.ft ~= "fugitive" then
-- return
-- end
--
-- local bufnr = vim.api.nvim_get_current_buf()
-- local opts = { buffer = bufnr, remap = false }
-- vim.keymap.set("n", "<leader>p", function()
-- vim.cmd.Git("push")
-- end, opts)
--
-- -- rebase always
-- vim.keymap.set("n", "<leader>P", function()
-- vim.cmd.Git({ "pull", "--rebase" })
-- end, opts)
--
-- -- NOTE: It allows me to easily set the branch I am pushing and any tracking
-- -- needed if i did not set the branch up correctly
-- vim.keymap.set("n", "<leader>t", ":Git push -u origin ", opts)
-- end,
-- })
-- Remove trailing whitespaces on save
-- vim.api.nvim_create_autocmd({ "BufWritePre" }, {
-- group = vim.api.nvim_create_augroup("RemoveTrailingWhitespaces", { clear = true }),
-- pattern = "*",
-- callback = function()
-- vim.cmd([[%s/\s\+$//e]])
-- end,
-- })
-- Run lazy on file save
-- vim.api.nvim_create_autocmd({ "BufWritePost" }, {
-- group = vim.api.nvim_create_augroup("AutoPackerSync", { clear = true }),
-- pattern = { "**/lua/plugins/*" },
-- callback = function()
-- require("lazy").sync()
-- end,
-- })
-- Set vertical column for all files
-- vim.api.nvim_create_autocmd({ "FileType" }, {
-- group = vim.api.nvim_create_augroup("SetColorColumn", { clear = true }),
-- pattern = { "" },
-- callback = function()
-- vim.cmd.setlocal("colorcolumn=120")
-- end,
-- })