Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Use MarkupContent for hover contents

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

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
65/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust

Línea de trabajo

The work is in compiler-services/iris-analysis/src/hover.rs and tests-integration/src/generated/lsp.rs. Start by reading the LSP 3.18 spec on MarkupContent and the gen-lsp-types crate. Examine how hovers are currently built using MarkedString. Change the logic to build a single MarkupContent value, handling the contentFormat client capability. Update the integration test renderer and regenerate snapshots with just t lsp. Done when the #[allow(deprecated)] attributes are removed and all hover tests pass.

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

Descripción

enhancement language-server lsp-3.18

Context

The language server is moving from lsp-types 0.95 to gen-lsp-types, which generates its types from the LSP 3.18 metamodel. LSP 3.18 deprecates MarkedString in favour of MarkupContent, and gen-lsp-types marks MarkedString, MarkedStringWithLanguage, and their variants #[deprecated].

Hovers still build MarkedString values (Contents::MarkedString and Contents::MarkedStringList) in compiler-services/iris-analysis/src/hover.rs: signatures and kinds as purescript code blocks, annotations as plain strings, and --- separators between them. To keep the type migration free of wire and snapshot changes, those sites and the hover renderer in tests-integration/src/generated/lsp.rs are allowed with a scoped #[allow(deprecated)].

Goal

Return hover contents as MarkupContent and remove the #[allow(deprecated)] escape hatches.

Scope

  • Build hover contents as a single MarkupContent, rendering code as fenced purescript blocks and separating sections with Markdown rules.
  • Negotiate textDocument.hover.contentFormat: use Markdown when the client supports it and fall back to plain text otherwise, rather than assuming Markdown.
  • Remove the MarkedString helpers and the #[allow(deprecated)] attributes from hover.rs and the integration-test renderer.
  • Regenerate the affected lsp fixture snapshots and review each hover change.

Tests

  • just t lsp with reviewed snapshot changes for hover fixtures.
  • A capability-negotiation test covering Markdown and plain-text clients.
Lenguaje dominante
Rust
Estrellas
118
Forks
12
Merge medio
7 h 3 min
PR fusionados (30 d)
110

Preparar el entorno

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 purefunctor/purescript-iris

Todos los issues de purefunctor/purescript-iris

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.