Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 锈蚀分析仪错误是什么;无法解析宏“$crate::format”u args“;我的意思是,我如何修复它?_Visual Studio Code_Rust_Rust Analyzer - Fatal编程技术网

Visual studio code 锈蚀分析仪错误是什么;无法解析宏“$crate::format”u args“;我的意思是,我如何修复它?

Visual studio code 锈蚀分析仪错误是什么;无法解析宏“$crate::format”u args“;我的意思是,我如何修复它?,visual-studio-code,rust,rust-analyzer,Visual Studio Code,Rust,Rust Analyzer,我正在Visual Studio代码上使用rust analyzer版本0.2.408 我正在编写一个命令行应用程序,其中包括在终端中居中文本。这是我编写的用于执行此操作的函数: 使用控制台:{Alignment,pad_str}; fn获取填充行(行:&str,宽度:u16,符号:Option)->String{ 让符号=符号。展开或(“”); 返回pad_str(行,宽度为usize,对齐::居中,无) .to_string() .替换(“”,&symbol.to_字符串()); } 这个

我正在Visual Studio代码上使用rust analyzer版本0.2.408

我正在编写一个命令行应用程序,其中包括在终端中居中文本。这是我编写的用于执行此操作的函数:

使用控制台:{Alignment,pad_str};
fn获取填充行(行:&str,宽度:u16,符号:Option)->String{
让符号=符号。展开或(“”);
返回pad_str(行,宽度为usize,对齐::居中,无)
.to_string()
.替换(“”,&symbol.to_字符串());
}
这个函数工作得非常好,没有错误。然后我写了一个测试:

#[cfg(测试)]
模试验{
使用板条箱::得到填充的行;
#[测试]
fn行\填充\破折号(){
let padded_row=get_padded_row(“你好”,15,一些('-'));
断言(
填充的_行,“----你好------”。到_字符串(),
“'get\u padded\u row'不正确,get`{}`,padded\u row”
);
}
}
代码仍然可以很好地工作。
cargo run
cargo test
都起作用,功能通过测试,
cargo check
不返回任何问题。但是rust analyzer给出了一个错误,突出显示了
tr}中的所有内容
中,在
返回后的
p
中使用
语句:“无法解析宏
$cratet::format_args
锈菌分析仪(宏错误)”。搜索此错误不会返回任何内容。VSCode将我链接到,其中只显示“此诊断针对宏扩展错误显示”。重新启动VSCode和重新安装rust analyzer没有任何作用。错误总是会回来,并突出显示相同的奇怪的特定区域。我发现,在保持安装rust analyzer的同时消除它的唯一方法是删除测试

从错误是如何与宏扩展有关,以及删除测试如何修复问题来看,我可以想象这是由
#[test]
宏引起的,但奇怪的是,当rust analyzer对这个错误感到惊慌失措时,rustc却发现我的代码没有任何问题。到目前为止,与官方的rust VSCode扩展相比,我对rust analyzer有了更好的体验,但我即将切换回解决此问题。

这是一个很好的解决方案。现在,您可以在
设置中禁用警告。json

“锈蚀分析仪.诊断.禁用”:[
“宏错误”
]
该bug是在夜间修复的,因此您可以从GitHub安装,或者您可以等待几天,等待修复程序在stable上运行

或者,您可以降级到rls版本
0.2.400
,因为该错误是由版本
0.2.408
中的提交引起的:

Extensions Icon -> rust-analyzer -> Manage (gear icon) -> Install Another Version

三个月后,似乎发生了什么?不确定


我将
未解析的宏调用添加到Diagnostics:Disabled settings for rust analyzer。

~5h lost;/关于这一点////////////////