diff options
author | jgmdev <jgmdev@gmail.com> | 2022-03-11 05:11:01 -0400 |
---|---|---|
committer | jgmdev <jgmdev@gmail.com> | 2022-05-22 13:16:10 -0400 |
commit | 9aa8654d206e22c1162adc0bfd91c6b197c91b7b (patch) | |
tree | 9d4c75c37344ca63b92c585242f798d0ba583ecb | |
parent | 6216f0e979239b7ee14e6f53cd0f1e14e5effae0 (diff) | |
download | lite-xl-plugins-9aa8654d206e22c1162adc0bfd91c6b197c91b7b.tar.gz lite-xl-plugins-9aa8654d206e22c1162adc0bfd91c6b197c91b7b.zip |
statusclock: use new StatusView api, removed coroutine optional core.redraw when %S is user
-rw-r--r-- | plugins/statusclock.lua | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/plugins/statusclock.lua b/plugins/statusclock.lua index 139ae23..d39ca63 100644 --- a/plugins/statusclock.lua +++ b/plugins/statusclock.lua @@ -4,7 +4,6 @@ local config = require "core.config" local style = require "core.style" local common = require "core.common" local StatusView = require "core.statusview" -local scan_rate = 1 config.plugins.statusclock = common.merge({ time_format = "%H:%M:%S", @@ -16,40 +15,40 @@ local time_data = { date_text = '', } -core.add_thread(function() - while true do +local last_time = os.time() +local function update_time() + if os.time() > last_time then local time_text = os.date(config.plugins.statusclock.time_format) local date_text = os.date(config.plugins.statusclock.date_format) - + if time_data.time_text ~= time_text or time_data.time_text ~= date_text then - core.redraw = true time_data.time_text = time_text time_data.date_text = date_text end - - coroutine.yield(scan_rate) - end -end) - -local get_items = StatusView.get_items - -function StatusView:get_items() - local left, right = get_items(self) - - local t = { - style.dim, - self.separator, - style.dim and style.text, - time_data.date_text, - style.dim, - self.separator, - style.dim and style.text, - time_data.time_text, - } - for _, item in ipairs(t) do - table.insert(right, item) + -- only redraw if seconds enabled + if config.plugins.statusclock.time_format:find("%S", 1, true) then + core.redraw = true + end + last_time = os.time() end - - return left, right end +core.status_view:add_item( + nil, + "status:clock", + StatusView.Item.RIGHT, + function(self) + update_time() + return { + style.text, + time_data.date_text, + style.dim, + self.separator, + style.text, + time_data.time_text, + } + end, + nil, + -1 +).separator = core.status_view.separator2 + |