Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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

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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
Rust 在VisualStudio代码中是否有折叠/折叠文档注释的方法?_Rust_Visual Studio Code_Vscode Extensions - Fatal编程技术网

Rust 在VisualStudio代码中是否有折叠/折叠文档注释的方法?

Rust 在VisualStudio代码中是否有折叠/折叠文档注释的方法?,rust,visual-studio-code,vscode-extensions,Rust,Visual Studio Code,Vscode Extensions,在VSCode中,是否有任何方法可以折叠/折叠Rust文档注释(例如,以:/!和//code>开头的换行注释)?斯威夫特也有类似的评论,因此任何与斯威夫特有关的答案也可能与Rust有关 如果VSCode本身不支持这一点,那么是否有任何扩展可以实现同样的功能?我也很关心这一点,所以我四处看看。令人惊讶的是,自2018年3月以来,由于一项新的技术,这项技术得以实施 我做了一点POC(代码很可怕,不安全,不打算按原样使用): 不过,我不确定这些价值观 最好是要求进行官方rust扩展的团队将其集成。好主

在VSCode中,是否有任何方法可以折叠/折叠Rust文档注释(例如,以:
/!
//code>开头的换行注释)?斯威夫特也有类似的评论,因此任何与斯威夫特有关的答案也可能与Rust有关


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

我也很关心这一点,所以我四处看看。令人惊讶的是,自2018年3月以来,由于一项新的技术,这项技术得以实施

我做了一点POC(代码很可怕,不安全,不打算按原样使用):

不过,我不确定这些价值观


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

好主意;看来已经有问题了,,
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);
}
"activationEvents": [
    "onLanguage:rust"
],
"contributes": {
    "languages": [
        {
            "id": "rust",
            "aliases": [
                "rs"
            ],
            "extensions": [
                "rs"
            ],
            "configuration": "./language-configuration.json"
        }
    ]
},