dotfiles/dot_config/nvim/lua/config/autocmds.lua
2024-04-14 18:41:15 -07:00

44 lines
1.5 KiB
Lua

-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
-- Add any additional autocmds here
-- Open help window in a vertical split to the right.
vim.api.nvim_create_autocmd("BufWinEnter", {
group = vim.api.nvim_create_augroup("help_window_right", {}),
pattern = { "*.txt" },
callback = function()
if vim.o.filetype == "help" then
vim.cmd.wincmd("L")
end
end,
})
-- Define an autocmd group for the blade workaround
local augroup = vim.api.nvim_create_augroup("lsp_blade_workaround", { clear = true })
-- Autocommand to temporarily change 'blade' filetype to 'php' when opening for LSP server activation
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
group = augroup,
pattern = "*.blade.php",
callback = function()
vim.bo.filetype = "php"
end,
})
-- Additional autocommand to switch back to 'blade' after LSP has attached
vim.api.nvim_create_autocmd("LspAttach", {
pattern = "*.blade.php",
callback = function(args)
vim.schedule(function()
-- Check if the attached client is 'intelephense'
for _, client in ipairs(vim.lsp.get_active_clients()) do
if client.name == "intelephense" and client.attached_buffers[args.buf] then
vim.api.nvim_buf_set_option(args.buf, "filetype", "blade")
-- update treesitter parser to blade
vim.api.nvim_buf_set_option(args.buf, "syntax", "blade")
break
end
end
end)
end,
})