Vscode-rust: Entradas de finalización duplicadas

Creado en 18 feb. 2019  ·  5Comentarios  ·  Fuente: rust-lang/vscode-rust

Tengo entradas duplicadas en la lista de finalización. Las duplicaciones no están en todas partes, pero es decir, para env::args(). todas las funciones estarán presentes 3 veces.

Aquí hay un gif con demostración:
2019-02-18 22-56-35 2019-02-18 22_57_05

VSCode: 1.31.1
Versión de extensión: 0.5.3
No se instala ninguna otra extensión de terminación RLS o Rust.

bug rls

Comentario más útil

@Xanewok Supongo que este problema continúa.

$ racer complete 16 9 src/main.rs
PREFIX 289,289,
MATCH username,2,4,src/main.rs,StructField,String
MATCH email,3,4,src/main.rs,StructField,String
MATCH sign_in_count,4,4,src/main.rs,StructField,u64
MATCH active,5,4,src/main.rs,StructField,bool
END

Sin embargo, en VS Code, se ve así:

rust

Avíseme si necesita alguna otra información de depuración.

Todos 5 comentarios

Bien, entonces parece que el problema en el propio RLS. Lo que entendí de la descripción: usa corredor para proporcionar terminaciones. Intenté invocar al corredor manualmente. Aquí está el resultado:

λ racer complete 3 16 src/main.rs | rg collect
MATCH collect,1476,7,/Users/rpeshkov/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/src/libstd/../libcore/iter/iterator.rs,Function,fn collect<B: FromIterator<Self::Item>>(self) -> B where Self: Sized

Entonces, collect ocurre solo una vez en el resultado del corredor.

Además, lanzó el inspector LSP de Microsoft para verificar qué idioma envía el servidor a VSCode y encontró 3 apariciones de la función collect y otras funciones también. Archivo de registro:
rust.log .

No logré configurar el entorno depurable rls . Soy un novato en óxido. Espero tener éxito mañana :)

Ok, resolví el problema. El premio es para el corredor. Probé la finalización del corredor mientras tenía la versión 2.0. RLS se basa en la versión 2.1. Cuando verifiqué lo que sucede cuando invoco racer complete 3 16 src/main.rs en racer 2.1, me devuelve entradas duplicadas. Ocurre porque antes de la deduplicación de coincidencias, las coincidencias no se ordenan y la función dedup_by elimina solo los elementos consecutivos.

Se corrigió este comportamiento en Racer y se abrió PR https://github.com/racer-rust/racer/pull/1021

Corregido en https://github.com/rust-lang/rls/pull/1402 , debería estar disponible en la cadena de herramientas nocturna más nueva en 1-2 días.

Cerrando esto como fijo (recuerde que está disponible desde Rust 1.35 )

@Xanewok Supongo que este problema continúa.

$ racer complete 16 9 src/main.rs
PREFIX 289,289,
MATCH username,2,4,src/main.rs,StructField,String
MATCH email,3,4,src/main.rs,StructField,String
MATCH sign_in_count,4,4,src/main.rs,StructField,u64
MATCH active,5,4,src/main.rs,StructField,bool
END

Sin embargo, en VS Code, se ve así:

rust

Avíseme si necesita alguna otra información de depuración.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

mcclure picture mcclure  ·  4Comentarios

japert picture japert  ·  4Comentarios

sfackler picture sfackler  ·  6Comentarios

kjeremy picture kjeremy  ·  5Comentarios

fzzr- picture fzzr-  ·  4Comentarios