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

ale_floating_preview is ignored #4116

Closed hissssst closed 2 years ago

hissssst commented 2 years ago

Information

VIM version

NVIM v0.6.1
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by nixbld

Operating System: NixOS

The problem

subj

Configuration

My coc-settings.json

{
  "diagnostic": {
    "displayByAle": true,
    "warningSign": "__"
  },
  "erlang": {
    "lenses": {
      "disabled": [
        "function-references",
        "suggest-spec"
      ]
    }
  },
  "languageserver": {
    "erlang": {
      "command": "/nix/store/4srlvp73j8rvi8r36adjf2qkrh6p2s7y-erlang-ls-0.23.1/bin/erlang_ls",
      "filetypes": [
        "erlang"
      ]
    },
  },
  "suggest": {
    "enablePreview": true
  }
}

My init.vim:

set packpath^=/nix/store/5n3z97lwja8za3g14ms2vnbazn7js2jk-vim-pack-dir
set runtimepath^=/nix/store/5n3z97lwja8za3g14ms2vnbazn7js2jk-vim-pack-dir

" ale {{{
let g:ale_disable_lsp = 1
let g:ale_floating_preview = 1
let g:ale_floating_window_border = []
let g:ale_hover_to_floating_preview = 1
let g:ale_detail_to_floating_preview = 1
let g:ale_linters = {'erlang': ['dialyzer']}

" }}}
set encoding=utf-8
set hidden
set nobackup
set nowritebackup
set cmdheight=1
set updatetime=300
set shortmess+=c
set signcolumn=number
inoremap <silent><expr> <TAB>
  \ pumvisible() ? "\<C-n>" :
  \ <SID>check_back_space() ? "\<TAB>" :
  \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"

function! s:check_back_space() abort
  let col = col('.') - 1
  return !col || getline('.')[col - 1]  =~# '\s'
endfunction

inoremap <silent><expr> <c-space> coc#refresh()

nnoremap <C-n> :CocCommand explorer<CR>

" Make <CR> auto-select the first completion item and notify coc.nvim to
" format on enter, <cr> could be remapped by other vim plugin
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
                        \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"

nmap <leader>gp <Plug>(coc-git-prevconflict)
nmap <leader>gn <Plug>(coc-git-nextconflict)
nmap <leader>gc <Plug>(coc-git-keepcurrent)
nmap <leader>gi <Plug>(coc-git-keepincoming)
nmap <leader>gb <Plug>(coc-git-keepboth)
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
nmap <leader>rn <Plug>(coc-rename)
xmap <leader>f  <Plug>(coc-format-selected)
nmap <leader>f  <Plug>(coc-format-selected)
nnoremap <silent> K :call <SID>show_documentation()<CR>
xmap <leader>a  <Plug>(coc-codeaction-selected)
nmap <leader>a  <Plug>(coc-codeaction-selected)

