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. virtuoso rdfs规则集
- 6. mod-rewrite规则集
- 7. 从“添加或删除规则集”中删除规则集
- 8. 转换不规则字符串时间跨度在C#
- 9. 跨度当输入集中
- 10. OWASP跨站点脚本规则?
- 11. 跨线程操作异常的规则?
- 12. 辛普森规则集成
- 13. PMD规则集文件
- 14. ReSharper和规则集文件
- 15. Drupal规则/分类集成?
- 16. 作业调度规则
- 17. 验证CSS高度/宽度的规则?
- 18. 替代规则引擎的集中和维护规则
- 19. PMD与Maven - 如何禁用规则集中的一个规则?
- 20. 我可以添加自定义规则到sonarlint规则集
- 21. 如何在规则集中创建PMD自定义规则?
- 22. PMD多个规则集传递构建但单个规则集失败构建
- 23. 在规则集中为不透明度使用数学
- 24. AvalonEdit:每DocumentLine
- 25. AvalonEdit - 可见文本
- 26. AvalonEdit的AcceptsReturn =“False”
- 27. 着色上Avalonedit
- 28. 正则表达式字符跨度
- 29. 正则表达式查找跨度IDS
- 30. 为什么越低,则跨度在IE
谢谢,它的工作正常。 – zee 2010-11-09 14:05:30
我觉得它有点慢。是否有一些代码使其更快? – zee 2010-11-17 12:52:07