Skip to content

[Bug]: Offset only uses one window #789

@FalcoGer

Description

@FalcoGer

Is there an existing issue for this?

  • I have searched the existing issues

What happened?

When multiple offsets are defined, then opening a new window will only apply the offset configuration to one window, usually the leftmost one or the last one opened. It behaves oddly.

For example when having an offset for filetype "help" and an offset for filetype "NvimTree", then opening NvimTree will produce the correct behavior. If you then however open the help with :vertical help, the help window gets the offset configuration applied but the nvim-tree gets it's text deleted.

To reproduce:

  1. Open nvim and only have one buffer open that doesn't have an offset setting for it's filetype

  2. Open nvim-tree
    image

  3. Open vertical help
    image

  4. Notice help doesn't get the title and instead the bufferline starts over the help window

  5. Close nvim-tree
    image

  6. Notice that help now gets the offset applied where before it did not

Windows that open on the right, such as tagbar, also behave oddly when opening and closing them mixed with opening and closing multiple windows that open on the left, such as undotree.

What did you expect to happen?

Vertically split windows always get their header text and all the offsets are added for the bufferline, except of course for the offsets for windows on the right, which should be handled separately

Config

-- ...
offsets = {
    {
        filetype = "NvimTree",
        text = function()
            return "NVIMTREE TEXT"
            -- return vim.fn.getcwd()
        end,
        -- highlight = "Directory",
        text_align = "left",
        separator = true
    },
    {
        filetype = "NERDTree",
        text = function()
            return vim.fn.getcwd()
        end,
        highlight = "Directory",
        text_align = "left",
        separator = true
    },
    {
        filetype = "undotree",
        text = "Undo Tree",
        text_align = "left",
        separator = true
    },
    {
        filetype = "diff",
        text = "Diff",
        text_align = "left",
        separator = true
    },
    {
        filetype = "tagbar",
        text = "Tags",
        text_align = "left",
        separator = true
    },
    {
        filetype = "help",
        text = "Help",
        text_align = "left",
        separator = true
    }
},
-- ...

Additional Information

N/A

commit

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions