Sobre el proyecto
Arranger es un motor de editor de texto enriquecido declarativo y un ecosistema de UI de código abierto para Compose Multiplatform. El README lo posiciona como un framework fundacional para crear experiencias completas de edición de texto en Compose, comparable en su rol a ProseMirror o Lexical. Ofrece formato de párrafos listo para usar, estrategias dinámicas para la tecla Enter, consulta semántica de atributos, deshacer/rehacer atómico e interoperabilidad futura con Markdown/WYSIWYG. El proyecto está marcado explícitamente como trabajo en curso: las API son inestables y pueden cambiar sin previo aviso; se invita a enviar comentarios, solicitudes de funciones e informes de errores a través de GitHub Issues.
Soporte de plataformas: Android API Level 26+, Desktop JVM en macOS, Windows y Linux, iOS y Web mediante WasmJs. Los requisitos indican Kotlin 2.4.10+. Arranger se publica en Maven Central bajo dev.mkeeda.arranger; los artefactos incluyen arranger-richtext-editor, arranger-richtext, arranger-richtext-markdown, arranger-richtext-html y arranger-richtext-editor-material3 para la resolución de estilos de Material 3.
Las capacidades incluyen atributos personalizados con seguridad de tipos, como SpanStyle, y claves de dominio como Mention, Hashtag y LinkKey; comportamientos de editor de alto nivel que abarcan encabezados, citas en bloque, alineaciones, listas con viñetas y ordenadas; un DSL declarativo de mutaciones para operaciones atómicas de texto y formato; Runs semánticos para iterar, buscar y editar por lotes fragmentos con atributos idénticos; y conversores de importación/exportación Markdown/HTML entre RichString y esos formatos. La integración con Compose separa el RichTextState sin interfaz del renderizado de UI de RichTextEditor en los objetivos compatibles.
Los ejemplos de editor cubren escritura dinámica que mantiene los spans existentes, formato avanzado de párrafos, listas con viñetas y ordenadas con marcadores e indentación automáticos, ListMarkerResolver personalizado y opciones de EnterKeyStrategy: InheritParagraphStrategy, ListEnterStrategy y HeadingEnterStrategy. Los hipervínculos usan LinkKey con estilo automático y navegación mediante LocalUriHandler, además de UrlParser y detectAndApplyLinks para enlazado automático. Los atributos personalizados se pueden asignar a estilos de Compose mediante AttributeStyleResolver. La búsqueda y la edición por lotes usan rangesOf, editAll y runs(key) o runs con un predicado. Las mutaciones como insertar, eliminar y reemplazar se realizan dentro de RichTextState.edit con desplazamiento automático de spans.
Los posibles usos incluyen edición de texto enriquecido, toma de notas, edición de documentos o interfaces de mensajería creadas con Compose Multiplatform. El README incluye fragmentos de instalación para commonMain de Kotlin Multiplatform y proyectos solo para Android, junto con composables de ejemplo e imágenes de demostración. El README no proporciona afirmaciones de rendimiento ni benchmarks.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.