在Notepad ++中应用折叠来阻止YAML的序列

时间:2016-06-29 20:44:12

标签: notepad++ yaml folding

我有一些YAML文件&我希望Notepad ++代码折叠映射(在YAML中它是一个块序列)。例如,在这个例子中:

TerrainGeometryMap:
- - [G, W]
  - [G, G]
  - [G, G]
- - [G, G]
  - [G, G]
  - [G, G]

我想折叠整个TerrainGeometryMap映射。如果YAML映射使用额外的缩进格式化,即

,Notepad ++就可以实现我的目的
TerrainGeometryMap:
  - - [D, G]
    - [D, G]
    - [K]
  - - [D, G]
    - [D, G]
    - [D, G]

有没有办法完全折叠第一张地图?

1 个答案:

答案 0 :(得分:2)

你找到了一个YAML lexer bug。

正如所讨论的那样,我原本认为你的第一个案例不应该导致与第二个案例相同的折叠,但后来我检查了YAML 1.1 specification中的例10.4 (由SnakeYAML实现)和 <{3}}中的示例4.19 ,发现您对折叠的期望是有效的。

Scintilla编辑器(构建Notepad ++)不能正确折叠YAML块序列

你可以

  • YAML 1.0 specification中报告此问题(我在列表中找不到它)
    • 可能更好的是在Notepad++ bugtracker中报告问题,因为实际上是维护词法分析器的人(不是Notepad ++)。希望修补程序很快会传播到Notepad ++中< / LI>
  

更新:我将错误注册为Scintilla bugtracker。您可以在那里查看其状态。

  • 通过您在Notepad ++源存档文件中找到的模块FoldYAMLDoc()中的编辑方法scintilla\lexers\LexYAML.cxx自行解决问题。如果你可以重建你的Notepad ++二进制文件,你应该让它工作
  • 找到有{YAML lexer
  • #1847