Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

LSP hover emits literal \n in Markdown code fences

Geschlossen Anfängerfreundlich
#1,998 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
72/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
c

Rechercherichtung

Beginne in src/eigenlsp.c bei handle_hover, wo die Fence-Strings " eigenscript\\n" und "\\n " angehängt werden, bevor sie ein zweites Mal JSON-escaped werden; verfolge den Escaping-Pfad, um zu sehen, wo der literale Backslash+n erzeugt wird. Reproduziere mit make lsp und dem Treiber briefs/out/r1-8/drivers/hover_format_gap.py und vergleiche mit hover-format-gap.json. Fertig, wenn der dekodierte contents.value echte Zeilenumbrüche um den Fence enthält und JSON-RPC-Tests einen Builtin-/Symbol-Hover sowie sowohl numerische int- als auch float-Literale abdecken, ohne bestehende Klassifizierungen zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

area:lint-tooling kind:bug

The LSP hover formatter emits the two characters backslash + n inside its Markdown code fences instead of newline characters. This is inherited by the numeric literal hover added during #1758 R1.8; the formatter already affected builtin/symbol hover on the base.

src/eigenlsp.c:handle_hover appends C strings "```eigenscript\\n" and "\\n```", then JSON-escapes them again. A real JSON-RPC hover over 3.0 returns a contents.value whose Python representation is '```eigenscript\\nfloat\\n```', with zero actual newline characters. Markdown consumers therefore do not receive a fenced code block.

Reproducer: build make lsp, initialize a JSON-RPC session, didOpen print of 3.0\n, request textDocument/hover at line 0, character 9, and inspect the decoded contents.value. The read-only reproduction driver and result are in the R1.8 handoff: briefs/out/r1-8/drivers/hover_format_gap.py and hover-format-gap.json.

Done when:

  • Hover content contains actual newlines around the code block, without literal backslash+n in their place.
  • Real JSON-RPC tests cover a builtin/symbol hover and both numeric literal kinds.
  • Existing hover text and numeric int/float classifications remain correct.

Principle: No silent wrong answers. This is a formatting gap outside R1.8's numeric semantics and is surfaced separately rather than silently broadening that round.

Vorherrschende Sprache
C
Sterne
3
Forks
7
Ø Merge
8 Std. 51 Min.
Gemergte PRs (30 T.)
393

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus InauguralSystems/EigenScript

Alle Issues in InauguralSystems/EigenScript

Ähnliche Issues

Weitere Issues zu C

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.