繁体   English   中英

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

[英]Is there any way to fold/collapse Rust documentation comments in Visual Studio Code?

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

如果VSCode本身不支持此功能,那么是否有任何扩展可以实现相同的功能?

我也对此感到担心,所以我环顾四周。 令人惊讶的是,自2018年3月以来,借助新的折叠提供程序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"
        }
    ]
},

我不确定这些价值。

最好的方法是要求进行正式防锈扩展的团队将其集成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM