statusline: feline: Use default git provider
now it handles dirs too
092442db0c
			
			
This commit is contained in:
		
							parent
							
								
									f73ba68c08
								
							
						
					
					
						commit
						85117ef95e
					
				
					 1 changed files with 2 additions and 51 deletions
				
			
		| 
						 | 
				
			
			@ -225,61 +225,12 @@ components.active[3][1] = {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
components.active[3][2] = {
 | 
			
		||||
   -- taken from: https://github.com/hoob3rt/lualine.nvim/blob/master/lua/lualine/components/branch.lua
 | 
			
		||||
   provider = function()
 | 
			
		||||
      local git_branch = ""
 | 
			
		||||
 | 
			
		||||
      -- first try with gitsigns
 | 
			
		||||
      local gs_dict = vim.b.gitsigns_status_dict
 | 
			
		||||
      if gs_dict then
 | 
			
		||||
         git_branch = (gs_dict.head and #gs_dict.head > 0 and gs_dict.head) or git_branch
 | 
			
		||||
      else
 | 
			
		||||
         -- path seperator
 | 
			
		||||
         local branch_sep = package.config:sub(1, 1)
 | 
			
		||||
         -- get file dir so we can search from that dir
 | 
			
		||||
         local file_dir = vim.fn.expand "%:p:h" .. ";"
 | 
			
		||||
         -- find .git/ folder genaral case
 | 
			
		||||
         local git_dir = vim.fn.finddir(".git", file_dir)
 | 
			
		||||
         -- find .git file in case of submodules or any other case git dir is in
 | 
			
		||||
         -- any other place than .git/
 | 
			
		||||
         local git_file = vim.fn.findfile(".git", file_dir)
 | 
			
		||||
         -- for some weird reason findfile gives relative path so expand it to fullpath
 | 
			
		||||
         if #git_file > 0 then
 | 
			
		||||
            git_file = vim.fn.fnamemodify(git_file, ":p")
 | 
			
		||||
         end
 | 
			
		||||
         if #git_file > #git_dir then
 | 
			
		||||
            -- separate git-dir or submodule is used
 | 
			
		||||
            local file = io.open(git_file)
 | 
			
		||||
            git_dir = file:read()
 | 
			
		||||
            git_dir = git_dir:match "gitdir: (.+)$"
 | 
			
		||||
            file:close()
 | 
			
		||||
            -- submodule / relative file path
 | 
			
		||||
            if git_dir:sub(1, 1) ~= branch_sep and not git_dir:match "^%a:.*$" then
 | 
			
		||||
               git_dir = git_file:match "(.*).git" .. git_dir
 | 
			
		||||
            end
 | 
			
		||||
         end
 | 
			
		||||
 | 
			
		||||
         if #git_dir > 0 then
 | 
			
		||||
            local head_file = git_dir .. branch_sep .. "HEAD"
 | 
			
		||||
            local f_head = io.open(head_file)
 | 
			
		||||
            if f_head then
 | 
			
		||||
               local HEAD = f_head:read()
 | 
			
		||||
               f_head:close()
 | 
			
		||||
               local branch = HEAD:match "ref: refs/heads/(.+)$"
 | 
			
		||||
               if branch then
 | 
			
		||||
                  git_branch = branch
 | 
			
		||||
               else
 | 
			
		||||
                  git_branch = HEAD:sub(1, 6)
 | 
			
		||||
               end
 | 
			
		||||
            end
 | 
			
		||||
         end
 | 
			
		||||
      end
 | 
			
		||||
      return (git_branch ~= "" and "  " .. git_branch) or git_branch
 | 
			
		||||
   end,
 | 
			
		||||
   provider = "git_branch",
 | 
			
		||||
   hl = {
 | 
			
		||||
      fg = colors.grey_fg2,
 | 
			
		||||
      bg = colors.statusline_bg,
 | 
			
		||||
   },
 | 
			
		||||
   icon = "",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
components.active[3][3] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue