Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#205 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
56/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
lua, neovim

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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

Ngôn ngữ chính
Lua
Star
533
Fork
21
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của quarto-dev/quarto-nvim

Tất cả issue của quarto-dev/quarto-nvim

Issue tương tự

Thêm issue về Lua

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.