From 4c4116c6af1f3db191cd4d83e66cbf1c5b413bfd Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 23 Oct 2023 13:50:24 +1100 Subject: [PATCH 1/2] 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 From 0d1e22d515423ef0a13fa62061e43512ae214849 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 23 Oct 2023 13:51:10 +1100 Subject: [PATCH 2/2] Switch from NERDtree to fern.vim, which is async and very pluggable --- config/vim/init.vim | 7 ++++++- config/vim/plugins.vim | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config/vim/init.vim b/config/vim/init.vim index 3a31895..d7b3a69 100644 --- a/config/vim/init.vim +++ b/config/vim/init.vim @@ -84,12 +84,17 @@ g:csv_no_conceal = 1 g:vim_svelte_plugin_use_typescript = 1 g:LatexBox_Folding = 1 -g:NERDTreeHijackNetrw = 1 g:ale_set_balloons = 1 nmap (ale_previous_wrap) nmap (ale_next_wrap) +g:fern#renderer = 'nerdfont' +augroup glyphPalette + autocmd! + autocmd FileType fern g:glyph_palette#apply() +augroup END + g:mucomplete#can_complete = { default: { omni: (t) => strlen(&l:omnifunc) > 0 && t =~# '\m\k\%(\k\|\.\)$' diff --git a/config/vim/plugins.vim b/config/vim/plugins.vim index 3058518..25e8f2d 100644 --- a/config/vim/plugins.vim +++ b/config/vim/plugins.vim @@ -28,7 +28,6 @@ minpac#add('lifepillar/vim-mucomplete') minpac#add('lotabout/skim') minpac#add('lotabout/skim.vim') minpac#add('mhinz/vim-signify') -minpac#add('scrooloose/nerdtree') minpac#add('sjl/vitality.vim') minpac#add('tpope/vim-apathy') minpac#add('tpope/vim-commentary') @@ -51,8 +50,15 @@ minpac#add('00dani/SchemaStore.vim') minpac#add('rbong/vim-crystalline') minpac#add('lambdalisue/battery.vim') +minpac#add('lambdalisue/glyph-palette.vim') minpac#add('lambdalisue/nerdfont.vim') +minpac#add('lambdalisue/fern.vim') +minpac#add('lambdalisue/fern-hijack.vim') +minpac#add('lambdalisue/fern-renderer-nerdfont.vim') +minpac#add('lambdalisue/fern-git-status.vim') +minpac#add('lambdalisue/fern-ssh') + minpac#add('alvan/vim-closetag') minpac#add('LaTeX-Box-Team/LaTeX-Box') minpac#add('vhda/verilog_systemverilog.vim')