mirror of
https://gitlab.com/Zaney/zaneyos.git
synced 2024-12-02 11:33:07 +01:00
227 lines
5.6 KiB
Nix
227 lines
5.6 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
let
|
|
plugins = pkgs.vimPlugins;
|
|
theme = config.colorScheme.palette;
|
|
in {
|
|
programs.nixvim = {
|
|
enable = true;
|
|
|
|
globals.mapleader = " "; # Sets the leader key to space
|
|
|
|
options = {
|
|
clipboard="unnamedplus";
|
|
number = true; # Show line numbers
|
|
relativenumber = true; # Show relative line numbers
|
|
shiftwidth = 2; # Tab width should be 2
|
|
softtabstop = 2;
|
|
smartindent = true;
|
|
wrap = false;
|
|
swapfile = false;
|
|
backup = false;
|
|
hlsearch = false;
|
|
incsearch = true;
|
|
termguicolors = true;
|
|
scrolloff = 8;
|
|
updatetime = 50;
|
|
};
|
|
|
|
colorschemes.base16.enable = true;
|
|
colorschemes.base16.customColorScheme = {
|
|
base00 = "#${theme.base00}";
|
|
base01 = "#${theme.base01}";
|
|
base02 = "#${theme.base02}";
|
|
base03 = "#${theme.base03}";
|
|
base04 = "#${theme.base04}";
|
|
base05 = "#${theme.base05}";
|
|
base06 = "#${theme.base06}";
|
|
base07 = "#${theme.base07}";
|
|
base08 = "#${theme.base08}";
|
|
base09 = "#${theme.base09}";
|
|
base0A = "#${theme.base0A}";
|
|
base0B = "#${theme.base0B}";
|
|
base0C = "#${theme.base0C}";
|
|
base0D = "#${theme.base0D}";
|
|
base0E = "#${theme.base0E}";
|
|
base0F = "#${theme.base0F}";
|
|
};
|
|
|
|
plugins = {
|
|
barbecue.enable = true;
|
|
gitsigns.enable = true;
|
|
toggleterm.enable = true;
|
|
telescope = {
|
|
enable = true;
|
|
keymaps = {
|
|
"<leader>ff" = "find_files";
|
|
};
|
|
};
|
|
neo-tree.enable = true;
|
|
indent-blankline.enable = true;
|
|
nvim-colorizer.enable = true;
|
|
nvim-autopairs.enable = true;
|
|
nix.enable = true;
|
|
comment-nvim.enable = true;
|
|
lualine = {
|
|
enable = true;
|
|
};
|
|
startup = {
|
|
enable = true;
|
|
theme = "dashboard";
|
|
};
|
|
lint = {
|
|
enable = true;
|
|
lintersByFt = {
|
|
text = ["vale"];
|
|
json = ["jsonlint"];
|
|
markdown = ["vale"];
|
|
rst = ["vale"];
|
|
ruby = ["ruby"];
|
|
janet = ["janet"];
|
|
inko = ["inko"];
|
|
clojure = ["clj-kondo"];
|
|
dockerfile = ["hadolint"];
|
|
terraform = ["tflint"];
|
|
typscriptreact = ["prettier_eslint"];
|
|
};
|
|
};
|
|
lsp = {
|
|
enable = true;
|
|
servers = {
|
|
tsserver.enable = true;
|
|
lua-ls.enable = true;
|
|
bashls.enable = true;
|
|
rust-analyzer = {
|
|
enable = true;
|
|
installRustc = true;
|
|
installCargo = true;
|
|
};
|
|
nixd.enable = true;
|
|
html.enable = true;
|
|
ccls.enable = true;
|
|
cmake.enable = true;
|
|
csharp-ls.enable = true;
|
|
cssls.enable = true;
|
|
gopls.enable = true;
|
|
jsonls.enable = true;
|
|
pyright.enable = true;
|
|
tailwindcss.enable = true;
|
|
};
|
|
};
|
|
lsp-lines.enable = true;
|
|
treesitter = {
|
|
enable = true;
|
|
nixGrammars = true;
|
|
};
|
|
nvim-cmp = {
|
|
enable = true;
|
|
autoEnableSources = true;
|
|
sources = [
|
|
{ name = "nvim_lsp"; }
|
|
{ name = "path"; }
|
|
{ name = "buffer"; }
|
|
];
|
|
mapping = {
|
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
|
"<Tab>" = {
|
|
action = ''cmp.mapping.select_next_item()'';
|
|
modes = [ "i" "s" ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# FOR NEOVIDE
|
|
extraConfigLua = ''
|
|
vim.opt.guifont = "JetBrainsMono\\ NFM,Noto_Color_Emoji:h14"
|
|
vim.g.neovide_cursor_animation_length = 0.05
|
|
|
|
local colors = {
|
|
blue = '#${theme.base0D}',
|
|
cyan = '#${theme.base0C}',
|
|
black = '#${theme.base00}',
|
|
white = '#${theme.base05}',
|
|
red = '#${theme.base08}',
|
|
violet = '#${theme.base0E}',
|
|
grey = '#${theme.base02}',
|
|
}
|
|
|
|
local bubbles_theme = {
|
|
normal = {
|
|
a = { fg = colors.black, bg = colors.violet },
|
|
b = { fg = colors.white, bg = colors.grey },
|
|
c = { fg = colors.black, bg = colors.black },
|
|
},
|
|
|
|
insert = { a = { fg = colors.black, bg = colors.blue } },
|
|
visual = { a = { fg = colors.black, bg = colors.cyan } },
|
|
replace = { a = { fg = colors.black, bg = colors.red } },
|
|
|
|
inactive = {
|
|
a = { fg = colors.white, bg = colors.black },
|
|
b = { fg = colors.white, bg = colors.black },
|
|
c = { fg = colors.black, bg = colors.black },
|
|
},
|
|
}
|
|
|
|
require('lualine').setup {
|
|
options = {
|
|
theme = bubbles_theme,
|
|
component_separators = '|',
|
|
section_separators = { left = '', right = '' },
|
|
},
|
|
sections = {
|
|
lualine_a = {
|
|
{ 'mode', separator = { left = '' }, right_padding = 2 },
|
|
},
|
|
lualine_b = { 'filename', 'branch' },
|
|
lualine_c = { 'fileformat' },
|
|
lualine_x = {},
|
|
lualine_y = { 'filetype', 'progress' },
|
|
lualine_z = {
|
|
{ 'location', separator = { right = '' }, left_padding = 2 },
|
|
},
|
|
},
|
|
inactive_sections = {
|
|
lualine_a = { 'filename' },
|
|
lualine_b = {},
|
|
lualine_c = {},
|
|
lualine_x = {},
|
|
lualine_y = {},
|
|
lualine_z = { 'location' },
|
|
},
|
|
tabline = {},
|
|
extensions = {},
|
|
}
|
|
'';
|
|
|
|
extraConfigVim = ''
|
|
set noshowmode
|
|
inoremap jj <ESC>
|
|
nnoremap <silent><c-t> <Cmd>exe v:count1 . "ToggleTerm"<CR>
|
|
inoremap <silent><c-t> <Esc><Cmd>exe v:count1 . "ToggleTerm"<CR>
|
|
'';
|
|
|
|
keymaps = [
|
|
{
|
|
mode = "n";
|
|
key = "<leader>fb";
|
|
action = "<cmd>Neotree reveal right<CR>";
|
|
options.silent = false;
|
|
}
|
|
{
|
|
key = "<Tab>";
|
|
action = ":bnext<CR>";
|
|
options.silent = false;
|
|
}
|
|
{
|
|
key = "<S-Tab>";
|
|
action = ":bprev<CR>";
|
|
options.silent = false;
|
|
}
|
|
];
|
|
|
|
|
|
};
|
|
}
|