J'essaie d'écrire un addin pour détecter les instructions using inutilisées dans ma solution C#. Avec MonoDevelop.Ide
Je peux accéder tous en utilisant des instructions du document en cours avecRecherche d'instructions inutilisées avec MonoDevelop
var document = IdeApp.Workbench.ActiveDocument.ParsedDocument
foreach (var u in (document.ParsedFile as CSharpUnresolvedFile).RootUsingScope.Usings)
Console.WriteLine(u);
Ceci produit quelque chose comme
System.Collections.Generic
System.Linq
Foundation
...
La console immédiate me dit, u
est
{Foundation}
Identifier: "Foundation"
LookupMode: ICSharpCode.NRefactory.CSharp.NameLookupMode.TypeInUsingDeclaration
TypeArguments: {ICSharpCode.NRefactory.EmptyList<ICSharpCode.NRefactory.TypeSystem.ITypeReference>}
Non-public members:
Mais comment dire si, par exemple, Foundation
est utilisé quelque part dans le document?
(En raison de la syntaxe grise mettant en lumière dans mon IDE, je suppose qu'il est possible du tout.)
Oui, alors je peux cliquer avec le bouton droit et "Supprimer les directives d'utilisation redondantes". Mais j'essaie de le faire par programme. À la fin de la journée, je veux parcourir tous les fichiers et supprimer ces utilisations inutilisées. (Autant que je sache, ceci est construit dans Visual Studio, mais pas dans Xamarin Studio, que j'utilise.) – Falko
intéressant, alors ce que vous voulez essentiellement faire est d'implémenter cette demande de fonctionnalité que j'ai déposée il y a quelque temps: https: //bugzilla.xamarin.com/show_bug.cgi?id=15203. Avec cela, je vous encourage à l'implémenter en tant que fonctionnalité MonoDevelop, pas en tant que nouveau complément. Aussi parce que vous devriez réutiliser le code qui existe déjà pour supprimer les instructions "using", ne pas réinventer la roue. – knocte