145 lines
3.1 KiB
Nix
145 lines
3.1 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
config = {
|
|
colorschemes.gruvbox = {
|
|
enable = true;
|
|
settings = {
|
|
transparent_mode = true;
|
|
italics = {
|
|
strings = false;
|
|
emphasis = true;
|
|
comments = true;
|
|
operators = true;
|
|
folds = true;
|
|
};
|
|
underline = true;
|
|
undercurl = true;
|
|
bold = true;
|
|
contrast = "hard";
|
|
terminal_colors = true;
|
|
};
|
|
};
|
|
|
|
highlight = {
|
|
Normal.bg = "NONE";
|
|
Normal.ctermbg = "NONE";
|
|
};
|
|
|
|
vimAlias = true;
|
|
viAlias = true;
|
|
|
|
clipboard = {
|
|
register = "unnamedplus";
|
|
providers.wl-copy.enable = true;
|
|
};
|
|
|
|
options = {
|
|
number = true;
|
|
relativenumber = true;
|
|
|
|
shiftwidth = 4;
|
|
softtabstop = 4;
|
|
tabstop = 4;
|
|
expandtab = true;
|
|
smartindent = true;
|
|
};
|
|
|
|
globals = {
|
|
mapleader = ",";
|
|
};
|
|
|
|
extraPlugins = [ pkgs.vimPlugins.vim-airline-themes ];
|
|
|
|
plugins = {
|
|
nvim-autopairs.enable = true;
|
|
undotree.enable = true;
|
|
which-key.enable = true;
|
|
fugitive.enable = true;
|
|
luasnip.enable = true;
|
|
surround.enable = true;
|
|
gitsigns.enable = true;
|
|
treesitter = {
|
|
enable = true;
|
|
indent = true;
|
|
folding = false;
|
|
};
|
|
|
|
telescope = {
|
|
enable = true;
|
|
extensions = {
|
|
frecency.enable = true;
|
|
};
|
|
keymaps = {
|
|
"<leader>fg" = "live_grep";
|
|
"<leader>ff" = "find_files";
|
|
"<leader>fb" = "buffers";
|
|
};
|
|
};
|
|
|
|
airline = {
|
|
enable = true;
|
|
settings = {
|
|
powerline_fonts = true;
|
|
theme = "base16_gruvbox_dark_hard";
|
|
};
|
|
};
|
|
|
|
lsp = {
|
|
enable = true;
|
|
|
|
servers = {
|
|
tsserver.enable = true;
|
|
jsonls.enable = true;
|
|
html.enable = true;
|
|
eslint.enable = true;
|
|
dockerls.enable = true;
|
|
|
|
pyright.enable = true;
|
|
lua-ls = {
|
|
enable = true;
|
|
settings.telemetry.enable = false;
|
|
};
|
|
rust-analyzer = {
|
|
enable = true;
|
|
installCargo = true;
|
|
installRustc = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
cmp = {
|
|
enable = true;
|
|
autoEnableSources = true;
|
|
|
|
settings = {
|
|
sources = [
|
|
{name = "nvim_lsp";}
|
|
{name = "path";}
|
|
{name = "buffer";}
|
|
{name = "luasnip";}
|
|
];
|
|
mapping = {
|
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
|
"<Tab>" = ''
|
|
cmp.mapping(
|
|
function(fallback)
|
|
local luasnip = require('luasnip')
|
|
if cmp.visible() then
|
|
cmp.select_next_item()
|
|
elseif luasnip.expandable() then
|
|
luasnip.expand()
|
|
elseif luasnip.expand_or_jumpable() then
|
|
luasnip.expand_or_jump()
|
|
else
|
|
fallback()
|
|
end
|
|
end, { 'i', 'c' })
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|