是否可以自定义 Visual Studio Code 中代码折叠的工作方式?
我使用一种通用模式来定义各种不同文档类型的代码区域。
因此,对于 XML,我将文本部分包裹起来<!-- #region -->
and <!-- #endregion -->
对于 c#,我使用#region
to #endregion
,
对于 TypeScript/Javascript,我使用/* #region */
and /* #endregion */
.
在完整的 Visual Studio(不是 VS Code)中,我有一个自定义扩展,它可以跨文档类型窥探模式,并基于此创建折叠,从而允许我创建整洁的自定义文档大纲。我想在 Visual Studio Code 中使用相同的模式。是否可以创建一个自定义 VS Code 扩展来检测这些注释模式,并以某种方式根据这些模式标记折叠?
FoldingRangeProvider https://code.visualstudio.com/docs/extensionAPI/vscode-api#FoldingRangeProvider如果您希望在扩展中提供自定义折叠逻辑,可以使用它。
请务必在中设置您的 VS Code 版本engines
in package.json
to 1.23
,介绍这个的版本。
以下是您如何使用它。
export function activate(context: ExtensionContext) {
languages.registerFoldingRangeProvider({ scheme: 'file', language: 'markdown' }, new MyFoldingRangeProvider());
}
class MyFoldingRangeProvider implements FoldingRangeProvider {
provideFoldingRanges(document: TextDocument, context: FoldingContext, token: CancellationToken): FoldingRange[] {
return detectRanges().map(({ lineStart, lineEnd }) => new FoldingRange(lineStart, lineEnd));
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)