refactor: extract Monaco setup and completion providers from QueryEditor
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Refactorización
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- react, typescript
- Área
- desktop, developer-experience
Línea de trabajo
Start with src/components/editor/QueryEditor.tsx and locate the Monaco setup, JOIN and schema completion providers, intention actions, and live-template expansion. Read the existing editor lifecycle and useLiveTemplates usage before deciding how their dependencies are registered and disposed. The requested files are monacoSetup.ts, sqlCompletionProvider.ts, intentionActions.ts, and liveTemplateProvider.ts alongside the component. Done means the component is under roughly 600 lines, the listed features still work, checks pass, and a Vitest test covers pure live-template expansion.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
src/components/editor/QueryEditor.tsx is 1,179 lines. The component itself is fine; the noise is Monaco configuration, language definitions, JOIN suggestion providers, and intention actions inlined alongside the React lifecycle.
What to extract
monacoSetup.ts— theme registration, language token registration, editor option defaults.sqlCompletionProvider.ts— the JOIN-via-foreign-key autocomplete and the schema-aware identifier suggestions.intentionActions.ts— the Alt+Enter "intention actions" (quick fixes / refactors offered in the editor).liveTemplateProvider.ts— the snippet expansion that consumesuseLiveTemplates.
Suggested approach
- Files live in
src/components/editor/next to QueryEditor.tsx. - Each provider is a pure function that takes its dependencies (current schema, FK map, templates) and returns a Monaco-registered disposable.
- QueryEditor.tsx orchestrates the disposables in a single
useEffect.
Done criteria
QueryEditor.tsxdrops below ~600 lines.- All editor features still work: JOIN suggestions, table/column autocomplete, Alt+Enter actions, live templates.
- TypeScript / tests / build green.
- One Vitest test for the live-template expander (pure-string logic).
Out of scope
- Switching to a different editor (CodeMirror, etc.).
- Adding language servers / LSP.
Audit reference
K5 in the pre-launch audit.
- Lenguaje dominante
- TypeScript
- Estrellas
- 6
- Forks
- 1
- Merge medio
- 17 min
- PR fusionados (30 d)
- 2
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de openidle-dev/queryden
-
Multi Query ClusterAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
openidle-dev/queryden#240 ·
-
bug enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
openidle-dev/queryden#187 ·
-
Refresh database listAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 58/100
openidle-dev/queryden#237 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
openidle-dev/queryden#192 ·
-
dependencies
Dificultad 2/5 1-3 horas Aptitud para principiantes 58/100
openidle-dev/queryden#186 ·
Todos los issues de openidle-dev/queryden
Issues similares
-
Mend: dependency security vulnerability
Dificultad 1/5 1-3 horas Aptitud para principiantes 65/100
fdm-monster/fdm-monster#5563 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
be-BOP-io-SA/be-BOP#2849 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
Los mantenedores suelen responder en 1 día
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
growilabs/growi#12246 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
🐛 The Rulekeeper - An index run that gives up on the lock ends SucceededPosiblemente ocupada @github-actions la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
SSWConsulting/SSW.Rules#2809 · 1 comentario ·
Los mantenedores suelen responder en 1 día