dense-analysis / ale

Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support
BSD 2-Clause "Simplified" License
13.49k stars 1.43k forks source link

Location list shown as listed buffer #2108

Open ashishtibrewal opened 5 years ago

ashishtibrewal commented 5 years ago

Information

VIM version

VIM - Vi IMproved 8.1 (2018 May 18, compiled Nov 13 2018 21:39:48)
macOS version
Included patches: 1-280
Compiled by MacPorts
Huge version without GUI.  Features included (+) or not (-):
+acl               +extra_search      +mouse_netterm     +tag_old_static
+arabic            +farsi             +mouse_sgr         -tag_any_white
+autocmd           +file_in_path      -mouse_sysmouse    -tcl
+autochdir         +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
-balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
-browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +timers
+byte_offset       -hangul_input      +num64             +title
+channel           +iconv             +packages          -toolbar
+cindent           +insert_expand     +path_extra        +user_commands
-clientserver      +job               -perl              +vartabs
+clipboard         +jumplist          +persistent_undo   +vertsplit
+cmdline_compl     +keymap            +postscript        +virtualedit
+cmdline_hist      +lambda            +printer           +visual
+cmdline_info      +langmap           +profile           +visualextra
+comments          +libcall           -python            +viminfo
+conceal           +linebreak         +python3           +vreplace
+cryptv            +lispindent        +quickfix          +wildignore
+cscope            +listcmds          +reltime           +wildmenu
+cursorbind        +localmap          +rightleft         +windows
+cursorshape       -lua               -ruby              +writebackup
+dialog_con        +menu              +scrollbind        -X11
+diff              +mksession         +signs             -xfontset
+digraphs          +modify_fname      +smartindent       -xim
-dnd               +mouse             +startuptime       -xpm
-ebcdic            -mouseshape        +statusline        -xsmp
+emacs_tags        +mouse_dec         -sun_workshop      -xterm_clipboard
+eval              -mouse_gpm         +syntax            -xterm_save
+ex_extra          -mouse_jsbterm     +tag_binary        
   system vimrc file: "/opt/local/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/opt/local/share/vim"
Compilation: /usr/bin/clang -c -I. -Iproto -DHAVE_CONFIG_H   -I/opt/local/include -DMACOS_X -DMACOS_X_DARWIN  -pipe -Os -arch x86_64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Linking: /usr/bin/clang   -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -o vim        -lm  -lncurses -liconv -lintl -framework AppKit     -L/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin -lpython3.6m -framework CoreFoundation  

Operating System: macOS mojave 10.14.1

What went wrong

Location list appears as a listed buffer instead of its default behaviour of being an unlisted buffer. So when switching between buffers (using :bn or :bp) and wrapping around (i.e. after the last buffer on the buffer list), the location list buffer is shown. This only happens when ALE is present in my list of plugings, if it's not present then the issue doen't occur.

Reproducing the bug

  1. Start vim
  2. Open a couple of files (:e [filename])
  3. :bn until the last buffer
  4. After the last buffer :bn goes to the location list which I think isn't the expected behaviour

:ALEInfo

 Current Filetype: python
Available Linters: ['flake8', 'mypy', 'prospector', 'pycodestyle', 'pyflakes', 'pylint', 'pyls', 'pyre', 'vulture']
  Enabled Linters: ['flake8', 'mypy', 'pylint']
 Suggested Fixers: 
  'add_blank_lines_for_python_control_statements' - Add blank lines before control statements.
  'autopep8' - Fix PEP8 issues with autopep8.
  'black' - Fix PEP8 issues with black.
  'isort' - Sort Python imports with isort.
  'remove_trailing_lines' - Remove all blank lines at the end of a file.
  'trim_whitespace' - Remove all trailing whitespace characters at the end of every line.
  'yapf' - Fix Python files with yapf.
 Linter Variables:

