gpt4 book ai didi

rust - 有没有办法在 Visual Studio Code 中折叠/折叠 Rust 文档注释?

转载 作者:行者123 更新时间:2023-11-29 07:55:33 35 4
gpt4 key购买 nike

在 VSCode 中,有什么方法可以折叠/折叠 Rust 文档注释(即,以 //!/// 开头的换行注释)? Swift 有类似的评论,因此任何与 Swift 相关的答案也可能与 Rust 相关。

如果 VSCode 本身不支持这一点,是否有任何扩展可以实现相同的目的?

最佳答案

我也很担心这个,所以我环顾四周。令人惊喜的是,自 2018 年 3 月以来,由于新的 folding provider API 可以实现这一点。 .

我做了一点 POC(代码很糟糕而且不安全,不打算按原样使用):

class CommentProvider implements vscode.FoldingRangeProvider {
// This method must return a list of the foldable ranges
provideFoldingRanges(document: vscode.TextDocument, context: vscode.FoldingContext, token: vscode.CancellationToken): vscode.ProviderResult<vscode.FoldingRange[]> {
let ret: vscode.FoldingRange[] = [];
for (let i = 0; i < document.lineCount; ++i) {
let line = document.lineAt(i).text.trim();
if (line.startsWith("//!")) {
let from = i;
do {
++i;
} while (document.lineAt(i).text.trim().startsWith("//!"));
ret.push(new vscode.FoldingRange(from, i - 1));
}
}
return ret;
}
}

export function activate(context: vscode.ExtensionContext) {
let sel: vscode.DocumentSelector = { scheme: 'file', language: 'rust' };
let pro = new CommentProvider();
vscode.languages.registerFoldingRangeProvider(sel, pro);
}

并且必须在package.json中正确注册:

"activationEvents": [
"onLanguage:rust"
],
"contributes": {
"languages": [
{
"id": "rust",
"aliases": [
"rs"
],
"extensions": [
"rs"
],
"configuration": "./language-configuration.json"
}
]
},

不过,我不确定这些值。

最好的办法是要求进行官方 Rust 扩展的团队将其集成。

关于rust - 有没有办法在 Visual Studio Code 中折叠/折叠 Rust 文档注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46310047/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com