I have an ALE configuration for both shell & python. The shell lint seems to work, but the python only style issues, e.g.

for this dummy file:

  import ..foo      # bad import                                                                                                                                                                                                                                           
>>def a(a,b,c):                                                                                                                                                                                                                                                            
>>    print(d)A     #  << using unknown parameter                                                                                                                                                                                                                          
>>def a(a, b. c):   #  << "." instead of ","                                                                                                                                                                                                                               
>>    pass          #  << not using the parameters                                                                                                                                                                                                                         

I only get the following errors:

  1. Line too long
  2. inline comment should start with '# '
  3. missing whitespace

but what about the blatant errors this file has? (which I commented myself)

This is my .vimrc

" Plugins                                                                                                                                                                                                                                                                  
call plug#begin('~/.vim/plugged')     
" linter                                                                                                                                                                                                                                                                   
Plug 'dense-analysis/ale'
call plug#end()                                                                                                                                                                                                                                                            
" Plugins end  

" ALE config                                                                                                                                                                                                                                                               
let g:ale_linters = {                                                                                                                                                                                                                                                      
        \   'python': ['flake8', 'pylint', 'bandit', 'mypy', 'pycodestyle'],                                                                                                                                                                                               
        \   'shell': ['shellcheck'],                                                                                                                                                                                                                                       

I'm using

  • Ubuntu 16.04
  • default python version: 2.7.12
  • Vim: 8.2.2251

Well, bandit and mypy are not found, so not run at all.

flake8, pycodestyle, and pylint run. Flake8 and Pylint don't have output, and the style stuff is from pycodestyle.

If you want a more "compiler"-like experience, you'll need to enable and possibly install other linters (which ones to use is a bit of a personal preference; I have them all enabled for python, but in practice have only mypy, pyls, and pycodestyle enabled).

  • I don't get it. Thought vimPlug would install all ALE dependencies for me. As it is, I have some linters running on pyhon27 and others on python38 – CIsForCookies Jan 14 at 17:07
  • @CIsForCookies I think you've misunderstood ALE a bit (which is easy—it can be confusing!). ALE is an "engine" or "runner" for linters—it does the hard job of spawning them asynchronously, running them, collecting output, communicating via the language-server protocol, etc. That's (mostly?) vimscript. The linters themselves are (separate) programs. vim-plug isn't going to install the ~300+ available linter programs… – D. Ben Knoble Jan 14 at 17:17
  • That much I do understand. However, declaring a linter is available to use by ALE could (and IMO, should) mean that installing ALE (via vimplug) installs (or at least verifies and configures) the linter. An engine is allowed to make my life easier :) – CIsForCookies Jan 14 at 18:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.