crapload of nvim configuration
This commit is contained in:
parent
f265752a8a
commit
3a3d4f847b
17 changed files with 662 additions and 79 deletions
|
@ -84,7 +84,7 @@
|
||||||
./nixos/gaming.nix
|
./nixos/gaming.nix
|
||||||
./nixos/gui-pkgs.nix
|
./nixos/gui-pkgs.nix
|
||||||
./nixos/nvidia.nix
|
./nixos/nvidia.nix
|
||||||
./nixos/nvim/nvim.nix
|
./nixos/nvim
|
||||||
./nixos/ollama.nix
|
./nixos/ollama.nix
|
||||||
./nixos/pkg.nix
|
./nixos/pkg.nix
|
||||||
./nixos/shell.nix
|
./nixos/shell.nix
|
||||||
|
|
18
nixos/nvim/default.nix
Normal file
18
nixos/nvim/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./keymaps.nix
|
||||||
|
./settings.nix
|
||||||
|
|
||||||
|
./plugins/cmp.nix
|
||||||
|
./plugins/conform.nix
|
||||||
|
./plugins/dashboard.nix
|
||||||
|
./plugins/devcontainer.nix
|
||||||
|
./plugins/lazygit.nix
|
||||||
|
./plugins/lsp.nix
|
||||||
|
./plugins/lualine.nix
|
||||||
|
./plugins/neo-tree.nix
|
||||||
|
#./plugins/rooter.nix
|
||||||
|
./plugins/snacks.nix
|
||||||
|
./plugins/telescope.nix
|
||||||
|
];
|
||||||
|
}
|
52
nixos/nvim/keymaps.nix
Normal file
52
nixos/nvim/keymaps.nix
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n"; # Normal mode
|
||||||
|
key = "<Space>";
|
||||||
|
action = "<Nop>";
|
||||||
|
options.silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<Tab>";
|
||||||
|
action = ":bnext<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Next Buffer";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<S-Tab>";
|
||||||
|
action = ":bprevious<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Previous Buffer";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>w";
|
||||||
|
action = ":w<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Save Buffer to File";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>q";
|
||||||
|
action = ":qa<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Quit All";
|
||||||
|
silent = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
globals = {
|
||||||
|
mapleader = " ";
|
||||||
|
maplocalleader = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,54 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [ tmux ];
|
|
||||||
environment.variables = {
|
|
||||||
NNN_FIFO = "$XDG_RUNTIME_DIR/nnn.fifo";
|
|
||||||
NNN_ICONLOOKUP = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPlugins = [
|
|
||||||
(pkgs.vimUtils.buildVimPlugin {
|
|
||||||
# https://github.com/luukvbaal/nnn.nvim
|
|
||||||
name = "nnn.nvim";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "luukvbaal";
|
|
||||||
repo = "nnn.nvim";
|
|
||||||
rev = "662034c73718885ee599ad9fb193ab1ede70fbcb";
|
|
||||||
sha256 = "sha256-8+ax8n1fA4jgJugvWtRXkad4YM7TmAAsAopzalmGu/4=";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
extraConfigLua = ''
|
|
||||||
local builtin = require("nnn").builtin
|
|
||||||
require("nnn").setup({
|
|
||||||
explorer = {
|
|
||||||
cmd = "nnn -G -Pp",
|
|
||||||
},
|
|
||||||
picker = {
|
|
||||||
cmd = "tmux new-session nnn -G -Pp",
|
|
||||||
style = { border = "rounded" },
|
|
||||||
session = "shared",
|
|
||||||
},
|
|
||||||
auto_open = {
|
|
||||||
setup = "explorer",
|
|
||||||
tabpage = "explorer",
|
|
||||||
ft_ignore = {
|
|
||||||
"gitcommit",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
replace_netrw = "picker",
|
|
||||||
offset = true,
|
|
||||||
mappings = {
|
|
||||||
{ "<C-t>", builtin.open_in_tab }, -- open file(s) in tab
|
|
||||||
{ "<C-s>", builtin.open_in_split }, -- open file(s) in split
|
|
||||||
{ "<C-v>", builtin.open_in_vsplit }, -- open file(s) in vertical split
|
|
||||||
{ "<C-p>", builtin.open_in_preview }, -- open file in preview split keeping nnn focused
|
|
||||||
{ "<C-y>", builtin.copy_to_clipboard }, -- copy file(s) to clipboard
|
|
||||||
{ "<C-w>", builtin.cd_to_path }, -- cd to file directory
|
|
||||||
{ "<C-e>", builtin.populate_cmdline }, -- populate cmdline (:) with file(s)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./nnn.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPackages = with pkgs; [ fd ];
|
|
||||||
enable = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
colorschemes.catppuccin.enable = true;
|
|
||||||
plugins = {
|
|
||||||
conform-nvim = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
treesitter.enable = true;
|
|
||||||
cmp.enable = true;
|
|
||||||
cmp-nvim-lsp.enable = true;
|
|
||||||
lsp.enable = true;
|
|
||||||
bufferline.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
16
nixos/nvim/plugins/cmp.nix
Normal file
16
nixos/nvim/plugins/cmp.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
settings.sources = [
|
||||||
|
{ name = "nvim_lsp"; }
|
||||||
|
{ name = "buffer"; }
|
||||||
|
{ name = "path"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
copilot-lua.enable = true;
|
||||||
|
copilot-cmp.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
152
nixos/nvim/plugins/conform.nix
Normal file
152
nixos/nvim/plugins/conform.nix
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
shellcheck
|
||||||
|
shellharden
|
||||||
|
shfmt
|
||||||
|
ruff
|
||||||
|
stylua
|
||||||
|
nixfmt-rfc-style
|
||||||
|
clang-tools
|
||||||
|
csharpier
|
||||||
|
];
|
||||||
|
plugins = {
|
||||||
|
conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
bash = [
|
||||||
|
"shellcheck"
|
||||||
|
"shellharden"
|
||||||
|
"shfmt"
|
||||||
|
];
|
||||||
|
python = [
|
||||||
|
"ruff_fix"
|
||||||
|
"ruff_format"
|
||||||
|
"ruff_organize_imports"
|
||||||
|
];
|
||||||
|
c = [ "clang-format" ];
|
||||||
|
cpp = [ "clang-format" ];
|
||||||
|
cs = [ "csharpier" ];
|
||||||
|
csharp = [ "csharpier" ];
|
||||||
|
lua = [ "stylua" ];
|
||||||
|
nix = [ "nixfmt" ];
|
||||||
|
javascript = [ "prettier" ];
|
||||||
|
javascriptreact = [ "prettier" ];
|
||||||
|
typescript = [ "prettier" ];
|
||||||
|
typescriptreact = [ "prettier" ];
|
||||||
|
markdown = [ "prettier" ];
|
||||||
|
yaml = [ "prettier" ];
|
||||||
|
json = [ "prettier" ];
|
||||||
|
svelte = [ "prettier" ];
|
||||||
|
html = [ "prettier" ];
|
||||||
|
css = [ "prettier" ];
|
||||||
|
graphql = [ "prettier" ];
|
||||||
|
"_" = [
|
||||||
|
"trim_whitespace"
|
||||||
|
"trim_newlines"
|
||||||
|
];
|
||||||
|
format_on_save = # Lua
|
||||||
|
''
|
||||||
|
function(bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if slow_format_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_format(err)
|
||||||
|
if err and err:match("timeout$") then
|
||||||
|
slow_format_filetypes[vim.bo[bufnr].filetype] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return { timeout_ms = 200, lsp_fallback = true }, on_format
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
format_after_save = # Lua
|
||||||
|
''
|
||||||
|
function(bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not slow_format_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
return { lsp_fallback = true }
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
log_level = "warn";
|
||||||
|
notify_on_error = true;
|
||||||
|
notify_no_formatters = true;
|
||||||
|
default_format_opts = {
|
||||||
|
lsp_format = "fallback";
|
||||||
|
timeout_ms = 300;
|
||||||
|
};
|
||||||
|
formatters = {
|
||||||
|
shellcheck = {
|
||||||
|
command = lib.getExe pkgs.shellcheck;
|
||||||
|
};
|
||||||
|
shfmt = {
|
||||||
|
command = lib.getExe pkgs.shfmt;
|
||||||
|
};
|
||||||
|
shellharden = {
|
||||||
|
command = lib.getExe pkgs.shellharden;
|
||||||
|
};
|
||||||
|
nixfmt = {
|
||||||
|
command = lib.getExe pkgs.nixfmt-rfc-style;
|
||||||
|
};
|
||||||
|
stylua = {
|
||||||
|
command = lib.getExe pkgs.stylua;
|
||||||
|
};
|
||||||
|
clang-format = {
|
||||||
|
command = "${pkgs.clang-tools}/bin/clang-format";
|
||||||
|
};
|
||||||
|
csharpier = {
|
||||||
|
command = lib.getExe pkgs.csharpier;
|
||||||
|
};
|
||||||
|
ruff_fix = {
|
||||||
|
command = lib.getExe pkgs.ruff;
|
||||||
|
};
|
||||||
|
ruff_format = {
|
||||||
|
command = lib.getExe pkgs.ruff;
|
||||||
|
};
|
||||||
|
ruff_organize_imports = {
|
||||||
|
command = lib.getExe pkgs.ruff;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
luaConfig.post = ''
|
||||||
|
vim.api.nvim_create_user_command("Format", function(args)
|
||||||
|
local range = nil
|
||||||
|
if args.count ~= -1 then
|
||||||
|
local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1]
|
||||||
|
range = {
|
||||||
|
start = { args.line1, 0 },
|
||||||
|
["end"] = { args.line2, end_line:len() },
|
||||||
|
}
|
||||||
|
end
|
||||||
|
require("conform").format({ async = true, lsp_format = "fallback", range = range })
|
||||||
|
end, { range = true })
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>f";
|
||||||
|
action = ":Format<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Format";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
48
nixos/nvim/plugins/dashboard.nix
Normal file
48
nixos/nvim/plugins/dashboard.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
dashboard = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
change_to_vcs_root = true;
|
||||||
|
config = {
|
||||||
|
footer = [
|
||||||
|
"Made with ❤️"
|
||||||
|
];
|
||||||
|
header = [
|
||||||
|
"███╗ ██╗██╗██╗ ██╗██╗ ██╗██╗███╗ ███╗"
|
||||||
|
"████╗ ██║██║╚██╗██╔╝██║ ██║██║████╗ ████║"
|
||||||
|
"██╔██╗ ██║██║ ╚███╔╝ ██║ ██║██║██╔████╔██║"
|
||||||
|
"██║╚██╗██║██║ ██╔██╗ ╚██╗ ██╔╝██║██║╚██╔╝██║"
|
||||||
|
"██║ ╚████║██║██╔╝ ██╗ ╚████╔╝ ██║██║ ╚═╝ ██║"
|
||||||
|
"╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝"
|
||||||
|
];
|
||||||
|
mru = {
|
||||||
|
limit = 20;
|
||||||
|
};
|
||||||
|
project = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
shortcut = [
|
||||||
|
{
|
||||||
|
action = {
|
||||||
|
__raw = "function(path) vim.cmd('Telescope find_files') end";
|
||||||
|
};
|
||||||
|
desc = "Files";
|
||||||
|
group = "Label";
|
||||||
|
icon = " ";
|
||||||
|
icon_hl = "@variable";
|
||||||
|
key = "f";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "Telescope repo list";
|
||||||
|
desc = " Projects";
|
||||||
|
group = "DiagnosticHint";
|
||||||
|
key = "p";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
theme = "hyper";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
20
nixos/nvim/plugins/devcontainer.nix
Normal file
20
nixos/nvim/plugins/devcontainer.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [ devcontainer ];
|
||||||
|
extraPlugins = [
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
# https://codeberg.org/esensar/nvim-dev-container
|
||||||
|
name = "nvim-dev-container";
|
||||||
|
src = pkgs.fetchgit {
|
||||||
|
url = "https://codeberg.org/esensar/nvim-dev-container";
|
||||||
|
rev = "ba9666bdaec23cfe8087c0b6bb0a15c93ec8ba87";
|
||||||
|
sha256 = "sha256-x1+HxC/wDsR1MukXzteIcoOeUJ8XxXvbujL5/XPvf6Q=";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
extraConfigLua = ''
|
||||||
|
require("devcontainer").setup({})
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
19
nixos/nvim/plugins/lazygit.nix
Normal file
19
nixos/nvim/plugins/lazygit.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.lazygit = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
extraConfigLua = ''require("telescope").load_extension("lazygit")'';
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>g";
|
||||||
|
action = "<cmd>LazyGit<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "LazyGit";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
129
nixos/nvim/plugins/lsp.nix
Normal file
129
nixos/nvim/plugins/lsp.nix
Normal file
|
@ -0,0 +1,129 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
basedpyright
|
||||||
|
ruff
|
||||||
|
nil
|
||||||
|
nixfmt-rfc-style
|
||||||
|
(callPackage ../../../packages/luau-lsp.nix { inherit pkgs; })
|
||||||
|
];
|
||||||
|
plugins = {
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
postConfig = ''
|
||||||
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
group = vim.api.nvim_create_augroup('lsp_attach_disable_ruff_hover', { clear = true }),
|
||||||
|
callback = function(args)
|
||||||
|
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||||
|
if client == nil then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if client.name == 'ruff' then
|
||||||
|
-- Disable hover in favor of Pyright
|
||||||
|
client.server_capabilities.hoverProvider = false
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
desc = 'LSP: Disable hover capability from Ruff',
|
||||||
|
})
|
||||||
|
require('lspconfig').basedpyright.setup { settings = { pyright = { disableOrganizeImports = true } } }
|
||||||
|
require('lspconfig').ruff.setup { }
|
||||||
|
require('lspconfig').nil_ls.setup {
|
||||||
|
cmd = { "${pkgs.nil}/bin/nil" },
|
||||||
|
settings = {
|
||||||
|
['nil'] = {
|
||||||
|
formatting = {
|
||||||
|
command = { "${pkgs.nixfmt-rfc-style}/bin/nixfmt" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
--require('luau-lsp').setup { }
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
trouble = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
auto_refresh = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPlugins = [
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
# https://github.com/lopi-py/luau-lsp.nvim
|
||||||
|
name = "luau-lsp.nvim";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "lopi-py";
|
||||||
|
repo = "luau-lsp.nvim";
|
||||||
|
rev = "v1.6.0";
|
||||||
|
sha256 = "sha256-8+ax8n1fA4jgJugvWtRXkad4YM7TmAAsAopzalmGu/4=";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>x";
|
||||||
|
action = ":Trouble<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Trouble";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xx";
|
||||||
|
action = ":Trouble diagnostics toggle<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Diagnostics (Trouble)";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xX";
|
||||||
|
action = ":Trouble diagnostics toggle filter.buf=0<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Buffer Diagnostics (Trouble)";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xs";
|
||||||
|
action = ":Trouble symbols toggle focus=false<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Symbols (Trouble)";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xd";
|
||||||
|
action = ":Trouble lsp_definitions toggle<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "LSP Definitions / references / ... (Trouble)";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xl";
|
||||||
|
action = ":Trouble loclist toggle<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Location List (Trouble)";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xq";
|
||||||
|
action = ":Trouble qflist toggle<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Quickfix (Trouble)";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
8
nixos/nvim/plugins/lualine.nix
Normal file
8
nixos/nvim/plugins/lualine.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.lualine = {
|
||||||
|
enable = true;
|
||||||
|
settings = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
19
nixos/nvim/plugins/neo-tree.nix
Normal file
19
nixos/nvim/plugins/neo-tree.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.neo-tree = {
|
||||||
|
enable = true;
|
||||||
|
enableGitStatus = true;
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>e";
|
||||||
|
action = ":Neotree toggle<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Toggle Neotree";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
20
nixos/nvim/plugins/rooter.nix
Normal file
20
nixos/nvim/plugins/rooter.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPlugins = [
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
# https://codeberg.org/esensar/nvim-dev-container
|
||||||
|
name = "vim-rooter";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "airblade";
|
||||||
|
repo = "vim-rooter";
|
||||||
|
rev = "51402fb77c4d6ae94994e37dc7ca13bec8f4afcc";
|
||||||
|
sha256 = "sha256-JrpYcQ/mJQQUvDdsYlaaep6J6/irDIrCAb8W49JHqzk=";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
extraConfigLua = ''
|
||||||
|
require("vim-rooter").setup({})
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
14
nixos/nvim/plugins/snacks.nix
Normal file
14
nixos/nvim/plugins/snacks.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.snacks = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
bigfile.enabled = true;
|
||||||
|
notifier = {
|
||||||
|
enable = true;
|
||||||
|
timeout = 3000;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
114
nixos/nvim/plugins/telescope.nix
Normal file
114
nixos/nvim/plugins/telescope.nix
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
fd
|
||||||
|
plocate
|
||||||
|
glow
|
||||||
|
];
|
||||||
|
plugins = {
|
||||||
|
telescope = {
|
||||||
|
enable = true;
|
||||||
|
extensions = {
|
||||||
|
fzf-native.enable = true;
|
||||||
|
};
|
||||||
|
enabledExtensions = [
|
||||||
|
"repo"
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
defaults = {
|
||||||
|
layout_config = {
|
||||||
|
prompt_position = "bottom";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPlugins = [
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
# https://codeberg.org/esensar/nvim-dev-container
|
||||||
|
name = "telescope-repo.nvim";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "cljoly";
|
||||||
|
repo = "telescope-repo.nvim";
|
||||||
|
rev = "a5395a4bf0fd742cc46b4e8c50e657062f548ba9";
|
||||||
|
sha256 = "sha256-cIovB45hfG4lDK0VBIgK94dk2EvGXZtfAJETkQ+lrcw=";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>t";
|
||||||
|
action = ":Telescope<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Telescope";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tf";
|
||||||
|
action = ":Telescope find_files<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Find Files";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tg";
|
||||||
|
action = ":Telescope live_grep<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Live Grep";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tb";
|
||||||
|
action = ":Telescope buffers<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Buffers";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>fc";
|
||||||
|
action = ":Telescope colorscheme<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Color Schemes";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tk";
|
||||||
|
action = ":Telescope keymaps<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Keymaps";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tp";
|
||||||
|
action = ":Telescope repo list<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Projects";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tc";
|
||||||
|
action = ":Telescope commands<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Commands";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
32
nixos/nvim/settings.nix
Executable file
32
nixos/nvim/settings.nix
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [ fd ];
|
||||||
|
enable = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
colorschemes.catppuccin.enable = true;
|
||||||
|
plugins = {
|
||||||
|
# lz-n = {
|
||||||
|
# enable = true;
|
||||||
|
# lazyLoad = {
|
||||||
|
# enable = true;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
treesitter.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
|
web-devicons.enable = true;
|
||||||
|
bufferline.enable = true;
|
||||||
|
glow.enable = true;
|
||||||
|
gitblame.enable = true;
|
||||||
|
git-conflict.enable = true;
|
||||||
|
nix.enable = true;
|
||||||
|
nix-develop.enable = true;
|
||||||
|
image.enable = true;
|
||||||
|
which-key.enable = true;
|
||||||
|
neocord.enable = true;
|
||||||
|
rainbow-delimiters.enable = true;
|
||||||
|
neoconf.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue