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

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
- Ordenar miembros de una clase, un archivo o los archivos seleccionados en el Explorador de soluciones, con una vista previa de lo que se mueve.
- Sugerencias en el editor: puntos grises donde hay algo que ordenar y la corrección en la bombilla (Ctrl+.).
- Regiones según sus reglas: por grupo de miembros, por acceso o ambos, con sus nombres de región; o ninguna región.
- Comentarios que caben: comentarios
//y///ajustados a su longitud de línea, con las líneas cortas unidas. - Ordenar al guardar: los pasos que elija se ejecutan al guardar un archivo C#; desactivado de forma predeterminada.
- Ventana de estructura: los miembros del archivo, el tamaño y la complejidad de los métodos, y reordenación arrastrando.
- Pequeñas utilidades: cambiar al archivo relacionado, ordenar y unir líneas, buscar el archivo en el Explorador de soluciones, contraer o expandir solo las regiones.
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.
- Primero, una vista previa: el diff de lo que se mueve; Aplicar es una sola edición, así que un solo Deshacer lo revierte todo. «No volver a preguntar» desactiva la vista previa.
- Dónde: la clase donde está el cursor o todo el archivo (se elige en la vista previa), o cada archivo C# seleccionado en el Explorador de soluciones: archivos, carpetas, proyectos.
- Qué se mueve con un miembro: sus comentarios, su documentación y sus atributos. Las líneas en blanco se quedan como estaban; entre grupos va una línea en blanco.
- Qué nunca se toca: los miembros dentro de
#ifo#regionsolo se ordenan dentro de su bloque; las clases con un miembro en la línea de una llave, dos miembros en una línea o errores de sintaxis se quedan como están; los archivos generados (*.g.cs,*.Designer.cs) se omiten.
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.

| Cursor en | Ctrl+. ofrece |
|---|---|
| El nombre de una clase | Ordenar 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ínea | Ajustar el comentario |
Una línea #region | Quitar esta región (el código se queda) |
| Varias líneas seleccionadas | Ordenar 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.

- Cómo dividir: una región por grupo de miembros (Fields, Methods…), por acceso (Public, Private…) o ambos (Public methods).
- Sus nombres: cada grupo tiene su nombre de región; los grupos con el mismo nombre comparten una región y un grupo desactivado queda fuera de las regiones. Las implementaciones de interfaz pueden tener una región con el nombre de la interfaz (IDisposable).
- Sin ruido: si hay menos miembros que el mínimo (2 de forma predeterminada), no hay región; una región alrededor de un solo constructor no ayuda a nadie.
- Vuelva a ejecutarlo cuando quiera: las regiones dentro de las clases se reconstruyen, no se anidan. Primero se ordenan los miembros, para que cada grupo quede en una sola pieza.
- A mano: Add Region Around Selection (el cursor espera el nombre después de
#region), Remove Region at Caret, Remove Regions in This File; solo desaparecen las líneas#regiony#endregion, el código se queda.
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.
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.

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.
| Desde | Hasta (y vuelta) |
|---|---|
MainWindow.xaml | MainWindow.xaml.cs |
Order.razor | Order.razor.cs |
Index.cshtml | Index.cshtml.cs |
Strings.resx | Strings.Designer.cs |
MainForm.cs | MainForm.Designer.cs |
OrderService.cs | OrderServiceTests.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ón | Predeterminado |
|---|---|
| Acciones de TidySmith en la bombilla (Ctrl+.) | activado |
| Puntos grises donde hay algo que ordenar | activado |
| Orden de los miembros | valor preestablecido TidySmith |
| Vista previa antes de ordenar | activado |
| Regiones | sin regiones |
| Longitud de línea de los comentarios | 120 |
| Ordenar al guardar | desactivado |
| Método largo (líneas) · método complejo | 60 · 10 |
| Pedir una valoración en el Marketplace | activado |
La configuración se guarda en %LocalAppData%\TidySmith; .editorconfig tiene prioridad donde define un valor.

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
| Clave | Valores |
|---|---|
tidysmith_member_order | tidysmith, stylecop, codemaid o los grupos en orden: constants, fields, constructors, properties, methods… |
tidysmith_regions | none, kind, access, kind_access |
tidysmith_region_min | El mínimo de miembros para crear una región: 2 |
max_line_length | La 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
- Una única petición de valoración en el Marketplace, cuando la extensión ya le ha sido útil, con Más tarde y No volver a preguntar, y una opción para desactivarla.
1.0.1
- Order Members y la ventana Structure en la barra de herramientas SmithWorks, compartida con las demás extensiones SmithWorks (Ver › Barras de herramientas › SmithWorks).
1.0.0
- Primera versión pública.
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_lengthde.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.