neovim-confs/lua/nvchad/autocmds.lua

79 lines
2.6 KiB
Lua
Raw Normal View History

local autocmd = vim.api.nvim_create_autocmd
2022-07-08 15:50:57 +02:00
-- dont list quickfix buffers
autocmd("FileType", {
pattern = "qf",
callback = function()
vim.opt_local.buflisted = false
end,
2022-07-08 15:50:57 +02:00
})
2023-03-14 09:28:12 +01:00
-- reload some chadrc options on-save
autocmd("BufWritePost", {
pattern = vim.tbl_map(function(path)
return vim.fs.normalize(vim.loop.fs_realpath(path))
2024-03-04 07:26:40 +01:00
end, vim.fn.glob(vim.fn.stdpath "config" .. "/lua/**/*.lua", true, true, true)),
group = vim.api.nvim_create_augroup("ReloadNvChad", {}),
2023-03-10 07:10:24 +01:00
callback = function(opts)
2023-03-18 06:14:42 +01:00
local fp = vim.fn.fnamemodify(vim.fs.normalize(vim.api.nvim_buf_get_name(opts.buf)), ":r") --[[@as string]]
local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim"
local module = string.gsub(fp, "^.*/" .. app_name .. "/lua/", ""):gsub("/", ".")
require("plenary.reload").reload_module "nvconfig"
require("plenary.reload").reload_module "base46"
2023-03-18 04:40:36 +01:00
require("plenary.reload").reload_module(module)
local config = require "nvconfig"
2023-03-14 09:28:12 +01:00
-- statusline
if config.ui.statusline.theme ~= "custom" then
2024-03-04 03:37:10 +01:00
require("plenary.reload").reload_module("nvchad.stl.utils")
require("plenary.reload").reload_module("nvchad.stl." .. config.ui.statusline.theme)
vim.opt.statusline = "%!v:lua.require('nvchad.stl." .. config.ui.statusline.theme .. "')()"
end
2023-07-26 03:26:56 +02:00
-- tabufline
if config.ui.tabufline.enabled then
2023-08-09 16:52:46 +02:00
require("plenary.reload").reload_module "nvchad.tabufline.modules"
2024-03-04 03:37:10 +01:00
vim.opt.tabline = "%!v:lua.require('nvchad.tabufline.modules')()"
end
2023-07-26 03:26:56 +02:00
require("base46").load_all_highlights()
2023-03-10 07:10:24 +01:00
-- vim.cmd("redraw!")
end,
})
2023-03-09 13:37:58 +01:00
-- user event that loads after UIEnter + only if file buf is there
vim.api.nvim_create_autocmd({ "UIEnter", "BufReadPost", "BufNewFile" }, {
group = vim.api.nvim_create_augroup("NvFilePost", { clear = true }),
callback = function(args)
local file = vim.api.nvim_buf_get_name(args.buf)
local buftype = vim.api.nvim_buf_get_option(args.buf, "buftype")
if not vim.g.ui_entered and args.event == "UIEnter" then
vim.g.ui_entered = true
end
if file ~= "" and buftype ~= "nofile" and vim.g.ui_entered then
vim.api.nvim_exec_autocmds("User", { pattern = "FilePost", modeline = false })
vim.api.nvim_del_augroup_by_name "NvFilePost"
vim.schedule(function()
vim.api.nvim_exec_autocmds("FileType", {})
if vim.g.editorconfig then
require("editorconfig").config(args.buf)
end
end, 0)
end
end,
})
2023-03-09 13:37:58 +01:00
-------------------------------------- commands ------------------------------------------
local new_cmd = vim.api.nvim_create_user_command
new_cmd("NvChadUpdate", function()
2023-08-09 16:52:46 +02:00
require "nvchad.updater"()
2023-03-09 13:37:58 +01:00
end, {})