From 4c4116c6af1f3db191cd4d83e66cbf1c5b413bfd Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 23 Oct 2023 13:50:24 +1100 Subject: [PATCH] Explicitly hide default icon so third-party icon plugins work right --- config/vim/statusline.vim | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/config/vim/statusline.vim b/config/vim/statusline.vim index 04bc2a6..33d9531 100644 --- a/config/vim/statusline.vim +++ b/config/vim/statusline.vim @@ -2,6 +2,13 @@ vim9script import autoload ($XDG_CACHE_HOME .. '/vim/pack/minpac/start/vim-crystalline/autoload/crystalline.vim') as cr +def DropIfDefault(status: string, default: string): string + if status == default + return '' + endif + return status +enddef + def PrependIfVisible(status: string, prefix: string): string if empty(status) return '' @@ -41,7 +48,7 @@ def StatuslineLeft(window: number, inactive: bool): string const bufnr = window->winbufnr() const b = bufnr->getbufvar('&') const fileName = [ - bufname(bufnr)->g:nerdfont#find()->AppendIfVisible(' '), + bufname(bufnr)->g:nerdfont#find()->DropIfDefault(g:nerdfont#default)->AppendIfVisible(' '), b.buftype == '' ? '%t' : '%f', b.modifiable && b.modified ? cr.ModeHiItem('Modified') .. '+' .. cr.ModeHiItem('Fill') : '', b.readonly ? " \uf023" : '', # nf-fa-lock @@ -78,7 +85,6 @@ enddef def ConfigurePlugins(): void g:battery#component_format = '%s %v%%' - g:nerdfont#default = '' g:crystalline_theme = 'gruvbox8' enddef @@ -107,12 +113,13 @@ def InitTab() width += 2 endif - const icon = bufname(bufnr)->g:nerdfont#find()->PrependIfVisible(' ') - if width + strchars(icon) >= maxWidth + const icon = bufname(bufnr)->g:nerdfont#find()->DropIfDefault(g:nerdfont#default)->PrependIfVisible(' ') + const iconWidth = strchars(icon) + if width + iconWidth >= maxWidth return [tabDisplay, width] endif - return [icon .. tabDisplay, width + strchars(icon)] + return [icon .. tabDisplay, width + iconWidth] enddef enddef