vim-syntastic / syntastic

Syntax checking hacks for vim
Do What The F*ck You Want To Public License
11.3k stars 1.14k forks source link

Make the instructions more useful #2305

Closed stevespages closed 4 years ago

stevespages commented 4 years ago

The readme enabled me to install Pathogen and Syntastic in about 1 minute which was great. I have subsequently spent hours trying to get a checker to work. I think it would be really useful to show how this is achieved for two or three commonly used checkers. I say 2 or 3 because I get the impression there is some variability here. Please will you add that. I know it may be system specific which makes it difficult.

Commands such as the following one from the readme are not friendly for inexperienced programmers.

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

More people would understand that if it was written as three separate commands:

mkdir -p ~/.vim/autoload
mkdir -p ~/.vim/bundle
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

Please will you make this change to improve the accessibility of the instructions.

lcd047 commented 4 years ago

The readme enabled me to install Pathogen and Syntastic in about 1 minute which was great.

That was fine for Vim 7.4, at the time syntastic was written. For Vim 8.1.x in 2020 that's wrong, Pathogen has been obsoleted by Vim's internal package system, and syntastic is now essentially dead (you might consider using ALE instead, which takes advantage of newer features in Vim 8 and can do asynchronous checking). So in 2020 you'd either use Vim's own package system, or you'd have a dedicated package manager for all your Vim plugins. And you probably wouldn't be using syntastic.

Commands such as the following one from the readme are not friendly for inexperienced programmers.

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

Sorry to let you down, but syntastic pretty much assumes a good familiarity with Vim scripting, and a solid understanding of the tools of the languages of the files you're trying to check. It is (or was) a development tool, it strives to get out of your way rather than make any attempt to hold your hand. If you have trouble understanding what the above does and why, I'm afraid you'd spend a lot of time getting syntastic to do anything useful.

More people would understand that if it was written as three separate commands:

mkdir -p ~/.vim/autoload
mkdir -p ~/.vim/bundle
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

But they don't work the same. The point of writing the commands in the first form is to create the relevant directories and abort if anything goes wrong. With your form if creating the first directory succeeds and the second fails you'd happily download pathogen.vim, then ask me why your installation doesn't work. Sorry, that isn't better, it's plain broken.

Please will you make this change to improve the accessibility of the instructions.

Like I said, your expectations about syntastic are probably wrong. Sorry about that.

stevespages commented 4 years ago

vim is a sophisticated powerful editor. It ships with vimtutor which speaks straight to beginners. Maybe that is why vim is still around whereas other projects which are patronising and unhelpful to newcomers go by the wayside.

Will you at least edit the readme to tell people it is obsolete and they should try ALE?

Thanks for the ALE tip. I will try and make headway on that.

lcd047 commented 4 years ago

Maybe that is why vim is still around whereas other projects which are patronising and unhelpful to newcomers go by the wayside.

I was actually wondering when we'd get to that. :smile:

Will you at least edit the readme to tell people it is obsolete and they should try ALE?

They don't have the exact same scope: syntastic works with Vim 7.4, and it can still handle a few things that ALE can't. Also the project is technically still maintained, I made a commit earlier today.

stevespages commented 4 years ago

You did say

syntastic is now essentially dead

Even if that is an overstatement it would be useful to indicate on the readme that syntastic is likely to only be the best choice for specific situations, such as using with Vim 7.4 and to point out what it can handle which ALE can't.

lcd047 commented 4 years ago

You did say

syntastic is now essentially dead

Sure. Some projects get to go through a continuum of states between "absolutely alive" and "absolutely dead". Syntastic seems to be one of them.

Even if that is an overstatement it would be useful to indicate on the readme that syntastic is likely to only be the best choice for specific situations, such as using with Vim 7.4 and to point out what it can handle which ALE can't.

Useful to whom? Deciding whether a tool is the best choice for a job is up to the user, not to the maintainer of said tool. If anything the maintainer is biased...