81 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local status_ok, el = pcall(require, "el")
 | |
| if not status_ok then
 | |
|   return
 | |
| end
 | |
| 
 | |
| local builtin = require "el.builtin"
 | |
| local diagnostic = require "el.diagnostic"
 | |
| local extensions = require "el.extensions"
 | |
| local lsp_statusline = require "el.plugins.lsp_status"
 | |
| local sections = require "el.sections"
 | |
| local subscribe = require "el.subscribe"
 | |
| 
 | |
| local file_icon = subscribe.buf_autocmd("el_file_icon", "BufRead", function(_, buffer)
 | |
|   return extensions.file_icon(_, buffer)
 | |
| end)
 | |
| 
 | |
| local git_branch = subscribe.buf_autocmd("el_git_branch", "BufEnter", function(window, buffer)
 | |
|   local branch = extensions.git_branch(window, buffer)
 | |
|   if branch then
 | |
|     return " " .. extensions.git_icon() .. " " .. branch
 | |
|   end
 | |
| end)
 | |
| 
 | |
| local git_changes = subscribe.buf_autocmd("el_git_changes", "BufWritePost", function(window, buffer)
 | |
|   return extensions.git_changes(window, buffer)
 | |
| end)
 | |
| 
 | |
| local show_current_func = function(window, buffer)
 | |
|   if buffer.filetype == "lua" then
 | |
|     return ""
 | |
|   end
 | |
| 
 | |
|   return lsp_statusline.current_function(window, buffer)
 | |
| end
 | |
| 
 | |
| local diagnostic_display = diagnostic.make_buffer()
 | |
| 
 | |
| el.setup {
 | |
|   generator = function(window, buffer)
 | |
|     local mode = extensions.gen_mode { format_string = " %s " }
 | |
| 
 | |
|     local items = {
 | |
|       { mode },
 | |
|       { git_branch },
 | |
|       { sections.split },
 | |
|       { file_icon },
 | |
|       { " " },
 | |
|       { sections.maximum_width(builtin.make_responsive_file(140, 90), 0.40) },
 | |
|       { sections.collapse_builtin { { " " }, { builtin.modified_flag } } },
 | |
|       { sections.split },
 | |
|       { diagnostic_display },
 | |
|       { show_current_func },
 | |
|       { git_changes },
 | |
|       { "[" },
 | |
|       { builtin.line_with_width(3) },
 | |
|       { ":" },
 | |
|       { builtin.column_with_width(2) },
 | |
|       { "]" },
 | |
|       {
 | |
|         sections.collapse_builtin {
 | |
|           "[",
 | |
|           builtin.help_list,
 | |
|           builtin.readonly_list,
 | |
|           "]",
 | |
|         },
 | |
|       },
 | |
|       { builtin.filetype },
 | |
|     }
 | |
| 
 | |
|     local add_item = function(result, item)
 | |
|       table.insert(result, item)
 | |
|     end
 | |
| 
 | |
|     local result = {}
 | |
|     for _, item in ipairs(items) do
 | |
|       add_item(result, item)
 | |
|     end
 | |
| 
 | |
|     return result
 | |
|   end,
 | |
| }
 |