3

所以我在 Notepad++ 中制作了一种用户定义的语言来组织一个写作项目。我知道如何进行代码折叠,并且在过去的几个月里它运行良好。问题是最近,代码折叠功能与打开和关闭标记的实际位置相差几行。例如:

01
02
03 { the sea of time
04 some
05 events
06 that 
07 are 
08 happening 
09 }
10
11

{ 和 } 用于打开和关闭折叠块。但是实际功能使得 Notepad++ UI 中的打开和关闭按钮可能出现在第 01 行和第 10 行,或者第 1 行和第 11 行。所以当我去折叠块时,它折叠的不仅仅是我封闭的部分,甚至会遮盖下一个块的开始,在某些情况下阻止我在不禁用语言文件的情况下再次打开块。如果我在关闭标记之前输入几个空行,它会重置为应有的状态,但如果我实际折叠任何块或者如果我在 Notepad++ 中切换到另一个文档,则会再次中断。

我无法在其他地方找到有关此错误的任何文档。我正在编写的文本文件有几百千字节,大约 2000 行长,相关的语言文件有超过 1500 个已定义的关键字。这只是 Notepad++ 无法处理这么多格式的情况吗?

问题的另一个可能来源是几天前我简要检查然后取消选中用户定义语言对话框的文件夹页面上的“折叠紧凑(折叠空行)”复选框,看看它会做什么,因为我可以找不到有关其功能的文档。那是关于问题开始的时间 - 但从那时起该复选框一直未被选中,并且错误仍然存​​在。

4

1 回答 1

2

如果您定义了任何分隔符或运算符,这可能会导致代码折叠偏移。

仅当分隔符的打开和关闭都出现在同一行时,该错误似乎才存在。在我的 UDL 中,我将“.sig”定义为打开分隔符,将“nal”定义为关闭分隔符,以突出显示“.signal”。对于我的代码中每次使用“.signal”,我的代码折叠从关闭位置向下移动了 1 行,这导致我的折叠成为障碍而不是帮助。

在一个稍微相关的问题上,如果你想突出显示“.signal”或类似的东西,这可以通过制作“.”来完成。您的操作员 1 和“信号”您的操作员 2。

于 2016-11-18T16:02:30.707 回答