mirror of
https://github.com/vim-airline/vim-airline.git
synced 2026-03-01 04:52:19 +08:00
extensions: Add a zhihu Neovim extension
Some checks failed
CI / Test (v7.4) (push) Has been cancelled
CI / Test (v8.0.0000) (push) Has been cancelled
CI / Test (v8.1.0000) (push) Has been cancelled
CI / Test (v8.2.0000) (push) Has been cancelled
CI / Test (v8.2.1000) (push) Has been cancelled
CI / Test (v9.0.0000) (push) Has been cancelled
CI / Test (v9.1.0000) (push) Has been cancelled
reviewdog / runner / vint (push) Has been cancelled
Some checks failed
CI / Test (v7.4) (push) Has been cancelled
CI / Test (v8.0.0000) (push) Has been cancelled
CI / Test (v8.1.0000) (push) Has been cancelled
CI / Test (v8.2.0000) (push) Has been cancelled
CI / Test (v8.2.1000) (push) Has been cancelled
CI / Test (v9.0.0000) (push) Has been cancelled
CI / Test (v9.1.0000) (push) Has been cancelled
reviewdog / runner / vint (push) Has been cancelled
closes: #2740 Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
b03fdc542f
commit
4ab7c731fe
@@ -526,6 +526,11 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'rufo')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#zhihu#enabled', 1) && airline#util#has_zhihu())
|
||||
call airline#extensions#zhihu#init(s:ext)
|
||||
call add(s:loaded_ext, 'zhihu')
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#get_loaded_extensions()
|
||||
|
||||
45
autoload/airline/extensions/zhihu.vim
Normal file
45
autoload/airline/extensions/zhihu.vim
Normal file
@@ -0,0 +1,45 @@
|
||||
" MIT License. Copyright (c) 2026-2026 Wu Zhenyu et al
|
||||
" Plugin: https://github.com/pxwg/zhihu.nvim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !airline#util#has_zhihu()
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:has_percent_eval = v:version > 802 || (v:version == 802 && has("patch2854"))
|
||||
|
||||
function! airline#extensions#zhihu#bufname() abort
|
||||
let fmod = (exists("+autochdir") && &autochdir) ? ':p' : ':.'
|
||||
let name = fnamemodify(bufname('%'), fmod)
|
||||
|
||||
if empty(name)
|
||||
return ''
|
||||
endif
|
||||
|
||||
if match(name, 'zhihu://') == -1
|
||||
return s:has_percent_eval ? '%f' : name
|
||||
endif
|
||||
|
||||
return get(get(b:, 'article', {}), 'title', name)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#zhihu#init(ext) abort
|
||||
let prct = s:has_percent_eval ? '%' : ''
|
||||
|
||||
if exists("+autochdir") && &autochdir
|
||||
" if 'acd' is set, vim-airline uses the path section, so we need to redefine this here as well
|
||||
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
|
||||
call airline#parts#define_raw('path', '%<%{'. prct. 'pathshorten(airline#extensions#zhihu#bufname())' . prct . '}%m')
|
||||
else
|
||||
call airline#parts#define_raw('path', '%<%{' . prct . 'airline#extensions#zhihu#bufname()' . prct . '}%m')
|
||||
endif
|
||||
else
|
||||
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
|
||||
call airline#parts#define_raw('file', '%<%{' . prct . 'pathshorten(airline#extensions#zhihu#bufname())' . prct . '}%m')
|
||||
else
|
||||
call airline#parts#define_raw('file', '%<%{' . prct . 'airline#extensions#zhihu#bufname()' . prct . '}%m')
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
@@ -149,6 +149,18 @@ function! airline#util#has_fugitive()
|
||||
return s:has_fugitive
|
||||
endfunction
|
||||
|
||||
function! airline#util#has_zhihu()
|
||||
if !has('nvim')
|
||||
return 0
|
||||
endif
|
||||
try
|
||||
call v:lua.require'zhihu'.setup()
|
||||
catch
|
||||
return 0
|
||||
endtry
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! airline#util#has_gina()
|
||||
if !exists("s:has_gina")
|
||||
let s:has_gina = (exists(':Gina') && v:version >= 800)
|
||||
|
||||
@@ -1883,6 +1883,13 @@ default: '> Zoomed'
|
||||
|
||||
default: ''
|
||||
|
||||
------------------------------------- *airline-zhihu*
|
||||
zhihu.nvim <https://github.com/pxwg/zhihu.nvim>
|
||||
|
||||
* enable/disable zhihu integration >
|
||||
let g:airline#extensions#zhihu#enabled = 1
|
||||
|
||||
|
||||
=============================================================================
|
||||
ADVANCED CUSTOMIZATION *airline-advanced-customization*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user