dotfiles/nvim/dot-config/nvim/lua/autocmds.lua

47 lines
1.3 KiB
Lua

-- Highlight on yank
local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true })
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.highlight.on_yank({ higroup = "YankHighlight" })
end,
group = highlight_group,
pattern = "*",
})
-- show cursor line only in active window
local cursor_group = vim.api.nvim_create_augroup("ActiveCursor", { clear = true })
vim.api.nvim_create_autocmd({ "InsertLeave", "WinEnter" }, {
callback = function()
local ok, cl = pcall(vim.api.nvim_win_get_var, 0, "auto-cursorline")
if ok and cl then
vim.wo.cursorline = true
vim.api.nvim_win_del_var(0, "auto-cursorline")
end
end,
group = cursor_group,
pattern = "*",
})
vim.api.nvim_create_autocmd({ "InsertEnter", "WinLeave" }, {
callback = function()
local cl = vim.wo.cursorline
if cl then
vim.api.nvim_win_set_var(0, "auto-cursorline", cl)
vim.wo.cursorline = false
end
end,
group = cursor_group,
pattern = "*",
})
vim.api.nvim_create_autocmd("FileType", {
pattern = require("tools.highlight"),
callback = function()
-- syntax highlighting, provided by Neovim
vim.treesitter.start()
-- folds, provided by Neovim
vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()"
-- indentation, provided by nvim-treesitter
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
end,
})