function! s:show_documentation()
  if (index(['vim','help'], &filetype) >= 0)
    execute 'h '.expand('<cword>')
  elseif (coc#rpc#ready())
    call CocActionAsync('doHover')
  else
    execute '!' . &keywordprg . " " . expand('<cword>')
  endif
endfunction

" autocmd CursorHold * silent call CocActionAsync('highlight')

augroup mygroup
autocmd!
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end

" Remap keys for applying codeAction to the current buffer.
nmap <leader>ac  <Plug>(coc-codeaction)
" Apply AutoFix to problem on the current line.
nmap <leader>qf  <Plug>(coc-fix-current)

" Run the Code Lens action on the current line.
nmap <leader>cl  <Plug>(coc-codelens-action)

" Map function and class text objects
" NOTE: Requires 'textDocument.documentSymbol' support from the language server.
xmap if <Plug>(coc-funcobj-i)
omap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap af <Plug>(coc-funcobj-a)
xmap ic <Plug>(coc-classobj-i)
omap ic <Plug>(coc-classobj-i)
xmap ac <Plug>(coc-classobj-a)
omap ac <Plug>(coc-classobj-a)

" Remap <C-f> and <C-b> for scroll float windows/popups.
if has('nvim-0.4.0') || has('patch-8.2.0750')
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
endif

" Use CTRL-S for selections ranges.
" Requires 'textDocument/selectionRange' support of language server.
nmap <silent> <C-s> <Plug>(coc-range-select)
xmap <silent> <C-s> <Plug>(coc-range-select)

command! -nargs=0 Format :call CocActionAsync('format')
command! -nargs=? Fold   :call CocAction('fold', <f-args>)
command! -nargs=0 OR     :call CocActionAsync('runCommand', 'editor.action.organizeImport')

" Add (Neo)Vim's native statusline support.
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline.
" set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}

nnoremap <silent><nowait> <space>a  :<C-u>CocList diagnostics<cr>
nnoremap <silent><nowait> <space>e  :<C-u>CocList extensions<cr>
nnoremap <silent><nowait> <space>c  :<C-u>CocList commands<cr>
nnoremap <silent><nowait> <space>o  :<C-u>CocList outline<cr>
nnoremap <silent><nowait> <space>s  :<C-u>CocList -I symbols<cr>
nnoremap <silent><nowait> <space>j  :<C-u>CocNext<CR>
nnoremap <silent><nowait> <space>k  :<C-u>CocPrev<CR>
nnoremap <silent><nowait> <space>p  :<C-u>CocListResume<CR>

set background=dark mouse=a termguicolors nowrap number relativenumber
set mousefocus lazyredraw noshowmode splitright showcmd smartindent
set termguicolors nowrap autoread inccommand=nosplit t_Co=25d
set clipboard+=unnamedplus

nnoremap <silent> <A-Up> :wincmd k<CR>
nnoremap <silent> <A-j> :wincmd k<CR>
nnoremap <silent> <A-Down> :wincmd j<CR>
nnoremap <silent> <A-k> :wincmd j<CR>
nnoremap <silent> <A-Left> :wincmd h<CR>
nnoremap <silent> <A-h> :wincmd h<CR>
nnoremap <silent> <A-Right> :wincmd l<CR>
nnoremap <silent> <A-l> :wincmd l<CR>

nnoremap <A-t> :belowright split term://zsh<CR>:resize 15<CR>i
nnoremap <A-y> :vsplit term://zsh<CR>i
nnoremap <A-i> :belowright split term://iex -S mix<CR>

tnoremap <Esc> <C-\><C-n>
tnoremap <A-Left> <C-\><C-N><C-w>h
tnoremap <A-Up> <C-\><C-N><C-w>j
tnoremap <A-Down> <C-\><C-N><C-w>k
tnoremap <A-Right> <C-\><C-N><C-w>l

highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
au BufWinEnter * match ExtraWhitespace /\s\+$/
au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
au InsertLeave * match ExtraWhitespace /\s\+$/
au BufWinLeave * call clearmatches()

set relativenumber number
au Filetype NERDTree setlocal norelativenumber nonumber
au Filetype coc-explorer setlocal norelativenumber nonumber
au BufEnter term://* set norelativenumber nonumber

au ColorScheme * hi Cursor ctermbg=243 guibg=787882
au ColorScheme * hi Normal guibg=NONE ctermbg=NONE
au ColorScheme * hi NonText guibg=NONE ctermbg=NONE
au ColorScheme * hi SignColumn guibg=NONE ctermbg=NONE
au ColorScheme * hi VertSplit guibg=NONE ctermbg=NONE
au ColorScheme * hi Split guibg=NONE ctermbg=NONE
au ColorScheme * hi ExtraWhitespace ctermbg=red guibg=red
au VimLeave * set guicursor=a:block-blinkon0
" au VimLeave * silent !echo -ne "\033]112\007"

highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
au BufWinEnter * match ExtraWhitespace /\s\+$/
au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
au InsertLeave * match ExtraWhitespace /\s\+$/
au BufWinLeave * call clearmatches()

au BufEnter *coc-explorer* set norelativenumber nonumber
au BufWinEnter *coc-explorer* call clearmatches()

let g:ale_disable_lsp = 1
let g:ale_floating_preview = 1
let g:ale_floating_window_border = []
let g:ale_hover_to_floating_preview = 1
let g:ale_detail_to_floating_preview = 1
let g:ale_linters = {'erlang': ['dialyzer']}

Plugins are installed via home-manager module

