38 lines
827 B
Lua
38 lines
827 B
Lua
local async = require('lualine.async')
|
|
|
|
local git_branch
|
|
|
|
local get_git_branch = async:new({
|
|
cmd = 'git branch --show-current',
|
|
on_stdout = function(_, data)
|
|
if data then
|
|
git_branch = data:gsub('\n', '')
|
|
end
|
|
end
|
|
})
|
|
|
|
local timer = vim.loop.new_timer()
|
|
timer:start(0, 1000, vim.schedule_wrap(function()
|
|
get_git_branch:start()
|
|
end))
|
|
|
|
local function branch()
|
|
if not git_branch or #git_branch == 0 then return '' end
|
|
local ok,devicons = pcall(require,'nvim-web-devicons')
|
|
if ok then
|
|
local icon = devicons.get_icon('git')
|
|
if icon ~= nil then
|
|
return icon .. ' ' .. git_branch
|
|
end
|
|
return git_branch
|
|
end
|
|
ok = (vim.fn.exists('*WebDevIconsGetFileTypeSymbol'))
|
|
if ok ~= 0 then
|
|
local icon = ''
|
|
return icon .. ' ' .. git_branch
|
|
end
|
|
return git_branch
|
|
end
|
|
|
|
return branch
|