diff --git a/lua/cord.lua b/lua/cord.lua index 9e6f4f22..6f8aac72 100644 --- a/lua/cord.lua +++ b/lua/cord.lua @@ -6,6 +6,7 @@ local logger = require 'cord.log' cord.config = { usercmds = true, + log_level = nil, timer = { interval = 1500, reset_on_idle = false, @@ -309,6 +310,7 @@ function cord.setup(userConfig) if vim.g.cord_initialized == nil then local config = vim.tbl_deep_extend('force', cord.config, userConfig or {}) config.timer.interval = math.max(config.timer.interval, 500) + logger.init(config.log_level) discord = utils.init_discord(ffi) if not discord then return end diff --git a/lua/cord/log.lua b/lua/cord/log.lua index 02dd6db5..a6ff73cf 100644 --- a/lua/cord/log.lua +++ b/lua/cord/log.lua @@ -1,13 +1,33 @@ -local function info(msg) vim.notify('[cord.nvim] ' .. msg, vim.log.levels.INFO) end +local log_level -local function warn(msg) vim.notify('[cord.nvim] ' .. msg, vim.log.levels.WARN) end +local function init(level) + log_level = vim.log.levels[string.upper(level)] or vim.log.levels.OFF + + if log_level == vim.log.levels.OFF then log_level = -1 end +end + +local function info(msg) + if vim.log.levels.INFO >= log_level then + vim.notify('[cord.nvim] ' .. msg, vim.log.levels.INFO) + end +end + +local function warn(msg) + if vim.log.levels.WARN >= log_level then + vim.notify('[cord.nvim] ' .. msg, vim.log.levels.WARN) + end +end local function error(msg) - vim.notify('[cord.nvim] ' .. msg, vim.log.levels.ERROR) + if vim.log.levels.ERROR >= log_level then + vim.notify('[cord.nvim] ' .. msg, vim.log.levels.ERROR) + end end local function debug(msg) - vim.notify('[cord.nvim] ' .. msg, vim.log.levels.DEBUG) + if vim.log.levels.DEBUG >= log_level then + vim.notify('[cord.nvim] ' .. msg, vim.log.levels.DEBUG) + end end local function log(status_code) @@ -23,6 +43,7 @@ local function log(status_code) end return { + init = init, info = info, warn = warn, error = error,