Linting blocks vim for multiple seconds and keeps a lock on the working dir

Aberta
#467 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
vim

Direção de pesquisa

Start by tracing how the Syntastic cargo checker invokes Cargo from rust.vim; the report identifies the checker as cargo and says linting blocks Vim while holding the build directory lock. Check the lint invocation and any related tests for synchronous process handling. Done means linting no longer freezes Vim or blocks other Cargo commands while it runs.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Hi, when i run a syntastic lint while this plugin is installed, vim gets blocked for multiple seconds.
Apparently i am unable to run any other cargo commands while the lint is going on aswell since this plugin seems to lock the directory.

Output from other cargo commands while linting

    Blocking waiting for file lock on build directory
  • rust.vim version: Vim Plug and rust.vim@4aa69b84c8a58fcec6b6dad6fe244b916b1cf830

Steps to reproduce:

  1. Use Vim Plug, Syntastic and rust.vim together
  2. Open any rust project
  3. Run a syntastic lint

Expected vs. actual behavior:

rust.vim shouldnt lock my working directory and shouldnt freeze vim.
it should run asynchronously in the background

 RustInfo
rust.vim Global Variables:

let g:ftplugin_rust_source_path = v:null
let g:loaded_syntastic_rust_cargo_checker = 1
let g:loaded_syntastic_rust_filetype = v:null
let g:loaded_syntastic_rust_rustc_checker = 1
let g:rust_bang_comment_leader = v:null
let g:rust_cargo_avoid_whole_workspace = v:null
let g:rust_clip_command = v:null
let g:rust_conceal = v:null
let g:rust_conceal_mod_path = v:null
let g:rust_conceal_pub = v:null
let g:rust_conceal_mod_path = v:null
let g:rust_conceal_pub = v:null
let g:rust_fold = v:null
let g:rust_last_args = v:null
let b:rust_last_args = []
let g:rust_last_rustc_args = v:null
let b:rust_last_rustc_args = []
let g:rust_original_delimitMate_excluded_regions = v:null
let g:rust_playpen_url = v:null
let g:rust_prev_delimitMate_quotes = v:null
let g:rust_recent_nearest_cargo_tol = v:null
let g:rust_recent_root_cargo_toml = v:null
let b:rust_recent_root_cargo_toml = 'Cargo.toml'
let g:rust_recommended_style = v:null
let g:rust_set_conceallevel = v:null
let g:rust_set_conceallevel=1 = v:null
let g:rust_set_foldmethod = v:null
let g:rust_set_foldmethod=1 = v:null
let g:rust_shortener_url = v:null
let g:rustc_makeprg_no_percent = v:null
let g:rustc_path = v:null
let g:rustfmt_autosave = 1
let g:rustfmt_autosave_if_config_present = v:null
let g:rustfmt_command = 'rustfmt'
let g:rustfmt_emit_files = 1
let g:rustfmt_fail_silently = 0
let g:rustfmt_options = ''
let g:syntastic_extra_filetypes = ['rust']
let g:syntastic_rust_cargo_fname = ''
rustfmt 1.4.37-nightly (003d8d3 2021-10-04)
rustc 1.57.0-nightly (003d8d3f5 2021-10-04)
cargo 1.57.0-nightly (d56b42c54 2021-09-27)

NVIM v0.6.1
Build type: Release
LuaJIT 2.1.0-beta3
Übersetzt von nixbld

Features: +acl +iconv +tui
See ":help feature-compile"
          System-vimrc-Datei: "$VIM/sysinit.vim"
     Voreinstellung für $VIM: "/nix/store/fg64f7rll0i3gk8ay4q2mca1vjk8klvc-neovim-unwrapped-0.6.1/share/nvim"

Run :checkhealth for more info
----
Info from Syntastic:
Syntastic version: 3.10.0-32 (Vim 800, Neovim, Linux)
Info for filetype: rust
Global mode: active
Filetype rust is active
The current file will be checked automatically
Available checkers: cargo rustc
Currently enabled checker: cargo
Linguagem predominante
Vim Script
Estrelas
4.2k
Forks
323
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rust-lang/rust.vim

Todas as issues de rust-lang/rust.vim

Issues semelhantes

Mais issues de DevTools

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.