From e03e0f99a9eb5e20bb6ab33cdf47a4f2cf705a39 Mon Sep 17 00:00:00 2001 From: quentingruber Date: Sat, 21 Jun 2025 11:12:03 +0200 Subject: [PATCH] add an option to disable break UI to appear on breaktime --- README.md | 1 + lua/pomodoro/pomodoro.lua | 10 +++++++++- lua/pomodoro/tests/pomodoro_spec.lua | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 679f1e4..01e0a53 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Use the Pomodoro Technique in Neovim with built-in session tracking and break re delay_duration = 1, -- The additionnal work time you get when you delay a break long_break_duration = 15, breaks_before_long = 4, + display_ui_on_break = true, -- Disable it if you only want to see the lualine }, }, diff --git a/lua/pomodoro/pomodoro.lua b/lua/pomodoro/pomodoro.lua index 6fd18f3..1b4692c 100644 --- a/lua/pomodoro/pomodoro.lua +++ b/lua/pomodoro/pomodoro.lua @@ -16,6 +16,7 @@ local Phases = constants.Phases ---@field start_at_launch boolean ---@field timer uv_timer_t ---@field phase integer +---@field display_ui_on_break boolean local pomodoro = {} -- Work duration in ms @@ -33,6 +34,7 @@ pomodoro.start_at_launch = true pomodoro.timer = uv.new_timer() pomodoro.started_timer_time = uv.now() pomodoro.phase = Phases.NOT_RUNNING +pomodoro.display_ui_on_break = true ---@param time number ---@param fn function @@ -125,7 +127,9 @@ function pomodoro.startBreak(forced_time) end info("Break of " .. break_duration / MIN_IN_MS .. "m started!") - vim.schedule(pomodoro.displayPomodoroUI) + if pomodoro.display_ui_on_break then + vim.schedule(pomodoro.displayPomodoroUI) + end pomodoro.startTimer(break_duration, pomodoro.endBreak) end @@ -205,6 +209,7 @@ end ---@field delay_duration? number ---@field breaks_before_long? number ---@field start_at_launch? boolean +---@field display_ui_on_break? boolean ---@param opts PomodoroOpts function pomodoro.setup(opts) @@ -227,6 +232,9 @@ function pomodoro.setup(opts) if opts.start_at_launch ~= nil then pomodoro.start_at_launch = opts.start_at_launch end + if opts.display_ui_on_break ~= nil then + pomodoro.display_ui_on_break = opts.display_ui_on_break + end end pomodoro.registerCmds() diff --git a/lua/pomodoro/tests/pomodoro_spec.lua b/lua/pomodoro/tests/pomodoro_spec.lua index 16cd7fb..881b4e0 100644 --- a/lua/pomodoro/tests/pomodoro_spec.lua +++ b/lua/pomodoro/tests/pomodoro_spec.lua @@ -12,6 +12,7 @@ describe("useless tests", function() opts.long_break_duration = 15 opts.breaks_before_long = 4 opts.start_at_launch = false + opts.display_ui_on_break = false pomodoro.setup(opts) assert( pomodoro.work_duration == opts.work_duration * MIN_IN_MS, @@ -37,6 +38,10 @@ describe("useless tests", function() pomodoro.start_at_launch == opts.start_at_launch, "Opt start_at_launch" ) + assert( + pomodoro.display_ui_on_break == opts.display_ui_on_break, + "Opt display_ui_on_break" + ) end) --TODO: tests end)