Reproducing the bug

  1. Copy my config, with coc.nvim and ale installed
  2. Open any file with LSP showing warning
  3. See the error in commandline, not in floating window

:ALEInfo

 Current Filetype: erlang
Available Linters: ['dialyzer', 'elvis', 'erlc', 'syntaxerl']
  Enabled Linters: ['dialyzer']
  Ignored Linters: []
 Suggested Fixers: 
  '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.
 Linter Variables:

let g:ale_erlang_dialyzer_executable = 'dialyzer'
let g:ale_erlang_dialyzer_options = '-Wunmatched_returns -Werror_handling -Wrace_conditions -Wunderspecs'
let g:ale_erlang_dialyzer_plt_file = ''
let g:ale_erlang_dialyzer_rebar3_profile = 'default'
 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_disable_lsp = 1
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 = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'normal'
let g:ale_linter_aliases = {}
let g:ale_linters = {'erlang': ['dialyzer']}
let g:ale_linters_explicit = 0
let g:ale_linters_ignore = {}
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 = 0
let g:ale_pattern_options = v:null
let g:ale_pattern_options_enabled = v:null
let g:ale_root = {}
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 = 0
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_sign_highlight_linenrs = 0
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) dialyzer
(finished - exit code 1) ['/run/current-system/sw/bin/zsh', '-c', '''dialyzer'' -n --plt ''/home/flynn/.dialyzer_plt'' -Wunmatched_returns -Werror_handling -Wrace_conditions -Wunderspecs ''/home/flynn/pr/elixir/emqx/emqx/src/emqx_connection.erl''']

<<<OUTPUT STARTS>>>

dialyzer: No such file, directory or application: "/home/user/.dialyzer_plt"
<<<OUTPUT ENDS>>>
ilan-schemoul commented 2 years ago

I have the same problem for hover but not for aledetail I am on arch linux this is my .vimrc

set shell=/bin/bash
set ttymouse=sgr
set mouse=a
set nocompatible
filetype off
set clipboard=unnamedplus

set hidden

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'
Plugin 'preservim/nerdcommenter'

Plugin 'tpope/vim-fugitive' " Git
Plugin 'tpope/vim-surround'
Plugin 'scrooloose/nerdtree'
let g:ale_set_balloons = 1
Plugin 'dense-analysis/ale'
Plugin 'itchyny/lightline.vim'
Plugin 'maximbaz/lightline-ale'

Plugin 'luochen1990/rainbow'
Plugin 'morhetz/gruvbox'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'mattn/emmet-vim'
Plugin 'Rykka/colorv.vim'
Plugin 'sjl/gundo.vim'
Plugin 'dag/vim-fish'

Plugin 'Shougo/deoplete.nvim'
Plugin 'roxma/nvim-yarp'
Plugin 'roxma/vim-hug-neovim-rpc'

" ddc (archived)
" Plugin 'Shougo/ddc.vim'
" Plugin 'statiolake/ddc-ale'
" Plugin 'vim-denops/denops.vim'
" Plugin 'Shougo/ddc-around'
" Plugin 'Shougo/ddc-matcher_head'
" Plugin 'Shougo/ddc-sorter_rank'
call vundle#end()

filetype plugin indent on 
set encoding=utf-8
syntax on
set completeopt=menu,noinsert

set autoindent
set expandtab

set smartindent
set laststatus=0
set tabstop=2
set shiftwidth=2

set ruler
set colorcolumn=80

set number
set list

set ttyfast
set visualbell
set t_vb=

set ignorecase

set background=dark
colorscheme gruvbox
set cursorline
highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=233 guifg=NONE guibg=#121212
autocmd InsertEnter * highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=234 guifg=NONE guibg=#1c1c1c
autocmd InsertLeave * highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=233 guifg=NONE guibg=#121212

set termguicolors
let &t_8f = "\e[38;2;%lu;%lu;%lum"
let &t_8b = "\e[48;2;%lu;%lu;%lum"

set undofile
set undodir=~/.vim/.undodir

let g:rainbow_active = 1

" ------- deoplete
let g:deoplete#enable_at_startup = 1
" -------- end deoplete

