Skip to content

Loading soft and hard files into the same window causes inconsistencies #51

Description

@bjwrk

Here's a minimal reproducer, following the format of nvim issue reproducers. Run with nvim --clean -u minimal.lua. Open a quickfix list with the two files in question using :FixedQuickfix.

If you open the markdown file first, then then yaml file, the yaml file will be soft wrapped too, which it shouldn't be, as the filetype is not in the allowlist.

I had trouble getting soft wrapping to trigger, so I just fudged it. I wasn't sure if the tree-sitter plugin was needed or not, I added it while trying to get soft wrapping to kick in but it didn't help.

This is with nvim revision aeeadddac43b999a4bc6f57cbbdd2d7c7f1d08e4.

minimal.lua
-- Run this file as `nvim --clean -u minimal.lua`

for name, url in pairs {
  -- 'https://github.com/nvim-treesitter/nvim-treesitter/',
  'https://github.com/andrewferrier/wrapping.nvim',
} do
  local install_path = vim.fn.fnamemodify('nvim_issue/' .. name, ':p')
  if vim.fn.isdirectory(install_path) == 0 then
    vim.fn.system { 'git', 'clone', '--depth=1', url, install_path }
  end
  vim.opt.runtimepath:append(install_path)
end

-- ADD INIT.LUA SETTINGS _NECESSARY_ FOR REPRODUCING THE ISSUE

-- Plugin: Wrapping
require("wrapping").setup({
    softener = { markdown = 10000000 },
    auto_set_mode_filetype_allowlist = {
        "asciidoc",
        "gitcommit",
        "latex",
        "mail",
        "markdown",
        "rst",
        "tex",
        "text",
    },
})

function OpenFixedQuickfix()
  local items = {
    {filename = "should-wrap.md", lnum = 1, col = 1, text = "example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1"},
    {filename = "should-not-wrap.yaml", lnum = 1, col = 1, text = "example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2"},
  }
  vim.fn.setqflist(items, ' ', 'Hard‑coded locations')
  vim.cmd('copen')
end

vim.api.nvim_create_user_command('FixedQuickfix', function()
  OpenFixedQuickfix()
end, {})
should-wrap.md
# Hello

The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.
should-not-wrap.yaml
should_not_wrap: "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"

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions