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