Skip to content

Dev-Donaaaiire/CodeSnip

Repository files navigation

CodeSnip Search 🔍🤖

CodeSnip Search es una extensión de código abierto para Visual Studio Code que revoluciona la forma en que navegas por tu código. En lugar de buscar coincidencias exactas de texto (como el tradicional Ctrl+Shift+F), CodeSnip permite realizar búsquedas semánticas usando lenguaje natural.

Con CodeSnip, puedes preguntarle a tu editor "dónde se guarda el estado del usuario" o "lógica para reconectar la base de datos", y la extensión encontrará los fragmentos de código con el significado más cercano utilizando Inteligencia Artificial 100% local y privada.

✨ Características Principales

  • 🧠 Búsqueda Semántica: Encuentra fragmentos de código por su significado, no por los nombres exactos de variables o palabras clave.
  • 🔒 100% Privado y Local: A diferencia de GitHub Copilot o ChatGPT, tu código NUNCA sale de tu computadora. La extensión descarga y ejecuta un modelo de embeddings de IA (all-MiniLM-L6-v2) internamente usando transformers.js.
  • Rendimiento Optimizado: Utiliza una caché vectorial inteligente (.vscode/codesnip-cache/) que solo re-indexa los archivos que han sido modificados.
  • 🚀 Búsqueda en Tiempo Real (Debounced): El QuickPick nativo de VS Code devuelve los resultados al instante a medida que pausas tu escritura.
  • 🎯 Selección Automática: Al hacer clic en un resultado, la extensión abre el archivo y selecciona el bloque lógico de código completo.

🛠️ Requisitos Previos

  • Visual Studio Code v1.80.0 o superior.
  • Node.js (v18.x o superior) para compilar y probar.

🚀 Instalación y Uso (Desarrollador)

Actualmente la extensión no está publicada en el Marketplace, por lo que puedes usarla y compilarla localmente:

  1. Clona el repositorio:

    git clone https://github.com/Dev-Donaaaiire/CodeSnip.git
    cd CodeSnip
  2. Instala las dependencias:

    npm install
  3. Compila y ejecuta la extensión:

    • Abre la carpeta CodeSnip en VS Code.
    • Presiona F5 para lanzar el Extension Development Host. (Esto abrirá una nueva ventana con la extensión cargada).
    • En la nueva ventana, la extensión comenzará a indexar los archivos automáticamente. Verás una barra de progreso en la esquina inferior derecha.

💡 Cómo Usarlo

  1. Asegúrate de tener un proyecto/carpeta abierta en VS Code.
  2. Abre la Paleta de Comandos (Cmd/Ctrl+Shift+P).
  3. Escribe y selecciona CodeSnip: Search Workspace.
  4. En la barra de búsqueda, escribe tu consulta en lenguaje natural (ej. "¿Cómo se valida la contraseña del usuario?").
  5. Selecciona el fragmento más relevante de la lista de resultados para navegar automáticamente a él.

También puedes forzar la re-indexación manual de todo el proyecto usando el comando CodeSnip: Force Re-index Workspace.


🏗️ Arquitectura Técnica

  • src/indexer.ts: Escanea el workspace excluyendo inteligentemente dependencias (node_modules, dist, etc.) y fragmenta el código fuente (chunking).
  • src/embeddingEngine.ts: Carga el modelo HuggingFace all-MiniLM-L6-v2 utilizando WebAssembly (WASM) nativo a través de @xenova/transformers.
  • src/vectorStore.ts: Almacena de manera inmutable los embeddings y usa la función matemática de Similitud del Coseno para comparar el vector de tu consulta contra los vectores del código.
  • src/searchPanel.ts: Controla el QuickPick asíncrono y se asegura de ignorar los filtros nativos de VS Code (alwaysShow: true) para permitir un ranking 100% semántico.

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Este es un proyecto Open Source creado para potenciar la productividad local de los desarrolladores. Siéntete libre de hacer un fork, crear nuevas ramas y abrir Pull Requests.

📝 Licencia

Distribuido bajo la Licencia MIT. Consulta el archivo LICENSE para más información.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages