FW Lite adapter: resolve lexicon refs for display

Cerrado
#227 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@imnasnainaec ya está trabajando en esto.

Desde el 23/10/2026.

  • #514 de @imnasnainaec — fusionado

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
55/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
typescript
Área
api, frontend

Línea de trabajo

Comienza con el objeto de red lexicon.entryService y sus operaciones getEntry/getSense; después, inspecciona la tercera fila de cuadrícula reservada en src/components/MorphemeBox.tsx. Traza cómo los segmentos visibles exponen las referencias de gloss y sense antes de implementar la resolución perezosa y el almacenamiento en caché. Se considera terminado cuando la secuencia de renderizado, la invalidación al cambiar de léxico, el comportamiento de fallback y el indicador de enlace solo de visualización funcionan sin escrituras ni superficies de error.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

First real lexicon integration: implement the port over FW Lite and render glosses that came from a lexicon link.

Scope

The adapter. Implement the port against the Lexicon extension's lexicon.entryService network object, using getEntry / getSense (landed in sillsdev/languageforge-lexbox#2249) and reporting FW Lite's capabilities.

Resolution. Resolve lazily per visible segment, not per project load — a book's worth of refs must not be fetched to render one screen. Cache resolved senses; invalidate on lexicon switch.

The render ladder, which follows the precedence rule already in the model — free-form gloss wins over glossSenseRef / senseRef, and the ref is retained either way:

  1. stored free-form gloss, if present
  2. otherwise the resolved sense gloss
  3. otherwise unglossed

An unresolvable ref is not an error state. Provider offline, entry deleted, and foreign ref (#225) all fall through the same ladder with no error surface and no data loss. The ref stays on the analysis.

Link indicator. Display only — show that a gloss is lexicon-backed, using the third grid row MorphemeBox already reserves for it (src/components/MorphemeBox.tsx). Picking and changing a link is the next item.

Availability as a subscription. The indicator has to notice lexicon software arriving mid-session, so LexiconProvider.isAvailable() becomes a subscription here; the mechanisms are in this #44 comment. It replaces the focus re-probe #356 added to useLexiconRegistry.

Non-goals

No search, no linking, no writes. Read path only.

Note

The deleted-entry and foreign-ref cases overlap #143. Keep the rule in one place — cite it from whichever issue lands second rather than restating it.

Lenguaje dominante
TypeScript
Estrellas
2
Forks
0
Merge medio
1 d 8 h
PR fusionados (30 d)
83

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sillsdev/interlinearizer-extension

Todos los issues de sillsdev/interlinearizer-extension

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.