LazowskiAnton · Extensions

TidySmith

Código C# en el orden que quiere su equipo: miembros ordenados y agrupados con vista previa y un solo Deshacer, regiones según sus reglas, comentarios ajustados a su longitud de línea y puntos grises en el editor donde hay algo que ordenar.

Gratis · Visual Studio 2022 y 2026 · 14 idiomas de interfaz · sin telemetría

Por qué TidySmith

Una clase antes y después de Order Members: primero las constantes y los campos, luego el constructor, las propiedades y los métodos

Seguro por diseño

Basado en el árbol de sintaxis de Roslyn: los miembros se mueven con sus comentarios, su documentación y sus atributos; nunca se cruzan los bloques #if y #region; las clases que no se pueden ordenar de forma segura se dejan como están. Una vista previa muestra antes el diff, y Aplicar se revierte con un solo Deshacer.

El orden de su equipo

El orden de los grupos, el acceso, los miembros estáticos, los nombres: se definen en la página de opciones o en .editorconfig, para que todos obtengan el mismo resultado. Incluye valores preestablecidos para StyleCop y CodeMaid.

Se descubre sin manual

Puntos grises bajo una clase desordenada o un comentario demasiado largo; Ctrl+. ofrece la corrección junto a las acciones de Visual Studio. Cuando conozca los comandos, desactive las sugerencias.

Gratis y sin letra pequeña

Sin suscripción, sin versión «pro», sin recopilación de datos, sin mensajes en la ventana Salida ni al iniciar. Lo único que le pediremos —cuando ya la haya usado durante un tiempo— es una valoración en el Marketplace. Funciona en Visual Studio 2022 y 2026, x64 y ARM64.

Características

Todos los comandos están en Editar › TidySmith y en el menú contextual del editor de código (clic derecho › TidySmith); Order Members también en el menú contextual de archivos, carpetas y proyectos del Explorador de soluciones.

Ordenar miembros

Order Members… ordena los miembros de una clase por tipo (constantes, campos, constructores, propiedades, métodos…), luego por acceso (públicos primero), los estáticos antes que los de instancia y, si lo desea, por nombre, en el orden definido en la página de opciones o en .editorconfig.

Valores preestablecidos para empezar: TidySmith (sobrecargas e implementaciones de interfaz juntas), StyleCop (SA1201, SA1202, SA1204: estrictamente por acceso) y CodeMaid (el predeterminado de CodeMaid, para los equipos que vienen de él).

Sugerencias en el editor

Donde TidySmith puede ayudar, el nombre recibe tres puntos grises, igual que Visual Studio marca sus propias sugerencias. Al pasar el puntero se indica qué ocurre; Ctrl+. ofrece la corrección, con una vista previa del cambio.

Puntos grises bajo un nombre de clase y un comentario largo; la bombilla con Ordenar los miembros y su vista previa
Cursor enCtrl+. ofrece
El nombre de una claseOrdenar los miembros de la clase o del archivo, agregar regiones según sus reglas, quitar las regiones de la clase, abrir en la ventana de estructura
Un comentario más largo que la longitud de líneaAjustar el comentario
Una línea #regionQuitar esta región (el código se queda)
Varias líneas seleccionadasOrdenar líneas (solo una lista plana), unir líneas

Los puntos aparecen en una clase desordenada, un comentario más largo que la longitud de línea y regiones que no siguen sus reglas; en nada más. Los puntos y las acciones de la bombilla tienen interruptores separados; «Solo en los archivos que he modificado» deja tranquilo el código antiguo.

Regiones según sus reglas

Add Regions to This File… coloca líneas #region donde indican sus reglas, tras una vista previa. Las regiones son una decisión del equipo, por eso el valor predeterminado es sin regiones: el comando abre la configuración hasta que elija.

Reglas de regiones y una clase con las regiones Fields, Methods e IDisposable

La regla SA1124 de StyleCop prohíbe las regiones; por eso el valor predeterminado es sin regiones, y por eso ordenar al guardar las quita con ese ajuste.

Comentarios que caben

Format Comment ajusta el comentario // o /// donde está el cursor (o todos los comentarios del archivo) a su longitud de línea: max_line_length de .editorconfig, o 120. Las líneas largas se parten, las cortas se unen y un <summary> largo obtiene sus propias líneas. Los ejemplos de código (<code>), las listas, las líneas separadoras y el código comentado se quedan como están.

Un comentario de documentación antes y después de Format Comment

Ordenar al guardar

Al guardar un archivo C#, TidySmith puede ordenar sus miembros, colocar las regiones según las reglas, ajustar los comentarios y quitar los espacios finales y las líneas en blanco sobrantes; cada paso tiene su propio interruptor. Solo el archivo que se guarda, nunca los archivos generados; la barra de estado indica qué cambió y Ctrl+Z lo revierte. Tidy This File ejecuta los mismos pasos a petición.

Desactivado de forma predeterminada. Actívelo cuando Order Members dé el resultado que quiere su equipo; si no, el primer guardado de un archivo antiguo lo reordenará por completo.

Ventana de estructura

Ver › Otras ventanas › TidySmith Structure: los tipos y miembros del archivo C# activo. Sigue al cursor, un clic lleva al miembro, la búsqueda filtra, y un miembro arrastrado sobre otro se mueve allí: el mismo movimiento seguro que Order Members. Los métodos muestran su longitud y su complejidad ciclomática; si superan los límites de la página de opciones, se vuelven naranjas.

La ventana de estructura con los miembros de una clase y un método largo en naranja

