mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
|
{ lib, ... }:
|
||
|
lib.nixvim.plugins.mkNeovimPlugin {
|
||
|
name = "dropbar";
|
||
|
packPathName = "dropbar.nvim";
|
||
|
package = "dropbar-nvim";
|
||
|
|
||
|
maintainers = [ lib.maintainers.GaetanLepage ];
|
||
|
|
||
|
description = ''
|
||
|
A polished, IDE-like, highly-customizable winbar for Neovim with drop-down menu support and
|
||
|
multiple backends.
|
||
|
'';
|
||
|
|
||
|
settingsOptions = import ./settings-options.nix lib;
|
||
|
|
||
|
settingsExample = {
|
||
|
bar = {
|
||
|
enable = true;
|
||
|
sources.__raw = ''
|
||
|
function(buf, _)
|
||
|
local sources = require('dropbar.sources')
|
||
|
return {
|
||
|
require('dropbar.utils').source.fallback({
|
||
|
sources.lsp,
|
||
|
sources.treesitter,
|
||
|
sources.markdown,
|
||
|
})
|
||
|
}
|
||
|
end
|
||
|
'';
|
||
|
};
|
||
|
menu.keymaps = {
|
||
|
h = "<C-w>q";
|
||
|
l.__raw = ''
|
||
|
function()
|
||
|
local dropbar = require('dropbar')
|
||
|
local utils = require('dropbar.utils')
|
||
|
local menu = utils.menu.get_current()
|
||
|
if not menu then
|
||
|
return
|
||
|
end
|
||
|
local cursor = vim.api.nvim_win_get_cursor(menu.win)
|
||
|
local component = menu.entries[cursor[1]]:first_clickable(cursor[2])
|
||
|
if component then
|
||
|
menu:click_on(component, nil, 1, 'l')
|
||
|
end
|
||
|
end
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|