From 794890b6dbab3328565de0c7b37a053643f8a721 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Sun, 17 Jul 2022 19:09:24 +0200 Subject: Add more advanced winbar --- fnl/config/winbar.fnl | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'fnl/config/winbar.fnl') diff --git a/fnl/config/winbar.fnl b/fnl/config/winbar.fnl index 6b1c548..a472f19 100644 --- a/fnl/config/winbar.fnl +++ b/fnl/config/winbar.fnl @@ -1,4 +1,45 @@ ;; Winbar settings -(module config.winbar) +(module config.winbar {autoload {nvim aniseed.nvim}}) -(tset vim.opt :winbar :%t%m) +(def- ignore-filetypes {:help true + :startify true + :dashboard true + :packer true + :neogitstatus true + :NvimTree true + :Trouble true + :alpha true + :lir true + :Outline true + :spectre_panel true}) + +(defn- is-empty [arg] (or (= arg nil) (= arg ""))) + +(defn- get-filename [] (vim.fn.expand "%t:")) + +(defn- get-filetype [] vim.bo.filetype) + +(defn- get-extension [] (vim.fn.expand "%:e")) + +(defn- ignore [] (. ignore-filetypes (get-filetype))) + +(defn- get-icon [] (let [(ok? devicons) (pcall require :nvim-web-devicons)] + (if ok? + (let [filename (get-filename) + extension (get-extension)] + (if (not (is-empty filename)) + (let [(icon _) (devicons.get_icon filename + extension)] + icon)))))) + +(defn- get-winbar [] + (if (and (not= (ignore) true) (not= (is-empty (get-filename)) true)) + (let [icon (get-icon)] + (if (not= icon nil) + (vim.api.nvim_set_option_value :winbar (.. icon " " "%t%m") + {:scope :local}))) + (vim.api.nvim_set_option_value :winbar "" {:scope :local}))) + +(nvim.create_autocmd "BufEnter,CursorMoved,CursorHold,BufWinEnter,BufFilePost,InsertEnter,BufWritePost,TabClosed" + {:callback (lambda [] + (get-winbar))}) -- cgit v1.2.3-70-g09d2