with status update
This commit is contained in:
parent
90fac0d1ef
commit
635eac655b
@ -1,13 +0,0 @@
|
|||||||
local GitHubPresence = {}
|
|
||||||
|
|
||||||
GitHubPresence.setup = {}
|
|
||||||
|
|
||||||
function GitHubPresence:setup(options)
|
|
||||||
options = options or {}
|
|
||||||
self.options = options
|
|
||||||
vim.schedule(
|
|
||||||
function() vim.notify(string.format([[echom "[%s] %s"]], "github-presence", "initialized")) end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
return GitHubPresence
|
|
16
lua/github_presence/autoload.lua
Normal file
16
lua/github_presence/autoload.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
local create = vim.api.nvim_create_augroup
|
||||||
|
local define = vim.api.nvim_create_autocmd
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
create("github_presence_autocmds", { clear = true })
|
||||||
|
|
||||||
|
function M.setup()
|
||||||
|
define({ "BufEnter" }, {
|
||||||
|
group = "github_presence_autocmds",
|
||||||
|
pattern = { "*" },
|
||||||
|
callback = function() require("github_presence.updates").set_status() end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
14
lua/github_presence/config.lua
Normal file
14
lua/github_presence/config.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.defaults = {}
|
||||||
|
|
||||||
|
local config = {}
|
||||||
|
|
||||||
|
function M.setup(user_config)
|
||||||
|
user_config = user_config or {}
|
||||||
|
config = vim.tbl_deep_extend("force", M.defaults, user_config)
|
||||||
|
|
||||||
|
return config
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
13
lua/github_presence/github.lua
Normal file
13
lua/github_presence/github.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
local notify = require "github_presence.notify"
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.set_status(activity)
|
||||||
|
if activity == nil then return end
|
||||||
|
local _ = vim.fn.systemlist(
|
||||||
|
string.format("github-status --message 'Currently editting: %s'", activity.file)
|
||||||
|
)
|
||||||
|
notify.info "set status"
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
13
lua/github_presence/init.lua
Normal file
13
lua/github_presence/init.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
local notify = require "github_presence.notify"
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.setup(options)
|
||||||
|
require("github_presence.autoload").setup()
|
||||||
|
require("github_presence.updates").setup()
|
||||||
|
require("github_presence.config").setup(options)
|
||||||
|
|
||||||
|
require("github_presence.timer").start_cron()
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
17
lua/github_presence/notify.lua
Normal file
17
lua/github_presence/notify.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
---@param message string
|
||||||
|
function M.info(message)
|
||||||
|
vim.schedule(
|
||||||
|
function() vim.notify(string.format("[%s]: %s", "github-presence", message), "info") end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param message string
|
||||||
|
function M.debug(message)
|
||||||
|
vim.schedule(
|
||||||
|
function() vim.notify(string.format("[%s]: %s", "github-presence", message), "debug") end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
13
lua/github_presence/timer.lua
Normal file
13
lua/github_presence/timer.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
local github = require "github_presence.github"
|
||||||
|
local updates = require "github_presence.updates"
|
||||||
|
|
||||||
|
return {
|
||||||
|
start_cron = function()
|
||||||
|
local timer = vim.loop.new_timer()
|
||||||
|
timer:start(
|
||||||
|
1000,
|
||||||
|
1000 * 60,
|
||||||
|
vim.schedule_wrap(function() github.set_status(updates.last_activity) end)
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
}
|
19
lua/github_presence/updates.lua
Normal file
19
lua/github_presence/updates.lua
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
local M = {}
|
||||||
|
M.last_activity = {}
|
||||||
|
function M.setup() end
|
||||||
|
|
||||||
|
function M.set_status()
|
||||||
|
local current_buffer = vim.api.nvim_get_current_buf()
|
||||||
|
local buf_name = vim.api.nvim_buf_get_name(current_buffer)
|
||||||
|
local file_name = buf_name:match(string.format("^.+%s(.+)$", "/"))
|
||||||
|
|
||||||
|
if file_name == nil then return end
|
||||||
|
if file_name == M.last_activity.file then return end
|
||||||
|
|
||||||
|
M.last_activity = {
|
||||||
|
file = file_name,
|
||||||
|
set_at = os.time(),
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
Loading…
Reference in New Issue
Block a user