diff --git a/autoload/airline/extensions.vim b/autoload/airline/extensions.vim index 9ec8e765..f032d226 100644 --- a/autoload/airline/extensions.vim +++ b/autoload/airline/extensions.vim @@ -377,6 +377,8 @@ function! airline#extensions#load() endif try call airline#extensions#{name}#init(s:ext) + " mark as external + call add(s:loaded_ext, name.'*') catch endtry endif diff --git a/doc/airline.txt b/doc/airline.txt index 8c059c3c..521aec52 100644 --- a/doc/airline.txt +++ b/doc/airline.txt @@ -261,6 +261,7 @@ COMMANDS *airline-commands* :AirlineExtensions *:AirlineExtensions* Shows the status of all available airline extensions. + Extern means, the extensions does not come bundled with Airline. ============================================================================== AUTOCOMMANDS *airline-autocommands* diff --git a/plugin/airline.vim b/plugin/airline.vim index d18675e4..ae2170f6 100644 --- a/plugin/airline.vim +++ b/plugin/airline.vim @@ -205,11 +205,13 @@ function! s:airline_extensions() call map(files, 'fnamemodify(v:val, ":t:r")') if !empty(files) echohl Title - echo printf("%-15s\t%s", "Extension", "Status") + echo printf("%-15s\t%s\t%s", "Extension", "Extern", "Status") echohl Normal endif for ext in sort(files) - echo printf("%-15s\t%sloaded", ext, (index(loaded, ext) == -1 ? 'not ' : '')) + let indx=match(loaded, '^'.ext.'\*\?$') + let external = (indx > -1 && loaded[indx] =~ '\*$') + echo printf("%-15s\t%s\t%sloaded", ext, external, indx == -1 ? 'not ' : '') endfor endfunction