Comby: Herramienta para la refactorización del código
Comby: Herramienta para la refactorización del código

Comby es una herramienta para buscar y cambiar la estructura del código.

Utilice plantillas ligeras para buscar y cambiar fácilmente código, HTML o JSON. Comby está diseñado para funcionar en cualquier idioma o formato de datos.

Realiza búsquedas y reemplazos más completos porque Comby comprende la sintaxis de bloques de código, cadenas y comentarios para tu idioma.

¿Cómo instalar Comby?

Mac OS X brew install comby
Ubuntu bash <(curl -sL get.comby.dev)
Windoiws bash <(curl -sL get.comby.dev)después de instalar Ubuntu con WSL
Docker docker pull comby/comby

INSTRUCCIONES PARA INSTALAR COMBY

¿Cómo comprobar la instalación?

Ejecuta esto en su terminal para comprobar que todo funciona:

comby 'swap(:[1], :[2])' 'swap(:[2], :[1])' -stdin .js <<< 'swap(x, y)'

Esto debería devolver:

------ /dev/null
++++++ /dev/null
@|-1,1 +1,1 ============================================================
-|swap(x, y)
+|swap(y, x)

Buscar y refactorizar

Comby es ideal para retocar piezas de código. Úsalo para traducir código de Python 2 a Python 3 y reemplazar los métodos obsoletos.

Escriba fácilmente refactorizaciones únicas o una colección de correcciones rápidas personalizadas para tu proyecto.

Con Comby puedes hacer que encontrar y cambiar el código sea más fácil de lo que permiten las expresiones regulares por sí solas y evitar errores como los escapes de paréntesis, las comillas o los cambios de varias líneas.

La idea base de Comby

Comby funciona definiendo analizadores generales para construcciones de código como balanceado (...), {...}y [...], así como literales de cadena y comentarios.

No implementa un analizador completo para cada idioma, sino una gramática más general para que funcione en muchos idiomas (al igual que las expresiones regulares funcionan en el texto de cada idioma).

Diseñado para trabajar a lo grande y en lo pequeño

Comby puede ejecutar cambios de código a gran escala o permitirle hacer una revisión interactiva como codemod . Está diseñado para admitir todos los idiomas y no solo los más populares.

Los analizadores dedicados refinan cómo Comby entiende el código, pero también tiene soporte básico listo para usar para formatos de datos como JSON, lenguajes recientes como Zig o sus propios DSL.

¿Con qué lenguajes funciona Comby?

Bash C/C++ C# Clojure Coq CSS Dart Elm Elixir
Erlang Fortran F# Go Haskell HTML Java JavaScript JSX
JSON Kotlin Julia LaTeX Lisp Nim MATLAB Move Pascal
PHP Plain Text Python R ReScript Ruby Rust Scala Solidity
SQL Terraform Swift TSX TypeScript

Comby también implementa un comparador genérico que funciona como un analizador alternativo para formatos de datos similares a JSON, nuevos lenguajes y los existentes que pueden no tener soporte explícito todavía (como YAML o VHDL).