2010-02-25 18 views
44

Me pregunto si tal vez ReSharper es capaz de correr a través de todas las clases y eliminar usings no utilizados? Miré pero no veo una opción como esta en R # 4.5. ¿Alguien ha visto esto en Resharper fuera de solo poder eliminar los usos en una sola clase?usings no utilizados a través de todo el montaje

Respuesta

38

creo que la limpieza a través de un proyecto es una nueva característica de ReSharper 5.

lo dicho, la función es en ReSharper 4.5. Si hace clic con el botón derecho en la solución, hay un artículo Cleanup Code ..., que le permite aplicar un perfil de limpieza a la solución. Puede crear un nuevo perfil de limpieza desde el nodo Code Cleanup dentro de las opciones de ReSharper, si desea que un perfil simplemente ajuste las directivas using.

4

También hay another way I found here, usando Macros.

Paso 1: Cree una nueva macro en Visual Studio through the Tools | Macros menú.

Paso 2: Pegue el código siguiente en el módulo de y guardarlo

Public Module Module1 
    Sub OrganizeSolution() 
     Dim sol As Solution = DTE.Solution 
     For i As Integer = 1 To sol.Projects.Count 
      OrganizeProject(sol.Projects.Item(i)) 
     Next 
    End Sub 

    Private Sub OrganizeProject(ByVal proj As Project) 
     For i As Integer = 1 To proj.ProjectItems.Count 
      OrganizeProjectItem(proj.ProjectItems.Item(i)) 
     Next 
    End Sub 

    Private Sub OrganizeProjectItem(ByVal projectItem As ProjectItem) 
     Dim fileIsOpen As Boolean = False 
     If projectItem.Kind = Constants.vsProjectItemKindPhysicalFile Then 
      'If this is a c# file 
      If projectItem.Name.LastIndexOf(".cs") = projectItem.Name.Length - 3 Then 
       'Set flag to true if file is already open 
       fileIsOpen = projectItem.IsOpen 
       Dim window As Window = projectItem.Open(Constants.vsViewKindCode) 
       window.Activate() 
       projectItem.Document.DTE.ExecuteCommand("Edit.RemoveAndSort") 
       'Only close the file if it was not already open 
       If Not fileIsOpen Then 
        window.Close(vsSaveChanges.vsSaveChangesYes) 
       End If 
      End If 
     End If 
     'Be sure to apply RemoveAndSort on all of the ProjectItems. 
     If Not projectItem.ProjectItems Is Nothing Then 
      For i As Integer = 1 To projectItem.ProjectItems.Count 
       OrganizeProjectItem(projectItem.ProjectItems.Item(i)) 
      Next 
     End If 
     'Apply RemoveAndSort on a SubProject if it exists. 
     If Not projectItem.SubProject Is Nothing Then 
      OrganizeProject(projectItem.SubProject) 
     End If 
    End Sub 
End Module 

Paso 3: Ejecutar la macro en cualquier solución que desea y ahí lo tienes! Enjoy :)

65

Desde ReSharper 9, sólo puede seleccionar "en solución" alcance cuando se limpia un bloque usando.

enter image description here

+0

Definitivamente la opción más fácil. – Zapnologica

Cuestiones relacionadas