当前位置: 首页 > 知识库问答 >
问题:

在VS代码中折叠行时,是否可以覆盖缩进并选择该折叠中包含的行?

越胤
2023-03-14

是否可以自定义Visual Studio代码中代码折叠的工作方式?

我使用一种通用模式来跨各种不同的文档类型定义代码区域。

> 因此,对于XML,我用< code >包装文本部分

对于c#,我使用#region#endregion

对于TypeScript/Javascript,我使用< code>/* #region */和< code>/* #endregion */。

在full Visual Studio(而不是VS Code)中,我有一个自定义扩展,它可以跨文档类型窥探模式,并基于此创建折叠,从而允许我创建整洁的自定义文档轮廓。我想在Visual Studio代码中使用相同的模式。有没有可能创建一个自定义的VS代码扩展来检测这些注释模式,并基于这些模式来标记折叠?

共有3个答案

百里修真
2023-03-14

有三种方法可以在 VSCode 扩展中实现自定义折叠。

  1. 您可以将regex定义为[Language age-name].configuration.json文件中的折叠标记。(然而,我们对这种方法没有太多定制)
{
  "folding": {
    "markers": {
      "start": "starting regex",
      "end": "ending regex"
    }
  }
}
吕成业
2023-03-14

2022年8月6日,作为sem-minor v1.70.0版本的一部分,“折叠选择”功能被添加到“V.S .代码”中。这个新功能让用户可以完全控制折叠线,我指的是何时折叠

下面是附加到官方发行说明中的GIF图像

我收到了

A.该图像显示了新功能的工作原理,并且…
B.因为它显示了该功能的工作原理与IDE中的行折叠非常相似——即VS-22、Intell-J、CLion等…

五、 实际上,S.Code是我使用过的第一个编辑器,过去5年来我一直坚持使用它,但在测试驾驶V.S.Code的第一天,我注意到一件事,那就是它没有这个功能。

您可以通过快速输入使用该功能,只需键入“折叠选择”,直到弹出选项供您选择,但是,我为它自定义键绑定。


{
  "key": "ctrl+k ctrl+,",
  "command": "editor.createFoldingRangeFromSelection",
  "when": "editorTextFocus && foldingEnabled"
}

如何配置上面的代码片段超出了本文的范围,但是我建议保留上面配置的when语句(这是默认设置)。

您可以使用JSON片段中显示的密钥绑定,无需任何配置,即:

…但是,vscode必须将大多数命令附加到某些键盘快捷键。大多数人都记不住所有的命令和快捷方式,所以对于您经常使用的功能,因为要将其附加到更实用的选项中,我喜欢使用以下内容

这几乎就像快速按两次空格一样。

无论如何,这是一个比以前更好的选择,干杯!

单击此处阅读官方发行说明

徐麒
2023-03-14

如果您希望在扩展中贡献自定义折叠逻辑,则可以使用折叠范围提供程序

请确保在包中的engines中设置VS Code版本。json1.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));
    }
}
 类似资料:
  • Prism.js 可以做到代码的高亮,和行号的展示: 请问是否可以做到代码的折叠呢?

  • 代码折叠,即,Notepad++对于不同语言,在语法高亮基础上,还能检测出对应的C,Python等语言的单个的函数,xml等语言的标签, 然后对这些独立的代码部分,最开始端,有个加减号的可点击的小图标,对应的可以展开或折叠其对应的代码。 截图说明: 图 3.1. XML文件中的Notepad++的代码折腾功能 估计很多人可能和我最开始的想法一样,觉得此代码折叠功能,好像没啥实际用途。 直到有一天,

  • 是否可以在Visual Studio代码中自定义代码折叠的工作方式? 我使用一种通用模式来定义各种不同文档类型之间的代码区域。 > 所以,对于XML,我用和包装文本部分 对于typescript/JavaScript,我使用和。 在完整的Visual Studio(不是VS代码)中,我有一个自定义扩展,它可以窥探文档类型之间的模式,并基于该模式创建折叠,从而允许我创建整洁的自定义文档大纲。我希望在

  • Collapsibles 是可折叠元素,扩大时,点击。他们允许您隐藏不立即与用户相关的内容。 气孔 创建一个气孔式可折叠组件,只要增加类 popout。 <ul class="collapsible popout" data-collapsible="accordion"> 可折叠组件的 HTML 结构 <ul class="collapsible" data-collapsible="accor

  • 如果你仅仅希望看到你所处理的代码文件的结构概览,折叠会是个非常有用的工具。折叠可以隐藏像函数和循环这样的代码块,来简化你屏幕上显示的东西。 当你把鼠标移到数字栏上,你就可以点击显示的箭头来折叠代码段。你也可以使用快捷键alt-cmd-[和alt-cmd-]来折叠和展开代码段。 使用alt-cmd-shift-{来折叠所有代码段,使用alt-cmd-shift-}来展开所有代码段。你也可以使用cmd

  • zf数字 创建折叠,数字参数为折叠行数 zo 打开折叠 zc 关闭折叠 zd 删除折叠 :set foldcolumn=4 显示折叠树 :mkview 保存折叠 :loadview 读取折叠 zr 打开同一层级所有折叠 zm 关闭同一层级所有折叠 zO 打开某一行的所有层级折叠 zC 关闭某一行的所有层级折叠 zR 打开所有折叠 zM 关闭所有折叠 :set foldclose=all 光标离开折