Я использую Roslyn для создания скриптового элемента управления C # с IntelliSense.
Как правило, я очень доволен полученными результатами, однако рекомендуемые символы не включают такие ключевые слова, как for
иif
и так далее, а также не содержат псевдонимов типа, например int
, когда он включает Int32
.
Более конкретно, я использую Microsoft.CodeAnalysis.Recommendations
, то есть:
Recommender.GetRecommendedSymbolsAtPositionAsync(mySemanticModel, scriptPosition, myAdhocWorkspace);
Мой SemanticModel
объект получен из компиляции C #, которая всегда имеет ссылку на mscorlib.dll
, по крайней мере.
На всех позициях в моем сценарии рекомендуемые завершения всегда верны.Однако я бы сказал, что они неполные, если в них отсутствуют ключевые слова, такие как if
, else
и for
и т. Д.
Я вижу, что было бы легко включить псевдонимы общих типовв моем IntelliSense вручную.То есть, если Int32
является возможным завершением, тогда я мог бы вручную добавить int
.
Однако, это менее очевидно, когда оператор if
или оператор for
или даже is
/ as
было бы уместно в данной области.
Есть ли способ включить эти ключевые слова при получении рекомендованных символов таким образом?
Есть ли способ автоматического включения псевдонимов типов