MeanderingProgrammer / markdown.nvim

Plugin to improve viewing Markdown files in Neovim
MIT License
503 stars 20 forks source link

bug: Headlines Not Displaying Correctly in Quarto Files (.qmd) #49

Closed bassamsdata closed 1 week ago

bassamsdata commented 1 week ago

Neovim version (nvim -v)

0.10.0

Operating system

MacOS

Terminal emulator / GUI

WezTerm

Describe the bug

Headlines don't appear correctly in Quarto files (.qmd). The more nested the headlines are, the more letters are hidden from the beginning of the line. The video below illustrates the issue clearly. Kapture 2024-07-06 at 12 26 35

Expected behavior

show the headlines correctly.

to reproduce:

  1. create quarto file: touch testQuarto.qmd
  2. paste the below code in it.
    
    ---
    title: "Premier League clubs best and worst seasons"
    format:
    html:
    code-fold: true
    code-link: true
    code-summary: "Show the code"
    code-tools: true
    theme:
      light: cosmo
      dark: darkly
    execute:
    echo: fenced
    ---

Create a chart for clubs

chart to look for best and worst seasons based on points, gF, gA, xgF, xgA

Load libraries

Load libraries


### Healthcheck output (:checkhealth render-markdown)

render-markdown: require("render-markdown.health").check()

markdown.nvim [nvim-treesitter] ~
- OK installed
- OK markdown: parser installed
- OK markdown_inline: parser installed
- WARNING latex: parser not installed
  - ADVICE:
    - If you do not want LaTeX support avoid this warning by setting { latex_enabled = false }
- OK highlights enabled

markdown.nvim [executables] ~
- WARNING latex2text: not installed
  - ADVICE:
    - If you do not want LaTeX support avoid this warning by setting { latex_enabled = false }

markdown.nvim [configuration] ~
- ERROR Invalid key: file_types.2
- ERROR Invalid key: file_types.3

### Additional information

here is my config:
```r
  {
    "MeanderingProgrammer/markdown.nvim",
    ft = { "markdown", "rmd", "quarto" },
    name = "render-markdown",
    dependencies = { "nvim-treesitter/nvim-treesitter" },
    opts = {
      file_types = { "markdown", "rmd", "quarto" },
    },
  },

Thank you

MeanderingProgrammer commented 1 week ago

I think I know what's going on here.

This plugin assumes default conceal behavior in markdown files. Currently the heading prefix ###, is not concealed by default.

Do you have any custom highlights that set conceal on atx_h1_marker etc.?

bassamsdata commented 1 week ago

Thank you for the response, and yes, you’re right. There was some highlighting related to atx_h1_marker as shown in the Inspect command image below:

Screenshot 2024-07-07 at 2 25 56 AM

After debugging, I discovered the issue was due to enabling regex highlights in Markdown files via Tree-sitter with additional_vim_regex_highlighting = { "markdown" },. What struck me was that the issue didn't appear in Markdown files, only in Quarto files.

Thank you again for your reply; the issue is now resolved.

MeanderingProgrammer commented 1 week ago

Strange, it does seem like this should also have been an issue on markdown files.

Will work on handling these cases better in general, assuming concealing behavior is going to lead to inconsistencies, though I'm not sure of a better way to handle it at the moment.

Glad it's working now!

MeanderingProgrammer commented 1 week ago

I did push a fix for this here https://github.com/MeanderingProgrammer/markdown.nvim/commit/5ce35662725b1024c6dddc8d0bc03befc5abc878, if you want to re-enable the concealing behavior and are using neovim >= 0.10.0.