From 2a94573f54c69a9af7536586ab2c03eb88bda5e7 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Fri, 5 Jan 2024 01:50:20 +0100 Subject: Refactor --- fnl/plugins/lualine.fnl | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 fnl/plugins/lualine.fnl (limited to 'fnl/plugins/lualine.fnl') diff --git a/fnl/plugins/lualine.fnl b/fnl/plugins/lualine.fnl new file mode 100644 index 0000000..1afad4f --- /dev/null +++ b/fnl/plugins/lualine.fnl @@ -0,0 +1,89 @@ +;; Statusbar. + +(local icons (require :icons)) + +(local disable [:neogitstatus + :netrw + :lir + :lazy + :alpha + :neo-tree + :Outline + :NeogitStatus + :NeogitCommitMessage]) + +(local ignore [:help :packer :spectre_panel :TelescopePrompt]) + +(fn active-clients [] + (let [clients (vim.lsp.buf_get_clients) + client_names []] + (each [_ client (pairs clients)] + (table.insert client_names client.name)) + (if (> (length client_names) 0) + (table.concat client_names ", ") + ""))) + +(fn hide-in-width [] + (> (vim.fn.winwidth 0) 80)) + +(local diagnostics {1 :diagnostics + :sources [:nvim_diagnostic] + :sections [:error :warn] + :symbols {:error (.. (. icons :error) " ") + :warn (.. (. icons :warn) " ")} + :colored false + :disabled_buftypes [:nvim-tree] + :padding 0 + :update_in_insert false + :always_visible true}) + +(local diff {1 :diff + :colored false + :disabled_buftypes [:nvim-tree] + :cond hide-in-width}) + +(local branch {1 "b:gitsigns_head" + :icon (. icons :git) + :disabled_buftypes [:nvim-tree] + :cond hide-in-width}) + +(local filetype {1 :filetype + :icon_only true + :disabled_buftypes [:nvim-tree] + :colored false + :cond hide-in-width}) + +(local language-server {1 active-clients + :disabled_buftypes [:nvim-tree] + :cond hide-in-width}) + +(local lsp-progress + {1 :lsp_progress + :display_components [[:title :percentage :message]] + :timer {:progress_enddelay 500 :lsp_client_name_enddelay 500}}) + +(local opts {:options {:icons_enabled true + :theme :auto + :component_separators "" + :section_separators {:left "" :right ""} + :disabled_filetypes disable + :ignore_focus ignore + :always_divide_middle true + :globalstatus true} + :sections {:lualine_a [:mode] + :lualine_b [branch diff] + :lualine_c {} + :lualine_x [lsp-progress language-server diagnostics] + :lualine_y [filetype] + :lualine_z [:location :progress]} + :inactive_sections {:lualine_a [:mode] + :lualine_b {} + :lualine_c {} + :lualine_x {} + :lualine_y {} + :lualine_z [:location :progress]} + :extensions []}) + +(local dependencies [:nvim-tree/nvim-web-devicons :arkav/lualine-lsp-progress]) + +{1 :nvim-lualine/lualine.nvim :event :BufReadPost : opts : dependencies} -- cgit v1.2.3-70-g09d2