Pequeñas utilidades

Los comandos que se echaban de menos de CodeMaid, en Editar › TidySmith y en el menú contextual del editor.

Switch File

Abre el archivo que corresponde al actual (el marcado y su código, un archivo de recursos y su diseñador, el código y sus pruebas) sin buscarlo en el Explorador de soluciones.

DesdeHasta (y vuelta)
MainWindow.xamlMainWindow.xaml.cs
Order.razorOrder.razor.cs
Index.cshtmlIndex.cshtml.cs
Strings.resxStrings.Designer.cs
MainForm.csMainForm.Designer.cs
OrderService.csOrderServiceTests.cs — también en un proyecto de pruebas de la solución; y también …Test.cs y ….Tests.cs

El menú indica el destino («Switch to OrderServiceTests.cs») y se desactiva cuando no hay adónde ir. Luce más con un atajo propio: vea más abajo.

Sort Selected Lines

Ordena usings, miembros de un enum o los elementos de una lista; las comas se quedan donde la lista las necesita. Solo se ordena una lista plana (un elemento por línea, la misma sangría, sin líneas en blanco ni instrucciones), así que un método o un archivo entero seleccionado por error nunca se desordena; la barra de estado indica por qué.

Join Lines

Une las líneas seleccionadas en una sola, o la línea del cursor con la siguiente.

Find This File in Solution Explorer

Selecciona el archivo del editor en el Explorador de soluciones.

Collapse y Expand All Regions

Contrae o expande solo los bloques #region; los métodos se quedan como están. A diferencia de Ctrl+M, Ctrl+O (que también contrae los métodos) y Ctrl+M, Ctrl+L (todo).

De forma predeterminada no se ocupa ningún atajo: las teclas de Visual Studio se quedan como están. Asigne cualquier comando en Herramientas › Opciones › Entorno › Teclado: escriba TidySmith. en «Mostrar los comandos que contengan».

Configuración

Herramientas → Opciones → SmithWorks → TidySmith. Cada opción tiene una descripción.

OpciónPredeterminado
Acciones de TidySmith en la bombilla (Ctrl+.)activado
Puntos grises donde hay algo que ordenaractivado
Orden de los miembrosvalor preestablecido TidySmith
Vista previa antes de ordenaractivado
Regionessin regiones
Longitud de línea de los comentarios120
Ordenar al guardardesactivado
Método largo (líneas) · método complejo60 · 10
Pedir una valoración en el Marketplaceactivado

La configuración se guarda en %LocalAppData%\TidySmith; .editorconfig tiene prioridad donde define un valor.

Página de opciones de TidySmith
La página de opciones.

Por repositorio: .editorconfig

Ponga las reglas junto al código y todo el equipo obtendrá el mismo resultado; un valor en .editorconfig tiene prioridad sobre la página de opciones (salvo que «Usar el orden de .editorconfig» esté desactivado).

[*.cs]
tidysmith_member_order = stylecop
tidysmith_regions = kind
tidysmith_region_min = 2
max_line_length = 120
ClaveValores
tidysmith_member_ordertidysmith, stylecop, codemaid o los grupos en orden: constants, fields, constructors, properties, methods…
tidysmith_regionsnone, kind, access, kind_access
tidysmith_region_minEl mínimo de miembros para crear una región: 2
max_line_lengthLa longitud de línea a la que se ajustan los comentarios

Preguntas frecuentes

¿En qué se diferencia de CodeMaid?

TidySmith trabaja con el árbol de sintaxis de Roslyn en lugar del antiguo modelo de código, así que #if, los comentarios y los atributos se quedan donde deben; muestra una vista previa y se revierte con un solo Deshacer; el orden puede definirse en .editorconfig; funciona en Visual Studio 2022 y 2026 en x64 y ARM64. Solo cubre C# y deja fuera lo que Visual Studio ya hace por sí mismo (limpieza de código, progreso de la compilación).

¿Por qué no se ordenó una clase?

TidySmith deja una clase como está cuando ordenarla podría romperla o desfigurarla: un error de sintaxis, un miembro en la línea de una llave, dos miembros en una línea. Los miembros dentro de #if o #region solo se mueven dentro de su bloque. Los archivos generados nunca se tocan.

¿Puedo revertir un cambio?

Sí: cada comando y cada guardado es una sola edición, así que un solo Ctrl+Z lo revierte. En el Explorador de soluciones, los archivos que no están abiertos se escriben en el disco; ahí, use su control de versiones.

¿Por qué Sort Selected Lines no hizo nada?

Solo ordena una lista plana, así que una selección que es código (instrucciones, bloques, líneas con sangrías distintas o líneas en blanco entre ellas) nunca se desordena. La barra de estado lo indica.

Add Regions no hace nada.

Las reglas predeterminadas son sin regiones. Elija cómo dividirlas en el grupo «Regiones» de la configuración (el comando lo abre) o defina tidysmith_regions en .editorconfig.

¿Y VB, C++ o XAML?

TidySmith es para C#. Otros lenguajes pueden llegar si se piden: díganoslo en el repositorio Feedback.

¿TidySmith envía algún dato?

No. Todo se ejecuta dentro de Visual Studio sobre sus archivos; no se envía nada a ningún sitio: ni telemetría, ni solicitudes.

¿Dónde informo de un problema o propongo una característica?

Abra una incidencia en el repositorio Feedback de GitHub: hay formularios para errores e ideas (cambie los nombres privados). También puede usar la pestaña Q&A en Marketplace.

Historial de cambios

1.0.2

1.0.1

1.0.0