-- Highlight yanked text local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true }) vim.api.nvim_create_autocmd("TextYankPost", { pattern = "*", callback = function() vim.highlight.on_yank({ timeout = 170 }) end, group = highlight_group, }) -- Auto fromat via LSP vim.api.nvim_create_autocmd("BufWritePre", { pattern = "*", callback = function(ev) for _, client in pairs(vim.lsp.get_clients({ bufnr = ev.buf })) do if client.server_capabilities.documentFormattingProvider then vim.lsp.buf.format() return end end end, }) -- Auto fromat via external formatters vim.api.nvim_create_autocmd("BufWritePost", { pattern = "*", callback = function(ev) local ft = vim.bo[ev.buf].filetype local filename = vim.fn.expand("%:p") local view = vim.fn.winsaveview() if ft == "oil" then return elseif ft == "lua" then vim.fn.system({ "stylua", filename }) end vim.cmd("edit") vim.fn.winrestview(view) -- Edit moves our view, so we restore it end, })