Notepad++ Code Folding Opens and Closes 错位了好几行

标签 notepad++ code-formatting code-folding

所以我在 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/

相关文章:

java - 寻找 Java 代码美化器(或者可能不是美化,而是使代码更优雅的东西)

python - 用于在 Quarto (`.qmd` )/R Markdown (`Rmd` ) 文件中检查和格式化 Python 代码的工具

visual-studio - 在 Visual Studio 2019 中折叠所有内部大括号

使用fold-expr 时 vim 变慢

notepad++ - 如何在 Notepad++ 中用双引号替换多个关键字 ("")

notepad++ - Notepad++ 中的多重突出显示

html - 格式化 HTML 文档

emacs - Emacs中的代码折叠

php - 配置 Notepad++ 以在本地主机上运行 php?

Notepad++ 用不同的颜色标记所有