【问题标题】:Detect cursor is over comment or string in Scintilla NET检测光标位于 Scintilla NET 中的注释或字符串上方
【发布时间】:2016-08-02 11:11:42
【问题描述】:

Scintilla.NET 中是否有任何内置函数来检测光标是否位于注释或字符串上?当用户键入 cmets 或字符串时,我想避免自动完成工作。

我知道我可以向后扫描整个文本,搜索 //、/* */ 和成对的 " " 但我几乎可以肯定必须有一个内置函数来做到这一点。

谢谢!

【问题讨论】:

    标签: scintilla scintillanet


    【解决方案1】:

    如果您使用的是词法分析器,则可以在当前插入符号位置获取样式编号,并检查它是否与字符串或注释对应。用于检索样式编号的 Scintilla API 是:

    Scintilla.NET documentation 指出已经有一些方便的 API 用于检测 cmets:

    • ScintillaNET.Scintilla.PositionIsOnComment(System.Int32)
    • ScintillaNET.Scintilla.PositionIsOnComment(System.Int32,ScintillaNET.Lexer)

    但似乎没有任何等效的字符串 - 所以看起来你必须通过使用上述 Scintilla 消息和 ScintillaNET.Scintilla.SendMessageDirect() 方法之一来滚动你自己的。

    【讨论】:

    • 我正在使用词法分析器,所以第一个答案有效,因此我没有尝试第二个答案。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多