【发布时间】:2016-08-02 11:11:42
【问题描述】:
Scintilla.NET 中是否有任何内置函数来检测光标是否位于注释或字符串上?当用户键入 cmets 或字符串时,我想避免自动完成工作。
我知道我可以向后扫描整个文本,搜索 //、/* */ 和成对的 " " 但我几乎可以肯定必须有一个内置函数来做到这一点。
谢谢!
【问题讨论】:
Scintilla.NET 中是否有任何内置函数来检测光标是否位于注释或字符串上?当用户键入 cmets 或字符串时,我想避免自动完成工作。
我知道我可以向后扫描整个文本,搜索 //、/* */ 和成对的 " " 但我几乎可以肯定必须有一个内置函数来做到这一点。
谢谢!
【问题讨论】:
如果您使用的是词法分析器,则可以在当前插入符号位置获取样式编号,并检查它是否与字符串或注释对应。用于检索样式编号的 Scintilla API 是:
Scintilla.NET documentation 指出已经有一些方便的 API 用于检测 cmets:
ScintillaNET.Scintilla.PositionIsOnComment(System.Int32)ScintillaNET.Scintilla.PositionIsOnComment(System.Int32,ScintillaNET.Lexer)但似乎没有任何等效的字符串 - 所以看起来你必须通过使用上述 Scintilla 消息和 ScintillaNET.Scintilla.SendMessageDirect() 方法之一来滚动你自己的。
【讨论】: