local au = vim.api.nvim_create_autocmd
local map = vim.keymap.set
local prefix = vim.env.HOME .. '/.local/share/nvim/runtime/queries/'
if #vim.o.filetype > 0 and vim.uv.fs_stat(prefix .. vim.o.filetype) then
vim.treesitter.start()
end
end
au({ 'VimEnter' }, {
callback = function()
local session = vim.env.HOME .. '/.cache/nvim/session.vim'
if vim.uv.fs_stat(session) then
vim.cmd.source(session)
vim.fs.rm(session)
end
end
})
au({ 'UIEnter' }, {
callback = function()
require 'map'
vim.cmd.rshada()
if (vim.fn.argc() == 0) then
vim.cmd.term('nu')
else
vim.cmd.normal 'g`"'
end
end
})
au({ 'FileType' }, {
callback = Treesitter_config
})
au({ 'CmdLineEnter' }, {
callback = function()
require 'cdtrack'
end,
once = true
})
au({ 'TextYankPost' }, {
callback = function()
if vim.v.event.regname == '' then
vim.fn.setreg(vim.v.event.operator, vim.fn.getreg())
end
end
})
au({ 'CmdWinEnter' }, {
callback = function()
map('n', '<ESC>', '<cmd>q!<CR>', { buffer = true })
vim.bo.filetype = 'vim'
end
})
au({ 'BufWinEnter' }, {
pattern = 'COMMIT_EDITMSG',
callback = function()
for i, s in ipairs(vim.fn.systemlist('git diff --cached')) do
vim.fn.append(i - 1, '# ' .. s)
end
end
})
au({ 'BufWritePre' }, {
callback = function()
local dir = vim.fn.expand('<afile>:p:h')
local f = io.open(dir, 'r')
if f then
f:close()
return
end
vim.fn.mkdir(dir, 'p')
end
})
au({ 'VimLeave' }, { command = 'wshada' })