Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

LSP hover emits literal \n in Markdown code fences

Fechada Para iniciantes
#1,998 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
c

Direção de pesquisa

Comece em src/eigenlsp.c em handle_hover, onde as strings de fence " eigenscript\\n" e "\\n " são anexadas antes de serem escapadas em JSON uma segunda vez; siga o caminho de escape para ver onde o backslash+n literal é produzido. Reproduza com make lsp e o driver briefs/out/r1-8/drivers/hover_format_gap.py, comparando com hover-format-gap.json. Concluído quando o contents.value decodificado contiver novas linhas reais ao redor do fence e os testes JSON-RPC cobrirem um hover de builtin/símbolo além dos literais numéricos int e float sem alterar as classificações existentes.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
C
Estrelas
3
Forks
7
Merge médio
8h 36min
PRs com merge (30d)
406

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de InauguralSystems/EigenScript

Todas as issues de InauguralSystems/EigenScript

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.