mirror of https://github.com/folke/lazy.nvim.git
41 lines
1008 B
Lua
41 lines
1008 B
Lua
local Event = require("lazy.core.handler.event")
|
|
local Util = require("lazy.core.util")
|
|
local Loader = require("lazy.core.loader")
|
|
local Config = require("lazy.core.config")
|
|
|
|
---@class LazyFiletypeHandler:LazyEventHandler
|
|
local M = {}
|
|
M.extends = Event
|
|
|
|
---@param value string
|
|
function M:_event(value)
|
|
return "FileType " .. value
|
|
end
|
|
|
|
---@param plugin LazyPlugin
|
|
function M:add(plugin)
|
|
self.super.add(self, plugin)
|
|
if plugin.ft then
|
|
Loader.ftdetect(plugin.dir)
|
|
end
|
|
end
|
|
|
|
---@param pattern? string
|
|
function M:trigger(_, pattern, _)
|
|
for _, group in ipairs({ "filetypeplugin", "filetypeindent" }) do
|
|
Util.try(function()
|
|
if Config.options.debug then
|
|
Util.info({
|
|
"# Firing Events",
|
|
" - **group:** `" .. group .. "`",
|
|
" - **event:** FileType",
|
|
pattern and (" - **pattern:** " .. pattern),
|
|
})
|
|
end
|
|
vim.api.nvim_exec_autocmds("FileType", { group = group, modeline = false, pattern = pattern })
|
|
end)
|
|
end
|
|
end
|
|
|
|
return M
|