Extensión VS Code: Reconocimiento de Enlaces de Protocolo iPlay
Una extensión de VS Code que reconoce y maneja automáticamente enlaces de protocolo personalizado (iplay:// y iplays://) en tus archivos, facilitando el trabajo con enlaces de medios iPlay directamente en tu editor.

🎯 Características Principales
- 🔗 Detección Automática de Enlaces: Reconoce instantáneamente enlaces de protocolo
iplay://eiplays://en tus archivos - 👁️ Retroalimentación Visual: Los enlaces aparecen subrayados con información útil al pasar el cursor
- 🖱️ Haz Clic para Abrir: Usa Cmd+Click (macOS) o Ctrl+Click (Windows/Linux) para abrir enlaces con el gestor de protocolo predeterminado del sistema
- ⚙️ Configurable: Personaliza qué tipos de archivos soportan el reconocimiento de enlaces
- 🚀 Rendimiento: Ligera y rápida, sin impacto en el rendimiento del editor
📦 Instalación
- Abre VS Code
- Ve a Extensiones (Cmd+Shift+X en macOS, Ctrl+Shift+X en Windows/Linux)
- Busca "iPlay"
- Haz clic en Instalar
📝 Tipos de Archivo Soportados
La extensión funciona por defecto con:
- JSON (
.json) - Perfecto para archivos de configuración y datos - JSONL (
.jsonl) - Archivos JSON delimitados por líneas - Markdown (
.md) - Documentación y notas - Texto Plano (
.txt) - Cualquier archivo de texto
💡 Ejemplos de Uso
Enlaces Simples
iplay://example.com/video
iplays://secure.example.com/mediaEnlaces en Contexto
Mira este video: iplay://example.com/awesome-video
"Reproducir esto: iplay://example.com/tutorial"
(Consulta iplay://example.com/demo para más detalles)Enlaces con Parámetros de Consulta
iplay://example.com/video?id=123&quality=hd
iplays://example.com/playlist?name=favorites&autoplay=trueEn Archivos JSON
{
"videos": [
"iplay://example.com/intro",
"iplay://example.com/tutorial",
"iplays://secure.example.com/premium"
],
"playlist": "iplay://example.com/playlist/daily"
}Múltiples Enlaces
Compara iplay://example.com/video1 con iplay://example.com/video2⚙️ Configuración
Personalizar Tipos de Archivo
Puedes personalizar qué tipos de archivo soportan el reconocimiento de enlaces agregando esto a tu settings.json:
{
"iplay.fileExtensions": [
"json",
"jsonl",
"markdown",
"plaintext",
"javascript",
"typescript",
"python"
]
}Identificadores de Lenguaje Comunes
javascript- Archivos JavaScripttypescript- Archivos TypeScriptpython- Archivos Pythonyaml- Archivos YAMLxml- Archivos XMLhtml- Archivos HTMLcss- Archivos CSS
Nota: Los cambios de configuración se aplican inmediatamente sin necesidad de reiniciar.
🔧 Solución de Problemas
Los enlaces no se detectan
Problema: Los enlaces de protocolo personalizado no aparecen como enlaces en tu archivo.
Soluciones:
Verifica el tipo de archivo: Asegúrate de que el tipo de archivo está en tu lista de extensiones configuradas
- Abre la Paleta de Comandos (Cmd+Shift+P / Ctrl+Shift+P)
- Escribe "Change Language Mode" para ver el identificador de lenguaje actual
- Agrega este identificador a
iplay.fileExtensionsen la configuración
Verifica el formato del enlace: Asegúrate de que tus enlaces comienzan con
iplay://oiplays://- ✅ Correcto:
iplay://example.com/video - ❌ Incorrecto:
iplay:/example.com/video(falta una barra) - ❌ Incorrecto:
iPlay://example.com/video(mayúsculas incorrectas)
- ✅ Correcto:
Comprueba los delimitadores: Los enlaces se detectan hasta encontrar espacios en blanco o delimitadores comunes
- Delimitadores que terminan la detección: espacio,
",',<,>,),},] - Si tu enlace contiene estos caracteres, pueden ser excluidos
- Delimitadores que terminan la detección: espacio,
Recarga la ventana: Intenta recargar VS Code
- Abre la Paleta de Comandos (Cmd+Shift+P / Ctrl+Shift+P)
- Escribe "Developer: Reload Window"
Los enlaces no se abren al hacer clic
Problema: Al hacer clic en un enlace no se abre.
Soluciones:
Usa la tecla modificadora correcta:
- macOS: Mantén Cmd mientras haces clic
- Windows/Linux: Mantén Ctrl mientras haces clic
Verifica el controlador de protocolo del sistema: Asegúrate de que tu sistema tiene un controlador registrado para el protocolo
iplay://- La extensión pasa el enlace a tu sistema operativo
- Necesitas tener una aplicación instalada que maneje URLs
iplay://
Prueba con un enlace diferente: Prueba con un enlace simple como
iplay://example.com/testpara descartar problemas específicos de URL
Los cambios de configuración no surten efecto
Problema: Después de cambiar la configuración, la extensión sigue utilizando la anterior.
Soluciones:
- Espera un momento: Los cambios de configuración deberían aplicarse automáticamente en unos segundos
- Comprueba la sintaxis JSON: Asegúrate de que tu
settings.jsontiene sintaxis JSON válida - Recarga la ventana: Como último recurso, recarga VS Code
- Abre la Paleta de Comandos (Cmd+Shift+P / Ctrl+Shift+P)
- Escribe "Developer: Reload Window"
La extensión no está activa
Problema: La extensión no parece estar ejecutándose.
Soluciones:
Verifica que la extensión esté instalada y habilitada:
- Ve a la vista de Extensiones (Cmd+Shift+X / Ctrl+Shift+X)
- Busca "iPlay"
- Asegúrate de que esté instalada y habilitada
Abre un tipo de archivo soportado: La extensión se activa cuando abres un archivo soportado
- Intenta abrir un archivo
.json,.mdo.txt
- Intenta abrir un archivo
Comprueba el panel Output:
- Abre el panel Output (Cmd+Shift+U / Ctrl+Shift+U)
- Selecciona "Custom Protocol Link Recognition" del desplegable
- Busca mensajes de activación o errores
Problemas de rendimiento
Problema: VS Code se siente lento después de instalar la extensión.
Soluciones:
- Reduce los tipos de archivo soportados: Si has agregado muchos tipos de archivo, intenta reducir la lista solo a los que necesitas
- Busca conflictos: Deshabilita otras extensiones temporalmente para ver si hay un conflicto
- Reporta el problema: Si los problemas de rendimiento persisten, reportalos en el repositorio de GitHub
🔒 Privacidad y Seguridad
- Sin recopilación de datos: Esta extensión no recopila ni transmite datos
- Procesamiento local: Toda la detección de enlaces ocurre localmente en tu editor
- Sin solicitudes de red: La extensión no realiza ninguna llamada de red
- Integración del sistema: Los enlaces se abren usando el controlador de protocolo predeterminado de tu sistema
📖 Detalles Técnicos
Cómo Funciona
La extensión utiliza la API DocumentLinkProvider de VS Code para:
- Analizar el texto del documento en busca de enlaces de protocolo personalizado usando coincidencia de expresiones regulares
- Crear objetos
DocumentLinkinteractivos con URIs de comandos - Registrar un comando que utiliza
vscode.env.openExternal()para abrir enlaces con el controlador de protocolo predeterminado del sistema - Proporcionar información sobre herramientas al pasar el cursor y manejar eventos de clic
- Actualizar automáticamente cuando cambian los documentos o la configuración
Este enfoque garantiza que los enlaces de protocolo personalizado se abran por el sistema (activando la aplicación iPlay) en lugar de ser manejados internamente por VS Code.
Patrón de Detección de Enlaces
La extensión utiliza el siguiente patrón de expresión regular para detectar enlaces:
/i(?:play|plays):\/\/[^\s"'<>)}\]]+/gEste patrón coincide con:
- Protocolo
iplay://oiplays:// - Seguido de cualquier carácter excepto espacios en blanco y delimitadores comunes
- Se detiene en: espacio,
",',<,>,),},]
🤝 Desarrollo
Esta extensión está construida con TypeScript y utiliza la API DocumentLinkProvider de VS Code.
Compilar desde Fuente
# Clona el repositorio
git clone <url-del-repositorio>
cd custom-protocol-link-recognition
# Instala las dependencias
npm install
# Compila TypeScript
npm run compile
# Ejecuta las pruebas
npm testEstructura del Proyecto
├── src/
│ ├── extension.ts # Lógica principal de la extensión y proveedor de enlaces
│ ├── configuration.ts # Gestión de configuración
│ └── test/ # Suite de pruebas
├── package.json # Manifiesto de la extensión
└── README.md # Este archivo🤝 Contribuciones
¡Las contribuciones son bienvenidas! Siéntete libre de enviar problemas o solicitudes de extracción.
📄 Licencia
Consulta el archivo LICENSE en el repositorio para más detalles.
💬 Soporte
Si encuentras algún problema o tienes preguntas:
- Consulta la sección Solución de Problemas arriba
- Busca problemas existentes en GitHub
- Crea un nuevo problema con detalles sobre tu problema
¡Disfruta usando enlaces iPlay en VS Code! 🎉