如何让VSCode中Rust语法高亮器正确高亮格式化字符串?
问题描述
我用VSCode搭配rust-analyzer v0.4.1395(预发布版),希望格式化字符串里的sum、FILENAME这类占位符,能和字符串字面量的其他部分显示不同颜色。另外发现Markdown里的Rust代码块也有同样的高亮问题,比如这段代码:
println!("this is a formatted string with a {variable}, and an expression: {3+5}");
补充说明:
- 预期效果参考@Finomnis的回答示例
- 注:Rust格式化字符串本身不支持
{3+5}这种表达式写法
解决办法
1. 确认rust-analyzer的高亮配置
打开VSCode设置(快捷键Ctrl+,),搜索rust-analyzer.highlighting,确保以下选项已启用:
rust-analyzer.highlighting.strings:开启字符串内部元素高亮rust-analyzer.highlighting.formatStringParameters:专门针对格式化字符串占位符的高亮
2. 更换适配的主题
部分VSCode主题未对Rust格式化字符串占位符做单独的颜色定义,推荐尝试以下主题:
- One Dark Pro:对Rust语法元素区分度较高
- Rust Syntax:官方推荐的Rust专用主题
- Material Theme:支持自定义调整语法高亮颜色
3. 自定义高亮颜色
若自带主题不符合需求,可通过settings.json自定义颜色:
按Ctrl+Shift+P,搜索Preferences: Open Settings (JSON),添加以下配置(颜色值可自行修改):
"editor.tokenColorCustomizations": { "textMateRules": [ { "scope": "variable.other.format-specifier.rust", "settings": { "foreground": "#FF79C6" // 占位符自定义颜色 } }, { "scope": "string.quoted.double.rust", "settings": { "foreground": "#F1FA8C" // 字符串主体自定义颜色 } } ] }
Markdown代码块的高亮问题
VSCode中Markdown的Rust代码块依赖官方的Rust扩展(不能仅安装rust-analyzer),同时需确保markdown.syntaxHighlighting.enabled设置已开启。
内容的提问来源于stack exchange,提问作者VaderFuntime
相关产品推荐
相关产品推荐

