feat: emit \CanolaFileCreated\ autocmd on file creation

Problem: no way to hook into individual file creation to populate
initial contents, without a plugin-specific config callback.

Solution: fire \`User CanolaFileCreated\` with \`data.path\` after each
successful \`fs.touch\` in the files adapter. Users listen with
\`nvim_create_autocmd\` and write to the path however they like.
This commit is contained in:
Barrett Ruth 2026-03-06 15:46:00 -05:00
parent c7a55fd787
commit 75eaf3994d
Signed by: barrett
GPG key ID: A6C96C9349D2FC81
3 changed files with 1260 additions and 1 deletions

View file

@ -600,7 +600,19 @@ M.perform_action = function(action, cb)
---@diagnostic disable-next-line: param-type-mismatch
uv.fs_symlink(target, path, flags, cb)
else
fs.touch(path, config.new_file_mode, cb)
fs.touch(
path,
config.new_file_mode,
vim.schedule_wrap(function(err)
if not err then
vim.api.nvim_exec_autocmds(
'User',
{ pattern = 'CanolaFileCreated', modeline = false, data = { path = path } }
)
end
cb(err)
end)
)
end
elseif action.type == 'delete' then
local _, path = util.parse_url(action.url)