小编rbr*_*ren的帖子

如何在 Roslyn 推荐的符号中包含关键字和别名?

我正在使用 Roslyn 创建一个带有 IntelliSense 的 C# 脚本控件。

我通常对得到的结果非常满意,但是,推荐的符号不包含诸如forif等关键字,也不包含类型别名,例如int, 当它包含Int32.

更具体地说,我正在使用Microsoft.CodeAnalysis.Recommendations,即:

Recommender.GetRecommendedSymbolsAtPositionAsync(mySemanticModel, scriptPosition, myAdhocWorkspace);
Run Code Online (Sandbox Code Playgroud)

我的SemanticModel对象是从 C# 编译获得的,它mscorlib.dll至少总是有一个引用。

在我的脚本中的所有位置,推荐的完成总是正确的。但是,我认为他们是不完整的,如果缺少关键字,如ifelsefor等。

我可以看到,手动将常见类型别名包含在我的 IntelliSense 中对我来说很容易。也就是说,如果Int32可能完成,那么我可以手动添加int.

但是,在给定的范围内,if语句或for语句甚至is/何时as合适就不太明显了。

以这种方式获取推荐符号时,是否可以包含这些关键字?

还有一种方法可以自动包含类型别名吗?

c# keyword type-alias roslyn roslyn-code-analysis

5
推荐指数
1
解决办法
370
查看次数

标签 统计

c# ×1

keyword ×1

roslyn ×1

roslyn-code-analysis ×1

type-alias ×1