mirror of
https://github.com/nix-community/nixvim.git
synced 2025-12-12 20:11:08 +01:00
plugins/tv: init
This commit is contained in:
parent
0671df0b57
commit
264ff4c5e6
3 changed files with 140 additions and 0 deletions
18
plugins/by-name/tv/default.nix
Normal file
18
plugins/by-name/tv/default.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
lib.nixvim.plugins.mkNeovimPlugin {
|
||||||
|
name = "tv";
|
||||||
|
package = "tv-nvim";
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
"fd"
|
||||||
|
"television"
|
||||||
|
];
|
||||||
|
|
||||||
|
maintainers = [ lib.maintainers.HeitorAugustoLN ];
|
||||||
|
|
||||||
|
settingsExample = {
|
||||||
|
global_keybindings.channels = "<leader>tv";
|
||||||
|
quickfix.auto_open = false;
|
||||||
|
tv_binary = "tv";
|
||||||
|
};
|
||||||
|
}
|
||||||
121
tests/test-sources/plugins/by-name/tv/default.nix
Normal file
121
tests/test-sources/plugins/by-name/tv/default.nix
Normal file
|
|
@ -0,0 +1,121 @@
|
||||||
|
{ lib }:
|
||||||
|
{
|
||||||
|
empty = {
|
||||||
|
plugins.tv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
plugins.tv = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
window = {
|
||||||
|
width = 0.8;
|
||||||
|
height = 0.8;
|
||||||
|
border = "none";
|
||||||
|
title = " tv.nvim ";
|
||||||
|
title_pos = "center";
|
||||||
|
};
|
||||||
|
|
||||||
|
channels = {
|
||||||
|
files = {
|
||||||
|
keybinding = "<C-p>";
|
||||||
|
handlers = {
|
||||||
|
"<CR>" = lib.nixvim.mkRaw "require('tv').handlers.open_as_files";
|
||||||
|
"<C-q>" = lib.nixvim.mkRaw "require('tv').handlers.send_to_quickfix";
|
||||||
|
"<C-s>" = lib.nixvim.mkRaw "require('tv').handlers.open_in_split";
|
||||||
|
"<C-v>" = lib.nixvim.mkRaw "require('tv').handlers.open_in_vsplit";
|
||||||
|
"<C-y>" = lib.nixvim.mkRaw "require('tv').handlers.copy_to_clipboard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
text = {
|
||||||
|
keybinding = "<leader><leader>";
|
||||||
|
handlers = {
|
||||||
|
"<CR>" = lib.nixvim.mkRaw "require('tv').handlers.open_at_line";
|
||||||
|
"<C-q>" = lib.nixvim.mkRaw "require('tv').handlers.send_to_quickfix";
|
||||||
|
"<C-s>" = lib.nixvim.mkRaw "require('tv').handlers.open_in_split";
|
||||||
|
"<C-v>" = lib.nixvim.mkRaw "require('tv').handlers.open_in_vsplit";
|
||||||
|
"<C-y>" = lib.nixvim.mkRaw "require('tv').handlers.copy_to_clipboard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
git-log = {
|
||||||
|
keybinding = "<leader>gl";
|
||||||
|
handlers = {
|
||||||
|
"<CR>" = lib.nixvim.mkRaw ''
|
||||||
|
function(entries, config)
|
||||||
|
if #entries > 0 then
|
||||||
|
vim.cmd('enew | setlocal buftype=nofile bufhidden=wipe')
|
||||||
|
vim.cmd('silent 0read !git show ' .. vim.fn.shellescape(entries[1]))
|
||||||
|
vim.cmd('1delete _ | setlocal filetype=git nomodifiable')
|
||||||
|
vim.cmd('normal! gg')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
"<C-y>" = lib.nixvim.mkRaw "require('tv').handlers.copy_to_clipboard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
git-branch = {
|
||||||
|
keybinding = "<leader>gb";
|
||||||
|
handlers = {
|
||||||
|
"<CR>" = lib.nixvim.mkRaw "require('tv').handlers.execute_shell_command('git checkout {}')";
|
||||||
|
"<C-y>" = lib.nixvim.mkRaw "require('tv').handlers.copy_to_clipboard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
docker-images = {
|
||||||
|
keybinding = "<leader>di";
|
||||||
|
window = {
|
||||||
|
title = " Docker Images ";
|
||||||
|
};
|
||||||
|
handlers = {
|
||||||
|
"<CR>" = lib.nixvim.mkRaw ''
|
||||||
|
function(entries, config)
|
||||||
|
if #entries > 0 then
|
||||||
|
vim.ui.input({
|
||||||
|
prompt = 'Container name: ',
|
||||||
|
default = 'my-container',
|
||||||
|
}, function(name)
|
||||||
|
if name and name ~= "" then
|
||||||
|
local cmd = string.format('docker run -it --name %s %s', name, entries[1])
|
||||||
|
vim.cmd('!' .. cmd)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
"<C-y>" = lib.nixvim.mkRaw "require('tv').handlers.copy_to_clipboard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
env = {
|
||||||
|
keybinding = "<leader>ev";
|
||||||
|
handlers = {
|
||||||
|
"<CR>" = lib.nixvim.mkRaw "require('tv').handlers.insert_at_cursor";
|
||||||
|
"<C-l>" = lib.nixvim.mkRaw "require('tv').handlers.insert_on_new_line";
|
||||||
|
"<C-y>" = lib.nixvim.mkRaw "require('tv').handlers.copy_to_clipboard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
alias = {
|
||||||
|
keybinding = "<leader>al";
|
||||||
|
handlers = {
|
||||||
|
"<CR>" = lib.nixvim.mkRaw "require('tv').handlers.insert_at_cursor";
|
||||||
|
"<C-y>" = lib.nixvim.mkRaw "require('tv').handlers.copy_to_clipboard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
global_keybindings.channels = "<leader>tv";
|
||||||
|
quickfix.auto_open = false;
|
||||||
|
tv_binary = "tv";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
example = {
|
||||||
|
plugins.tv = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
global_keybindings.channels = "<leader>tv";
|
||||||
|
quickfix.auto_open = false;
|
||||||
|
tv_binary = "tv";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -16,6 +16,7 @@ tro = "tro" # ./plugins/utils/spectre.nix
|
||||||
protols = "protols" # ./plugins/lsp/lsp-packages.nix
|
protols = "protols" # ./plugins/lsp/lsp-packages.nix
|
||||||
compatibilty = "compatibilty" # ./plugins/by-name/visual-multi/default.nix
|
compatibilty = "compatibilty" # ./plugins/by-name/visual-multi/default.nix
|
||||||
Maco = "Maco" # ./plugins/by-name/femaco
|
Maco = "Maco" # ./plugins/by-name/femaco
|
||||||
|
enew = "enew" # ./tests/test-sources/plugins/by-name/tv/default.nix
|
||||||
|
|
||||||
[type.patch]
|
[type.patch]
|
||||||
extend-glob = ["*.patch"]
|
extend-glob = ["*.patch"]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue