akinsho / akinsho/bufferline.nvim

[Feature Request]: Expose next_item API

Open
#1,032 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Lua
Stars
4.4k
Forks
240
PR merge metrics
No merged PRs in 30d

Description

### What?

Expose next_item api, so as user could get a next buffer a potential call of cycle in a given direction or BufferLineCyclePrev cmd move to.

### Why?

In order to easier integrate plugins such as bufdel.
At the moment a user is required to call a private API (I guess so) and duplicate a part of cycle command, e.g.

```lua
{
"ojroques/nvim-bufdel",
opts = {
next = function()
-- TODO: if it's first then next, otherwise prev
local state = require("bufferline.lazy").require("bufferline.state")
local index = require("bufferline.commands").get_current_element_index(state)
if not index then
return
end

local next_index = index - 1

if next_index <= 0 then
next_index = #state.components
end

local item = state.components[next_index]
if not item then
return vim.notify("This " .. item.type .. " does not exist", vim.log.levels.ERROR)
end
return item.id
end,
quit = true,
},
},
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.