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

Ouverte
#467 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
vim

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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
Langage dominant
Vim Script
Étoiles
4.2k
Forks
323
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de rust-lang/rust.vim

Toutes les issues de rust-lang/rust.vim

Issues similaires

Plus d'issues DevTools

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.