refactor: rename oil to canola across entire codebase

Problem: the codebase still used the upstream \`oil\` naming everywhere —
URL schemes, the \`:Oil\` command, highlight groups, user events, module
paths, filetypes, buffer/window variables, LuaCATS type annotations,
vimdoc help tags, syntax groups, and internal identifiers.

Solution: mechanical rename of every reference. URL schemes now use
\`canola://\` (plus \`canola-ssh://\`, \`canola-s3://\`, \`canola-sss://\`,
\`canola-trash://\`, \`canola-test://\`). The \`:Canola\` command replaces
\`:Oil\`. All highlight groups, user events, augroups, namespaces,
filetypes, require paths, type annotations, help tags, and identifiers
follow suit. The \`upstream\` remote to \`stevearc/oil.nvim\` has been
removed and the \`vim.g.oil\` deprecation shim dropped.
This commit is contained in:
Barrett Ruth 2026-03-05 14:43:30 -05:00
parent 67ad0632a6
commit e6b42168c9
Signed by: barrett
GPG key ID: A6C96C9349D2FC81
70 changed files with 1571 additions and 1555 deletions

View file

@ -1,118 +0,0 @@
-- integration with git operations
local fs = require('oil.fs')
local M = {}
---@param path string
---@return string|nil
M.get_root = function(path)
local git_dir = vim.fs.find('.git', { upward = true, path = path })[1]
if git_dir then
return vim.fs.dirname(git_dir)
else
return nil
end
end
---@param path string
---@param cb fun(err: nil|string)
M.add = function(path, cb)
local root = M.get_root(path)
if not root then
return cb()
end
local stderr = ''
local jid = vim.fn.jobstart({ 'git', 'add', path }, {
cwd = root,
stderr_buffered = true,
on_stderr = function(_, data)
stderr = table.concat(data, '\n')
end,
on_exit = function(_, code)
if code ~= 0 then
cb('Error in git add: ' .. stderr)
else
cb()
end
end,
})
if jid <= 0 then
cb()
end
end
---@param path string
---@param cb fun(err: nil|string)
M.rm = function(path, cb)
local root = M.get_root(path)
if not root then
return cb()
end
local stderr = ''
local jid = vim.fn.jobstart({ 'git', 'rm', '-r', path }, {
cwd = root,
stderr_buffered = true,
on_stderr = function(_, data)
stderr = table.concat(data, '\n')
end,
on_exit = function(_, code)
if code ~= 0 then
stderr = vim.trim(stderr)
if stderr:match("^fatal: pathspec '.*' did not match any files$") then
cb()
else
cb('Error in git rm: ' .. stderr)
end
else
cb()
end
end,
})
if jid <= 0 then
cb()
end
end
---@param entry_type oil.EntryType
---@param src_path string
---@param dest_path string
---@param cb fun(err: nil|string)
M.mv = function(entry_type, src_path, dest_path, cb)
local src_git = M.get_root(src_path)
if not src_git or src_git ~= M.get_root(dest_path) then
fs.recursive_move(entry_type, src_path, dest_path, cb)
return
end
local stderr = ''
local jid = vim.fn.jobstart({ 'git', 'mv', src_path, dest_path }, {
cwd = src_git,
stderr_buffered = true,
on_stderr = function(_, data)
stderr = table.concat(data, '\n')
end,
on_exit = function(_, code)
if code ~= 0 then
stderr = vim.trim(stderr)
if
stderr:match('^fatal: not under version control')
or stderr:match('^fatal: source directory is empty')
then
fs.recursive_move(entry_type, src_path, dest_path, cb)
else
cb('Error in git mv: ' .. stderr)
end
else
cb()
end
end,
})
if jid <= 0 then
-- Failed to run git, fall back to normal filesystem operations
fs.recursive_move(entry_type, src_path, dest_path, cb)
end
end
return M