问题描述
您好,程序员和书呆子!
在创建正则表达式Visual Studio时,如果字符串前面带有逐字标识符(例如@"Some string
),则IDE将突出显示该字符串。看起来像这样:
(注意突出显示字符串的方式)。我敢肯定,现在大多数人都已经看到了。
我的问题:我使用的是从NuGet获取的包,该包处理正则表达式,并且它们具有接受正则表达式字符串的函数,但是它们的函数没有突出显示语法。
如您所见,这只会使读取Regex字符串变得很痛苦。我的意思是,这并不是太重要,但是如果我们可以通过视觉上有用的突出显示来减少人的大脑试图破译该表情所花费的时间和精力,那将有所作为,特别是在像我这样的情况下这些表达式将相当多。
问题
所以我想知道的是,是否有一种方法可以使函数以这种方式突出显示字符串*,或者只是针对Regex c-tor的特定情况将其硬连接到IDE中?是否可以在功能上添加某种注释以实现最小的花费,还是需要使用某种扩展?
*无论如何,我已经将对AddStyle()
的调用包装到我自己的函数中,并且该字符串将作为参数传递,因此,如果需要进行任何修改以实现语法突出显示,则可以发挥我的作用。因此,AddStyle()
函数来自外部库的事实应该是不相关的。
如果工作量很大,那不值得我花时间,欢迎其他人开发扩展程序以解决此问题,但是如果有办法...
重要区别
请记住,我所说的是Visual Studio,不是 Visual Studio代码。
此外,如果有一种方法可以从Regex中提取原始表达式字符串,那么我可以那样做,因为这里的性能并不是一个大问题,因为这是一次启动的事情,但是我会建议不要那样做。我实际上不需要Regex对象。
解决方法
根据https://devblogs.microsoft.com/dotnet/visual-studio-2019-net-productivity/#regex-language-support,您可以使用特殊注释标记字符串以突出显示语法:
// language=regex
var str = @"[A-Z]\d+;
(评论可能不仅仅包含language=regex
部分)
链接的博客谈论预览,但是此功能也出现在最终产品中。