let g:ale_python_flake8_auto_pipenv = 0
let g:ale_python_flake8_change_directory = 1
let g:ale_python_flake8_executable = 'flake8'
let g:ale_python_flake8_options = ''
let g:ale_python_flake8_use_global = 0
let g:ale_python_mypy_auto_pipenv = 0
let g:ale_python_mypy_executable = 'mypy'
let g:ale_python_mypy_ignore_invalid_syntax = 0
let g:ale_python_mypy_options = ''
let g:ale_python_mypy_use_global = 0
let g:ale_python_pylint_auto_pipenv = 0
let g:ale_python_pylint_change_directory = 1
let g:ale_python_pylint_executable = 'pylint'
let g:ale_python_pylint_options = ''
let g:ale_python_pylint_use_global = 0
 Global Variables:

let g:ale_cache_executable_check_failures = v:null
let g:ale_change_sign_column_color = 0
let g:ale_command_wrapper = ''
let g:ale_completion_delay = v:null
let g:ale_completion_enabled = 0
let g:ale_completion_max_suggestions = v:null
let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%code: %%s'
let g:ale_echo_msg_info_str = 'Info'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_fix_on_save = 0
let g:ale_fixers = {}
let g:ale_history_enabled = 1
let g:ale_history_log_output = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_filetype_changed = 1
let g:ale_lint_on_insert_leave = 0
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'never'
let g:ale_linter_aliases = {}
let g:ale_linters = {}
let g:ale_linters_explicit = 0
let g:ale_list_vertical = 0
let g:ale_list_window_size = 10
let g:ale_loclist_msg_format = '%code: %%s'
let g:ale_max_buffer_history_size = 20
let g:ale_max_signs = -1
let g:ale_maximum_file_size = v:null
let g:ale_open_list = 1
let g:ale_pattern_options = v:null
let g:ale_pattern_options_enabled = v:null
let g:ale_set_balloons = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 1
let g:ale_sign_error = '>>'
let g:ale_sign_info = '--'
let g:ale_sign_offset = 1000000
let g:ale_sign_style_error = '>>'
let g:ale_sign_style_warning = '--'
let g:ale_sign_warning = '--'
let g:ale_statusline_format = v:null
let g:ale_type_map = {}
let g:ale_use_global_executables = v:null
let g:ale_virtualtext_cursor = 0
let g:ale_warn_about_trailing_blank_lines = 1
let g:ale_warn_about_trailing_whitespace = 1
  Command History:

(executable check - success) flake8
(finished - exit code 0) ['/bin/bash', '-c', '''flake8'' --version']
(executable check - failure) mypy
(executable check - failure) pylint
(finished - exit code 1) ['/bin/bash', '-c', 'cd ''/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp'' && ''flake8'' --format=default --stdin-display-name ''/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp/data_providers.py'' - < ''/var/folders/dq/pc9156z1727gxcpzmyydsk6h0000gn/T/vpXLGrH/5/data_providers.py''']

<<<OUTPUT STARTS>>>
/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp/data_providers.py:8:1: F401 'pickle' imported but unused
/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp/data_providers.py:9:1: F401 'gzip' imported but unused
/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp/data_providers.py:136:1: E302 expected 2 blank lines, found 1
/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp/data_providers.py:202:1: E302 expected 2 blank lines, found 1
/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp/data_providers.py:322:1: E302 expected 2 blank lines, found 1
/University/University-of-Edinburgh/Courses/MLP/mlpractical/mlp/data_providers.py:355:12: E714 test for object identity should be 'is not'
<<<OUTPUT ENDS>>>
RyanSquared commented 5 years ago

If you go to the ALE Git directory - assuming you clone from Git - can you run git rev-parse --verify HEAD, so we can see which version of ALE you're on?

ashishtibrewal commented 5 years ago

Thank you for your reply. The output is the following: f538bb440a8d9e5f607fe7a8d54f7862537586d9 (i.e. this commit)

w0rp commented 5 years ago

I'm not entirely certain if a loclist buffer should be listed by default or not. I do know that ALE doesn't go out of its way to list it.

RyanSquared commented 5 years ago

What is your .vimrc and what plugins do you have enabled? I do not have this with ALE and several plugins, but would like to see if it is reproducible given a certain environment. If I have time later, I might be able to try a bare Vim with ALE.