Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Code fence lines are fully hidden in .qmd buffers unless a .md file was opened first

Aperta
#205 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
56/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
lua, neovim

Direzione di ricerca

Start by reproducing the issue in Neovim with a .qmd file opened before any .md file, then compare the behavior after opening Markdown. The report points to nvim-treesitter’s Markdown highlights.scm conceal rules and notes that setting conceallevel=0 restores the fences. Find the initialization path that differs between those cases; done when fence lines remain visible in the reported .qmd startup sequence without requiring the workaround.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

In a .qmd buffer, the opening and closing lines of a fenced code block (```python / ```) are completely hidden unless the cursor is on them. If I first open any .md file in the same session and then open the .qmd, the fence lines are shown normally (screenshots below).

Findings

  • The hiding seems to come from nvim-treesitter's markdown highlights.scm, which sets conceal and conceal_lines on fenced_code_block_delimiter and the info_string language.
  • With set conceallevel=0 the fences reappear, so it's treesitter conceal, not syntax conceal (syntax is empty, synconcealed() returns 0).
  • The query file used is the same in both states.
  • Manually loading render-markdown.nvim in the broken state (:Lazy load render-markdown.nvim) changes nothing, and its file_types doesn't include quarto. So opening a markdown file triggers something else that affects .qmd buffers.

Workaround

Creating a scratch buffer with filetype=markdown once, on the first quarto FileType event, fixes it:

vim.api.nvim_create_autocmd("FileType", {
  -- When opening a quarto file with quarto-nvim, first trigger a load with render-markdown to ensure its proper initialization.
  -- This works around an issue where loading a quarto file before markdown results in concealed code block fences.
  pattern = "quarto",
  once = true,
  callback = function()
    local scratch = vim.api.nvim_create_buf(false, true)
    vim.bo[scratch].filetype = "markdown"
    vim.schedule(function()
      vim.api.nvim_buf_delete(scratch, { force = true })
    end)
  end,
})

Steps to reproduce

  1. Start Neovim and open a .qmd file containing a Python code block.
  2. Move the cursor off the fence lines: they disappear.
  3. Open any .md file, then delete the .qmd buffer and reopen it: the fences are visible.

Environment

  • Neovim: 0.12.4
  • OS: macOS
  • Distribution: LazyVim
  • quarto-nvim / nvim-treesitter / render-markdown.nvim: v2.1.0 / e289100 / 245956d
  • Config: ft = "quarto", opts = { codeRunner = { enabled = true, default_method = "molten", }, }

Screenshots

.qmd opened first

.qmd opened after .md

Lingua principale
Lua
Stelle
532
Fork
21
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di quarto-dev/quarto-nvim

Tutte le issue di quarto-dev/quarto-nvim

Issue simili

Altre issue su Lua

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.