-- Conform.nvim highlights for Forest Night theme
local M = {}

-- Helper function to set highlights
local function hl(group, opts)
    vim.api.nvim_set_hl(0, group, opts)
end

function M.apply(colors, config)
    -- Conform formatting
    hl('ConformFormat', { fg = colors.info })
    hl('ConformFormatSuccess', { fg = colors.info })
    hl('ConformFormatError', { fg = colors.error })
    hl('ConformFormatWarning', { fg = colors.warning })
    hl('ConformFormatInfo', { fg = colors.info })
    hl('ConformFormatHint', { fg = colors.hint })
    hl('ConformFormatProgress', { fg = colors.func })
    hl('ConformFormatDone', { fg = colors.info })
    hl('ConformFormatPending', { fg = colors.warning })
    hl('ConformFormatRunning', { fg = colors.func })
    hl('ConformFormatCancelled', { fg = colors.comment })
    hl('ConformFormatTimeout', { fg = colors.error })
    hl('ConformFormatSkipped', { fg = colors.comment })
    hl('ConformFormatDisabled', { fg = colors.comment })
    hl('ConformFormatEnabled', { fg = colors.info })
    hl('ConformFormatActive', { fg = colors.func, bold = true })
    hl('ConformFormatInactive', { fg = colors.comment })
    hl('ConformFormatAvailable', { fg = colors.info })
    hl('ConformFormatUnavailable', { fg = colors.error })
    hl('ConformFormatNotFound', { fg = colors.error })
    hl('ConformFormatInstalled', { fg = colors.info })
    hl('ConformFormatNotInstalled', { fg = colors.error })
    hl('ConformFormatSupported', { fg = colors.info })
    hl('ConformFormatUnsupported', { fg = colors.error })
    hl('ConformFormatExecutable', { fg = colors.info })
    hl('ConformFormatNotExecutable', { fg = colors.error })
    hl('ConformFormatValid', { fg = colors.info })
    hl('ConformFormatInvalid', { fg = colors.error })
    hl('ConformFormatReady', { fg = colors.info })
    hl('ConformFormatNotReady', { fg = colors.warning })
    hl('ConformFormatLoading', { fg = colors.func })
    hl('ConformFormatLoaded', { fg = colors.info })
    hl('ConformFormatUnloaded', { fg = colors.comment })
    hl('ConformFormatStarting', { fg = colors.func })
    hl('ConformFormatStarted', { fg = colors.info })
    hl('ConformFormatStopping', { fg = colors.warning })
    hl('ConformFormatStopped', { fg = colors.comment })
    hl('ConformFormatRestarting', { fg = colors.warning })
    hl('ConformFormatRestarted', { fg = colors.info })
    hl('ConformFormatUpdating', { fg = colors.func })
    hl('ConformFormatUpdated', { fg = colors.info })
    hl('ConformFormatInstalling', { fg = colors.func })
    hl('ConformFormatUninstalling', { fg = colors.warning })
    hl('ConformFormatUninstalled', { fg = colors.comment })
    hl('ConformFormatConfiguring', { fg = colors.func })
    hl('ConformFormatConfigured', { fg = colors.info })
    hl('ConformFormatUnconfigured', { fg = colors.comment })
    hl('ConformFormatDefault', { fg = colors.fg })
    hl('ConformFormatCustom', { fg = colors.property })
    hl('ConformFormatBuiltin', { fg = colors.func })
    hl('ConformFormatExternal', { fg = colors.type })
    hl('ConformFormatLocal', { fg = colors.string })
    hl('ConformFormatGlobal', { fg = colors.keyword })
    hl('ConformFormatProject', { fg = colors.property })
    hl('ConformFormatSystem', { fg = colors.type })
    hl('ConformFormatUser', { fg = colors.variable })
    hl('ConformFormatAuto', { fg = colors.func })
    hl('ConformFormatManual', { fg = colors.keyword })
    hl('ConformFormatOnSave', { fg = colors.info })
    hl('ConformFormatOnWrite', { fg = colors.info })
    hl('ConformFormatOnChange', { fg = colors.warning })
    hl('ConformFormatOnInsert', { fg = colors.warning })
    hl('ConformFormatOnCommand', { fg = colors.keyword })
    hl('ConformFormatOnKey', { fg = colors.keyword })
    hl('ConformFormatOnEvent', { fg = colors.property })
    hl('ConformFormatOnTimer', { fg = colors.func })
    hl('ConformFormatOnRequest', { fg = colors.info })
    hl('ConformFormatOnDemand', { fg = colors.keyword })
    hl('ConformFormatOnLoad', { fg = colors.info })
    hl('ConformFormatOnUnload', { fg = colors.comment })
    hl('ConformFormatOnExit', { fg = colors.comment })
    hl('ConformFormatOnStart', { fg = colors.info })
    hl('ConformFormatOnStop', { fg = colors.comment })
    hl('ConformFormatOnRestart', { fg = colors.warning })
    hl('ConformFormatOnUpdate', { fg = colors.func })
    hl('ConformFormatOnInstall', { fg = colors.func })
    hl('ConformFormatOnUninstall', { fg = colors.warning })
    hl('ConformFormatOnConfigure', { fg = colors.func })
    hl('ConformFormatOnUnconfigure', { fg = colors.comment })
end

return M
