尝试编写一个visual studio扩展,让我传入一个字符串和值对并突出显示该值。
我有一个查找特定代码的扩展,例如它运行并可能返回所有if语句
If(someString == someOtherString){
return “This was something”;
}
If(someStringElse == someOtherString){
return “This was interesting”;
}
在此示例中,我的值可能是
中的空括号If(someString
我在MSDN网站上玩过教程,但它似乎只显示全部或全部。我可以让它突出显示所有打开的括号,我似乎无法将其限制为仅我想要的代码块(传入我想要搜索的代码块)
答案 0 :(得分:1)
如果您正在关注该原型,那么您可以在此处调整这些行:
//Find the new spans
FindData findData = new FindData(currentWord.GetText(), currentWord.Snapshot);
findData.FindOptions = FindOptions.WholeWord | FindOptions.MatchCase;
wordSpans.AddRange(TextSearchService.FindAll(findData));
TextSearchService.FindAll
返回编辑器中与传入的文本相匹配的跨度列表。在调用AddRange
之前,没有什么能阻止您简单地更改跨度或计算新跨度。根据您的需要自定义逻辑。显然,如果您想突出显示的内容并不依赖于插入符号的位置,那么您可以删除相当多的代码来确定currentWord
。