Resharper IQuotedValue
本文关键字:IQuotedValue Resharper | 更新日期: 2023-09-27 17:50:14
我在c#中有这个变量,它是我正在创建的resharper插件的一部分,用于对所有引号值(不仅仅是字符串)抛出警告。
var sourceFile = _process.SourceFile;
var file = sourceFile.GetPsiServices().Files.GetDominantPsiFile<CSharpLanguage>(sourceFile);
if (file != null)
{
var highlights = new List<HighlightingInfo>();
var stringHighlight = new RecursiveElementProcessor<IQuotedValue>(declaration =>
{
var docRange = declaration.GetDocumentRange();
highlights.Add(new HighlightingInfo(docRange, new MakeMethodVirtualSuggestion("Warning...")));
});
file.ProcessDescendants(stringHighlight);
commiter(new DaemonStageResult(highlights));
}
当使用IMethodDeclaration时,它可以工作,但不能弄清楚如何获取IQuotedValue值。在这种情况下使用RecursiveElementProcessor是错误的吗?任何和所有的帮助都非常感激,我一直在努力弄清楚这个问题,现在已经有很多很多小时了。
IQuotedValue
是一个XAML元素-它不会在c#语法树中使用。最好的方法是查找ILiteralExpression
或ICSharpLiteralExpression
的元素,然后查看Literal
属性,看看它是什么- true
, false
是数字,字符或字符串。