configuration.nix/home/desktop/programs/nixvim.nix

183 lines
4.3 KiB
Nix
Raw Normal View History

2023-04-01 23:20:13 +05:30
{ config, pkgs, ... }: {
programs.nixvim = {
enable = true;
vimAlias = true;
viAlias = true;
extraConfigLuaPre = ''
vim.g.gitblame_date_format = '%r'
vim.g.gitblame_message_when_not_committed = '''
2023-04-02 00:26:39 +05:30
vim.opt.list = true
vim.opt.listchars:append "space:"
vim.opt.listchars:append "eol:"
2023-04-01 23:20:13 +05:30
'';
options = {
autowrite = true;
background = "dark";
clipboard = "unnamedplus";
expandtab = true;
laststatus = 2;
list = true;
showmode = false;
swapfile = false;
number = true;
relativenumber = true;
shiftwidth = 2;
signcolumn = "yes";
smartindent = true;
tabstop = 2;
termguicolors = true;
updatetime = 100;
wrap = true;
2023-04-03 20:12:14 +05:30
splitright = true;
splitbelow = true;
};
maps = {
normal = {
2023-04-03 22:28:39 +05:30
"<C-a>" = ":bp<Return>";
"<C-d>" = ":bn<Return>";
2023-04-03 20:12:14 +05:30
"<C-h>" = {
silent = true;
action = ":noh<Return>";
};
"<leader>1" = {
silent = true;
action = ":NvimTreeToggle<Return>";
};
"<leader>`" = {
silent = true;
action = ":split term://zsh<Return>";
};
"<leader>ff" = {
silent = true;
action = "<cmd>Telescope find_files<cr>";
};
"<leader>fg" = {
silent = true;
action = "<cmd>Telescope live_grep<cr>";
};
"<leader>fb" = {
silent = true;
action = "<cmd>Telescope buffers<cr>";
};
};
2023-04-01 23:20:13 +05:30
};
extraPlugins = with pkgs.vimPlugins; [ dracula-nvim git-blame-nvim ];
colorscheme = "dracula";
plugins = {
2023-04-02 00:26:39 +05:30
comment-nvim.enable = true;
fugitive.enable = true;
gitsigns.enable = true;
trouble.enable = true;
2023-04-03 22:30:34 +05:30
nvim-cmp = {
enable = true;
2023-04-03 22:48:40 +05:30
snippet.expand = "luasnip";
2023-04-03 22:30:34 +05:30
sources = [
{ name = "buffer"; }
{ name = "nvim_lsp"; }
{ name = "nvim_lsp_document_symbol"; }
{ name = "nvim_lsp_signature_help"; }
{ name = "treesitter"; }
2023-04-03 22:48:40 +05:30
{ name = "luasnip"; }
2023-04-03 22:30:34 +05:30
];
};
2023-04-02 00:26:39 +05:30
cmp-buffer.enable = true;
cmp-nvim-lsp.enable = true;
2023-04-03 22:30:34 +05:30
cmp-nvim-lsp-document-symbol.enable = true;
cmp-nvim-lsp-signature-help.enable = true;
2023-04-02 00:26:39 +05:30
cmp-treesitter.enable = true;
2023-04-03 22:48:40 +05:30
cmp_luasnip.enable = true;
luasnip.enable = true;
2023-04-02 00:26:39 +05:30
bufferline = {
enable = true;
diagnostics = "nvim_lsp";
offsets = [
{
filetype = "NvimTree";
separator = true;
}
];
separatorStyle = "slant";
truncateNames = true;
};
2023-04-01 23:20:13 +05:30
treesitter = {
enable = true;
grammarPackages = with config.programs.nixvim.plugins.treesitter.package.builtGrammars; [
2023-04-02 00:26:39 +05:30
bash
dockerfile
gitcommit
gitignore
git_rebase
go
markdown
markdown_inline
nix
rust
toml
yaml
2023-04-01 23:20:13 +05:30
];
indent = true;
incrementalSelection.enable = true;
};
treesitter-context = {
enable = true;
};
treesitter-refactor = {
enable = true;
};
telescope = {
enable = true;
extensions = {
2023-04-02 00:26:39 +05:30
fzy-native = {
2023-04-01 23:20:13 +05:30
enable = true;
};
};
};
lualine = {
enable = true;
globalstatus = true;
};
2023-04-02 00:26:39 +05:30
indent-blankline = {
enable = true;
showEndOfLine = true;
};
nvim-tree = {
enable = true;
disableNetrw = true;
filesystemWatchers.enable = true;
};
2023-05-18 16:07:06 +05:30
null-ls = {
enable = true;
sources = {
code_actions = {
shellcheck.enable = true;
};
diagnostics = {
shellcheck.enable = true;
};
formatting = {
alejandra.enable = true;
};
};
};
2023-04-02 00:26:39 +05:30
lsp = {
enable = true;
servers = {
2023-05-18 16:07:06 +05:30
gopls = {
enable = true;
filetypes = [ "go" ];
};
nil_ls = {
enable = true;
filetypes = [ "nix" ];
};
rust-analyzer = {
enable = true;
filetypes = [ "rs" ];
};
2023-04-02 00:26:39 +05:30
};
};
2023-04-01 23:20:13 +05:30
};
};
}