" ------- lightline (archived)
let g:lightline = {
    \ "colorscheme": 'wombat',
    \ }

let g:lightline.component_expand = {
      \  'linter_checking': 'lightline#ale#checking',
      \  'linter_warnings': 'lightline#ale#warnings',
      \  'linter_errors': 'lightline#ale#errors',
      \  'linter_ok': 'lightline#ale#ok',
      \ }

let g:lightline.component_type = {
      \     'linter_checking': 'left',
      \     'linter_warnings': 'waomnifuncrning',
      \     'linter_errors': 'error',
      \     'linter_ok': 'left',
      \ }

let g:lightline.active = { 'right': [
            \ [ 'linter_checking', 'linter_errors', 'linter_warnings', 'linter_ok' ],
            \ ['lineinfo' ], [ 'percent' ],
            \ [ 'fileformat', 'fileencoding', 'filetype', 'charvaluehex' ]
            \ ] }

let g:lightline#ale#indicator_checking = "\uf110 "
let g:lightline#ale#indicator_warnings = "\uf071 "
let g:lightline#ale#indicator_errors = "\uf05e "
let g:lightline#ale#indicator_ok = "\uf00c "
" ------- lightline

" -------- ALE
let g:ale_linters = { 'javascript': ['eslint'] }
let g:ale_fixers = { 'javascript': ['eslint'] }

let g:ale_python_flake8_executable = 'python3'
let g:ale_python_flake8_options = '-m flake8 --select=E9'
let g:ale_python_pylint_executable = 'python3'

let g:ale_hover_cursor = 1
let g:ale_floating_preview = 1

" --------- END ALE

let NERDSpaceDelims = 1
let g:NERDCustomDelimiters = {
          \ 'c': { 'left': '//', 'right': '' },
    \ }

map ,l :so ~/.vimrc<CR>
map ,t :NERDTreeToggle<CR>
map ,f :ALEFix<CR>
map ,d :ALEGoToDefinition<CR>
map ,s :ALESymbolSearch 
map ,r :ALEFindReferences<CR>
map ,e :ALEDetail<CR>
map ,i :ALEImport<CR>
map ,n :ALERename<CR>
map ,w :w<CR>
map ,q :wqa<CR>
map ,c <plug>NERDCommenterToggle
" select recently paste content
nnoremap <expr> gb '`[' . strpart(getregtype(), 0, 1) . '`]'
" --------------- ARCHIVED
"command SW w !sudo tee "%" > /dev/null
" nnoremap <F5> :GundoToggle<CR>
" --------------- END OF ARCHIVED

and when I hover I have a balloon (be it hover with lsp info or to describe an error reported by the linter) not a floating window despite ale_floating_preview set to 1
DeepinScreenshot_Alacritty_20220331011732 I tested with a basic a.c file This is ALEInfo :

 Current Filetype: c
Available Linters: ['cc', 'ccls', 'clangd', 'clangtidy', 'cppcheck', 'cpplint', 'cquery', 'cspell', 'flawfinder']
   Linter Aliases:
'cc' -> ['gcc', 'clang']
  Enabled Linters: ['cc', 'ccls', 'clangd', 'clangtidy', 'cppcheck', 'cpplint', 'cquery', 'cspell', 'flawfinder']
  Ignored Linters: []
 Suggested Fixers: 
  'astyle' - Fix C/C++ with astyle.
  'clang-format' - Fix C/C++ and cuda files with clang-format.
  'clangtidy' - Fix C/C++ and ObjectiveC files with clang-tidy.
  '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.
  'uncrustify' - Fix C, C++, C#, ObjectiveC, ObjectiveC++, D, Java, Pawn, and VALA files with uncrustify.
 Linter Variables:

let g:ale_c_always_make = 1
let g:ale_c_build_dir = ''
let g:ale_c_build_dir_names = ['build', 'bin']
let g:ale_c_cc_executable = '<auto>'
let g:ale_c_cc_options = '-std=c11 -Wall'
let g:ale_c_ccls_executable = 'ccls'
let g:ale_c_ccls_init_options = {}
let g:ale_c_clangd_executable = 'clangd'
let g:ale_c_clangd_options = ''
let g:ale_c_clangtidy_checks = []
let g:ale_c_clangtidy_executable = 'clang-tidy'
let g:ale_c_clangtidy_extra_options = ''
let g:ale_c_clangtidy_options = ''
let g:ale_c_cppcheck_executable = 'cppcheck'
let g:ale_c_cppcheck_options = '--enable=style'
let g:ale_c_cpplint_executable = 'cpplint'
let g:ale_c_cpplint_options = ''
let g:ale_c_cquery_cache_directory = '/home/ilan/.cache/cquery'
-- INSERT ---- INSERT --

