Я пытаюсь написать addin для обнаружения неиспользуемых операторов в моем решении C#. С MonoDevelop.Ide
я могу получить доступ все используя операторы текущего документа сНайти неиспользуемые операторы с помощью MonoDevelop
var document = IdeApp.Workbench.ActiveDocument.ParsedDocument
foreach (var u in (document.ParsedFile as CSharpUnresolvedFile).RootUsingScope.Usings)
Console.WriteLine(u);
Это выводит что-то вроде
System.Collections.Generic
System.Linq
Foundation
...
Непосредственная консоль говорит мне, u
является
{Foundation}
Identifier: "Foundation"
LookupMode: ICSharpCode.NRefactory.CSharp.NameLookupMode.TypeInUsingDeclaration
TypeArguments: {ICSharpCode.NRefactory.EmptyList<ICSharpCode.NRefactory.TypeSystem.ITypeReference>}
Non-public members:
Но как определить, используется ли, например, Foundation
где-нибудь в документе?
(Из-за серой подсветкой синтаксиса в моем IDE, я предполагаю, что это вообще возможно.)
Да, тогда я могу щелкнуть правой кнопкой мыши и «Удалить избыточность с помощью директив». Но я пытаюсь сделать это программно. В конце дня я хочу пройти все файлы и удалить неиспользуемые файлы. (Насколько я знаю, это встроено в Visual Studio, но не в Xamarin Studio, которое я использую.) – Falko
интересно, то, что вы в основном хотите сделать, это реализовать этот запрос функции, который я подал некоторое время назад: https: //bugzilla.xamarin.com/show_bug.cgi?id=15203. При этом я рекомендую вам реализовать его как функцию MonoDevelop, а не как новую надстройку. Также потому, что вы должны повторно использовать код, который уже существует для удаления «использования» операторов, а не изобретать колесо. – knocte