A highly customizable Neovim bufferline plugin that provides a framework for building your ideal tab interface.
nvim-cokeline is a Neovim bufferline plugin that provides a highly customizable framework for displaying and managing open buffers as tabs. It solves the problem of rigid, opinionated bufferlines by allowing users to define every aspect of their tab interface through Lua configuration, from visual styling to interactive behavior.
Neovim users who want complete control over their bufferline appearance and functionality, particularly those comfortable with Lua configuration and seeking to tailor their editor interface precisely to their workflow.
Developers choose nvim-cokeline for its unparalleled customization capabilities, allowing them to build exactly the bufferline they envision rather than settling for limited preset options, while maintaining performance with dynamic rendering and rich features like LSP integration and buffer picking.
:nose: A Neovim bufferline for people with addictive personalities
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Every bufferline aspect—styling, colors, components—is definable via Lua functions, enabling pixel-perfect layouts tailored to individual workflows, as shown in the extensive configuration examples.
Always centers the focused buffer and smartly truncates content to maintain visibility, even with many open buffers, preventing clutter while keeping navigation intuitive.
Supports clickable buffers, hover events with custom handlers, mouse-drag reordering, and close buttons, transforming the bufferline into an interactive management tool.
Components can change style based on real-time LSP error, warning, info, and hint counts, providing visual diagnostics without leaving the bufferline.
Requires writing Lua functions and component definitions from scratch, with no pre-styled defaults, making initial setup time-consuming and complex for non-Lua users.
Depends on plenary.nvim for core functionality and often nvim-web-devicons for icons, adding installation steps and potential version compatibility issues.
Features like dynamic rendering, hover events, and LSP integration may introduce latency on low-end systems or with an excessive number of buffers, as noted in the rendering section.