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

IsCheckingBuffer(bufnr('')) remains 1 when a tsx file has no errors on successive lints #2415

Closed
danifus opened this issue Apr 4, 2019 · 2 comments
Labels

Comments

@danifus
Copy link

danifus commented Apr 4, 2019

Information

VIM version

VIM - Vi IMproved 8.1 (2018 May 18, compiled Aug 22 2018 23:34:12)
macOS version

Operating System: macOS Mojave

What went wrong

Using tsserver, echo ale#engine#IsCheckingBuffer(bufnr('')) always returns 1 when the state goes from 'no errors' -> 'no errors'. The expected result is 0.

After going from 'errors' -> 'errors', 'errors' -> 'no errors' or 'no errors' -> 'errors', echo ale#engine#IsCheckingBuffer(bufnr('')) returns 0.

The result of IsCheckingBuffer remaining 1 is that the airline status line indicates that a linter is still running. I'm pretty sure that the linter completes quickly as the response for the other state changes returns very quickly in my testing.

Reproducing the bug

Minimal vimrc:

set nocompatible
filetype off
let &rtp = &rtp.','.<path_to_ale>
filetype plugin indent on
syntax enable
" Could omit ale_lint_on_text_changed but it makes it easier to check states:
let g:ale_lint_on_text_changed = 'never'
let g:ale_open_list = 1
let g:ale_linters_explicit = 1
let g:ale_linters = {'typescript': ['tsserver']}

autocmd BufNewFile,BufRead *.ts  set filetype=typescript
autocmd BufNewFile,BufRead *.tsx set filetype=typescript

The process:

  1. Open a tsx file with no linting errors.
  2. Create an error and save
  3. Run echo ale#engine#IsCheckingBuffer(bufnr('')). The result I see here is 0
  4. Remove the error and save
  5. Run echo ale#engine#IsCheckingBuffer(bufnr('')). The result I see here is 0
  6. Save the file again to initiate another lint
  7. Run echo ale#engine#IsCheckingBuffer(bufnr('')). The result I see here is 1 and doesn't change.

:ALEInfo

 Current Filetype: typescript
Available Linters: ['eslint', 'tslint', 'tsserver', 'typecheck']
  Enabled Linters: ['tsserver']
 Suggested Fixers:
  'eslint' - Apply eslint --fix to a file.
  'prettier' - Apply prettier to a file.
  '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.
  'tslint' - Fix typescript files with tslint --fix.
 Linter Variables:
let g:ale_typescript_tsserver_config_path = ''
let g:ale_typescript_tsserver_executable = 'tsserver'
let g:ale_typescript_tsserver_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 = {'typescript': ['tsserver']}
let g:ale_linters_explicit = 1
let g:ale_list_vertical = 0
let g:ale_list_window_size = 10
let g:ale_loclist_msg_format = '%code: %%s'
let g:ale_lsp_root = {}
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 = 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_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) '<path to>/node_modules/.bin/tsserver
(started) ['/usr/local/bin/bash', '-c', ''<path to>/node_modules/.bin/tsserver''']

Thanks for this project! It's great to use :)

@w0rp w0rp added the bug label Apr 4, 2019
@w0rp w0rp added this to To Do in Old Working List via automation Apr 4, 2019
@w0rp w0rp moved this from To Do to In Progress in Old Working List Apr 17, 2019
@w0rp
Copy link
Member

w0rp commented Apr 17, 2019

tsserver and LSP linters are now marked as inactive again after diagnostics have been received, and as busy when they are requested.

@w0rp w0rp closed this as completed in fcc2c3b Apr 17, 2019
Old Working List automation moved this from In Progress to Done Apr 17, 2019
@danifus
Copy link
Author

danifus commented Apr 18, 2019

Brilliant! Thanks again for all your work on this project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants