if vim.g.loaded_difftool ~= nil then
  return
end
vim.g.loaded_difftool = true

vim.api.nvim_create_user_command('DiffTool', function(opts)
  if #opts.fargs == 2 then
    require('difftool').open(opts.fargs[1], opts.fargs[2])
  else
    vim.notify('Usage: DiffTool <left> <right>', vim.log.levels.ERROR)
  end
end, { nargs = '*', complete = 'file' })

-- If we are in diff mode (e.g. `nvim -d file1 file2`), open the difftool automatically.
local function start_diff()
  if not vim.o.diff then
    return
  end
  local args = vim.v.argf
  if #args == 2 then
    local left = args[1]
    local right = args[2]
    if vim.fn.isdirectory(left) == 1 and vim.fn.isdirectory(right) == 1 then
      vim.schedule(function()
        require('difftool').open(left, right)
      end)
    end
  end
end
if vim.v.vim_did_enter > 0 then
  start_diff()
  return
end
vim.api.nvim_create_autocmd('VimEnter', {
  callback = start_diff,
})
