2
A
回答
3
有两种可能的方式,从突出引擎获取信息:
的突出引擎只存储“跨度栈”在每行的开始。您可以使用DocumentHighlighter.GetSpanStack
方法来检索它。
var documentHighlighter = textEditor.TextArea.GetService(typeof(IHighlighter)) as DocumentHighlighter;
bool isInComment = documentHighlighter.GetSpanStack(1)
.Any(s => s.SpanColor != null && s.SpanColor.Name == "Comment");
如果第1行(=第2行的开始)的末尾位于多行注释中,则返回true。
对于行内更详细的结果,您必须运行荧光笔。
int off = document.GetOffset(7, 22);
HighlightedLine result = documentHighlighter.HighlightLine(7);
bool isInComment = result.Sections.Any(s => s.Offset <= off
&& s.Offset+s.Length >= off
&& s.Color.Name == "Comment");
当然,按颜色标识跨度/部分只在这些颜色被命名时才能可靠地工作。并非所有内置突出显示都已更新为使用指定颜色,因此请先检查.xshd文件。
相关问题
- 1. AvalonEdit XSHD-规则集(用于TEX)
- 2. 跨浏览器CSS3规则
- 3. 以编程方式将语法高亮规则添加到AvalonEdit
- 4. 没有规则匹配时,AvalonEdit默认颜色?
- 5. mod-rewrite规则集
- 6. virtuoso rdfs规则集
- 7. 从“添加或删除规则集”中删除规则集
- 8. GridLayout支持V7不执行列跨度规则
- 9. 转换不规则字符串时间跨度在C#
- 10. 跨度当输入集中
- 11. .htaccess的规则,导致404跨网站
- 12. antlr4跨模式共享规则
- 13. OWASP跨站点脚本规则?
- 14. 跨线程操作异常的规则?
- 15. ReSharper和规则集文件
- 16. PMD规则集文件
- 17. SonarQube规则集丢失
- 18. 使用规则集文件
- 19. Drupal规则/分类集成?
- 20. ILOG动态规则集
- 21. scjp:类铸造规则集
- 22. 辛普森规则集成
- 23. 设置长度规则
- 24. 作业调度规则
- 25. CSS表格宽度规则
- 26. 验证CSS高度/宽度的规则?
- 27. FluentValidation呼叫规则集和通用规则
- 28. 如何将规则集文件转换为FXCop规则dll?
- 29. 我可以添加自定义规则到sonarlint规则集
- 30. PMD与Maven - 如何禁用规则集中的一个规则?
谢谢,它的工作正常。 – zee 2010-11-09 14:05:30
我觉得它有点慢。是否有一些代码使其更快? – zee 2010-11-17 12:52:07