所以我在 Notepad++ 中创建了一个用户定义的语言来组织一个写作项目。我知道如何进行代码折叠,并且在过去的几个月里效果很好。问题是最近,代码折叠功能与打开和关闭标记的实际位置偏离了几行。例如:
01
02
03 { the sea of time
04 some
05 events
06 that
07 are
08 happening
09 }
10
11
{ 和 } 用于打开和关闭折叠 block 。但实际功能使 Notepad++ UI 中的打开和关闭按钮可能出现在第 01 行和第 10 行,或者第 01 行和第 11 行。所以当我去折叠 block 时,它折叠的不仅仅是我封闭的部分,甚至遮住了下一个 block 的开始,在某些情况下阻止我在不禁用语言文件的情况下再次打开 block 。如果我在关闭标记之前输入几个空行,它会重置为它应该的样子,但如果我实际折叠任何 block 或者如果我切换到 Notepad++ 中的另一个文档,它会再次中断。
我无法在其他地方找到有关此错误的任何文档。 我正在编写的文本文件有数百 KB,大约 2000 行,相关的语言文件有 1500 多个定义的关键字。这只是 Notepad++ 无法处理这么多格式的情况吗?
问题的另一个可能来源是几天前我简单地检查然后取消选中“用户定义语言”对话框的“文件夹”页面上的“折叠紧凑(折叠空行)”复选框,以查看它会做什么,因为我找不到关于它做什么的文档。那是关于问题开始的时间 - 但此后复选框一直未选中,错误仍然存在。
最佳答案
如果您定义了任何定界符或运算符,这可能会导致代码折叠偏移。
只有当分隔符的开始和结束出现在同一行时,错误似乎才存在。在我的 UDL 中,我将“.sig”定义为我的开放分隔符,将“nal”定义为我的结束符,以突出显示“.signal”。在我的代码中每次使用“.signal”时,我的代码折叠都会从结束处向下移动 1 行,这导致我的折叠成为障碍而不是帮助。
在一个稍微相关的问题中,如果你想突出显示“.signal”或类似的东西,这可以通过制作“.”来完成。你的运算符(operator) 1 和“信号”你的运算符(operator) 2。
关于Notepad++ Code Folding Opens and Closes 错位了好几行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32748287/