Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENHANCE]: Error message for plugin. #4441

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 19 additions & 7 deletions plugin/black.vim
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,28 @@ if exists("g:load_black")
finish
endif

if v:version < 700 || !has('python3')
func! __BLACK_MISSING()
echo "The black.vim plugin requires vim7.0+ with Python 3.6 support."
" check if Vim version is too old or Python 3 support is missing
if v:version < 700
func! __BlackNotSupported()
echo "Vim " . printf("%d.%02d", v:version / 100, v:version % 100) . " is too old."
echo "The black.vim plugin requires Vim 7.0+ with Python 3.8+ support."
endfunc
command! Black :call __BLACK_MISSING()
command! BlackUpgrade :call __BLACK_MISSING()
command! BlackVersion :call __BLACK_MISSING()
finish
elseif !has('python3')
func! __BlackNotSupported()
echo "Python 3 support is not available."
echo "The black.vim plugin requires Vim 7.0+ with Python 3.8+ support."
endfunc
endif
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will hide the version requirements if python3 support is not available. I think it will be more useful to use:

if v:version < 700
    ...
elseif !has('python3')
    ...
endif

Of course with this if you had very old vim and you get vim 7+ without python3 support you will find about the python3 support on the second try. The current error message avoid this issue by displaying both requirements, but fail to explain what is the actual issue.

We can do something like this:

Vim is too old:

Vim {version} is too old.
The black.vim plugin requires Vim 7.0+ with python3 support.

Python3 is missing:

Python3 support is not available.
The black.vim plugin requires Vim 7.0+ with python3 support.


" Define commands only if __BlackNotSupported is defined
if exists("*__BlackNotSupported")
command! Black :call __BlackNotSupported()
command! BlackUpgrade :call __BlackNotSupported()
command! BlackVersion :call __BlackNotSupported()
endif



let g:load_black = "py1.0"
if !exists("g:black_virtualenv")
if has("nvim")
Expand Down
Loading