我想正确折叠以下Z80程序集摘录的部分内容,但我无法完成:
.ORG $9D93
.DB t2ByteTok, tAsmCmp
Increase:
LD A, B
CP 255
JR Z, KeyLoop
INC B
JR Display
Decrease:
LD A, B
CP 0
JR Z, KeyLoop
DEC B
JR Display
.END
在此摘录中,应创建三个折叠区域:
有两个问题:
答案 0 :(得分:2)
请理解折叠设计用于配对构造。构造
If (a)
|
| If (b)
| |
| | Print
| |
| End If
|
End If
将按预期折叠,但在您的情况下评估为:
.ORG $9D93
| .DB t2ByteTok, tAsmCmp
|
| Increase:
| | LD A, B
| | CP 255
| | JR Z, KeyLoop
| | INC B
| | JR Display
| |
| ? (NO MATCH)
|
| Decrease:
| | LD A, B
| | CP 0
| | JR Z, KeyLoop
| | DEC B
| | JR Display
| |
| ? (NO MATCH)
|
.END
虽然这不是您想要达到的目的,但尝试以这种方式添加.END,您将看到所有3个折叠按预期工作:
.ORG $9D93
| .DB t2ByteTok, tAsmCmp
|
| Increase:
| | LD A, B
| | CP 255
| | JR Z, KeyLoop
| | INC B
| | JR Display
| .END
|
| Decrease:
| | LD A, B
| | CP 0
| | JR Z, KeyLoop
| | DEC B
| | JR Display
| .END
|
.END
据我了解Notepad ++中的UDL,您的问题中建议的折叠风格无法通过UDL实现。也许它可能适用于内置的N ++语言,它们不受简化的UDL逻辑的约束。为了您的信息,UDL会被有意识地简化,以便为大多数人保持UI和逻辑的可管理性。 (我不打算搜索我最近阅读它的地方,很抱歉没有链接到最后一句的来源。)
检查N ++的内部工作原理,您可以添加自己的内置语言(而不是UDL),这将符合您的要求。
编辑:我最近发现了这条评论:考虑另一个文本编辑器,SynWrite,它可以提供更灵活的词法分析器。请阅读Synw自述文件中的词法分析器教程。 - Alextp 2013年10月25日19:46