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

Abierto
#467 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
vim

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
Vim Script
Estrellas
4.2k
Forks
323
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de rust-lang/rust.vim

Todos los issues de rust-lang/rust.vim

Issues similares

Más issues de DevTools

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.