Visual Studio Extension基于传入的代码块突出显示

时间:2013-06-10 15:15:32

标签: visual-studio-2012 visual-studio-extensions

尝试编写一个visual studio扩展,让我传入一个字符串和值对并突出显示该值。

我有一个查找特定代码的扩展,例如它运行并可能返回所有if语句

If(someString == someOtherString){
  return “This was something”;
}

If(someStringElse == someOtherString){
  return “This was interesting”;
}

在此示例中,我的值可能是

中的空括号
If(someString

我在MSDN网站上玩过教程,但它似乎只显示全部或全部。我可以让它突出显示所有打开的括号,我似乎无法将其限制为仅我想要的代码块(传入我想要搜索的代码块)

1 个答案:

答案 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

相关问题