首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AvalonEdit -规则集跨度

AvalonEdit -规则集跨度
EN

Stack Overflow用户
提问于 2010-10-24 02:06:51
回答 1查看 637关注 0票数 2

如何检查某个位置的单词是否在xshd-ruleset的西班牙语中?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-06 07:01:15

从突出显示引擎获取信息有两种可能的方法:

高亮引擎只在每一行的开头存储"span stack“。您可以使用DocumentHighlighter.GetSpanStack方法来检索它。

代码语言:javascript
复制
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。

要在行内获得更详细的结果,您必须运行荧光笔。

代码语言:javascript
复制
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文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4005364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档