No matching autocommands: User ALEWantResults
No matching autocommands: User ALELintPre
33 fewer lines; before #1  2 seconds ago
33 fewer lines; before #1  2 seconds ago
use of undeclared id...ang-diagnostic-error]
use of undeclared identifier 'uurrent'
No matching autocommands: User ALEWantResults
No matching autocommands: User ALELintPre
use of undeclared identifier 'uint8_t'

This is vim version :

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Feb 24 2022 18:41:57) Included patches: 1-4464 Compiled by Arch Linux Huge version with GTK3 GUI. Features included (+) or not (-): +acl +job +signs +arabic +jumplist +smartindent +autocmd +keymap -sodium +autochdir +lambda +sound -autoservername +langmap +spell +balloon_eval +libcall +startuptime +balloon_eval_term +linebreak +statusline -- INSERT ---- INSERT --

hissssst commented 2 years ago

@ilan-schemoul ballon is a floating window

ilan-schemoul commented 2 years ago

Really I thought this ALEDetail was floating window DeepinScreenshot_select-area_20220331191227 and this was popup DeepinScreenshot_Alacritty_20220331011732 Sorry for the confusion then I thought the discrepancies of the UI came from that. Especially that a quick search on google with "vim balloon" matched the first image and "vim floating windows" matched the second. I'm wondering why the configuration use two different terms then ? And why the UI is different between hover and ALEDetail I like ALEDetail's UI a lot more

hissssst commented 2 years ago

@w0rp ping

hsanson commented 2 years ago

Balloons, popups, floating windows, preview window are all separate things and they all have different capabilities and uses. I agree that current state is confusing and could be improved a lot but unfortunatelly this won't be an easy task. If interested I recommend you read the help on balloons (Vim only), popups (Vim 8+ only), floating windows (NeoVim 0.5+ only), and preview window.

hissssst commented 2 years ago

Hi, @hsanson. I am actually just pointing out a bug. The problem is that I set a configuration value, but ale doesn't seem to recognize it.

These values in configuration

let g:ale_floating_preview = 1
let g:ale_floating_window_border = []
let g:ale_hover_to_floating_preview = 1
let g:ale_detail_to_floating_preview = 1

Are not recognized by ale. But checking them inside commandline in running vim, shows that they're set

hsanson commented 2 years ago

I see, I do not use floating windows to display errors reported by ALE but from the docs it seems ALE can show errors in the preview window or in balloons by setting g:ale_cursor_detail and g:ale_set_balloons. Since you set g:ale_detail_to_floating_window_preview then instead of the preview window it should use a floating window instead.

Check the help on these options to see if you get it to work. If not I may find some time next weekend to see if there is really a bug there.

hissssst commented 2 years ago

@hsanson , thanks these options move diagnostics to the ballon, but I still can see them in commandline. How do I disable it?

hsanson commented 2 years ago

From ALE documentation:

ALE will report problems with your code in the following ways, listed with
their relevant options.

* By updating loclist. (On by default)             - g:ale_set_loclist
* By updating quickfix. (Off by default)           - g:ale_set_quickfix
* By setting error highlights.                     - g:ale_set_highlights
* By creating signs in the sign column.            - g:ale_set_signs
* By echoing messages based on your cursor.        - g:ale_echo_cursor
* By inline text based on your cursor.             - g:ale_virtualtext_cursor
* By displaying the preview based on your cursor.  - g:ale_cursor_detail
* By showing balloons for your mouse cursor        - g:ale_set_balloons

Please consult the documentation for each option, which can reveal some other
ways of tweaking the behavior of each way of displaying problems. You can
disable or enable whichever options you prefer.

What you want is to disable g:ale_echo_cursor