[feat] Improve the nixneovim config

This commit is contained in:
uttarayan21
2024-02-28 11:28:06 +05:30
parent 7966e89d2f
commit 186af6d51e
5 changed files with 247 additions and 33 deletions

View File

@@ -42,6 +42,7 @@ in {
(nerdfonts.override { fonts = [ "Hasklig" ]; })
mpv
] ++ (if device.isLinux then [
steam-run
(pkgs.catppuccin-gtk.override {
variant = "mocha";
size = "standard";

View File

@@ -2,26 +2,97 @@
imports = [ inputs.nixneovim.nixosModules.default ];
programs.nixneovim = {
enable = true;
extraConfigLua = ''
vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
vim.opt.foldtext = "v:lua.vim.treesitter.foldtext()"
'';
options = {
foldexpr = "nvim_treesitter#foldexpr()";
foldmethod = "expr";
number = true;
relativenumber = true;
tabstop = 4;
softtabstop = 4;
shiftwidth = 4;
expandtab = true;
hidden = true;
smartcase = true;
termguicolors = true;
signcolumn = "yes";
# "opt.list" = true;
wrap = true;
};
globals = {
mapleader = " ";
#copilot_no_tab_map = true;
};
plugins = {
lspconfig = {
enable = true;
servers = {
rust-analyzer.enable = true;
nil.enable = true;
nil = {
enable = true;
extraConfig = ''
settings = {
['nil'] = {
formatting = {
command = { "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" },
},
nix = {
flake = {
autoArchive = true,
},
},
},
},
'';
};
lua-language-server = {
enable = true;
onAttachExtra = ''
local lspconfig = require 'lspconfig'
local lsp_zero = require'lsp-zero'
local lua_opts = lsp_zero.nvim_lua_ls()
lspconfig.lua_ls.setup(lua_opts)
'';
};
};
onAttach = ''
vim.lsp.inlay_hint.enable(bufnr, true)
'';
};
todo-comments.enable = true;
lualine.enable = true;
commentary.enable = true;
surround.enable = true;
treesitter = {
enable = true;
indent = true;
};
telescope = {
enable = true;
extensions = {
manix.enable = true;
# plenary.enable = true;
};
};
nvim-cmp = {
enable = true;
completion = {
completeopt = "menu,menuone,popup,noselect";
};
sources = {
nvim_lsp.enable = true;
luasnip.enable = true;
buffer.enable = true;
path.enable = true;
cmdline.enable = true;
#copilot.enable = true;
git.enable = true;
};
snippet.luasnip.enable = true;
};
};
colorschemes = {
catppuccin = {
@@ -33,6 +104,7 @@
normal = {
"<leader>ff" = "require'telescope.builtin'.find_files";
"<leader>gg" = "require'telescope.builtin'.live_grep";
"<leader>mm" = "require'telescope-manix'.search";
"<leader>;" = "require'telescope.builtin'.buffers";
"<leader><leader>" = "'<c-^>'";
"vff" = "'<cmd>vertical Gdiffsplit<cr>'";
@@ -40,7 +112,27 @@
"gi" = "vim.lsp.buf.implementation";
"<leader>a" = "vim.lsp.buf.code_action";
"F" = "function() vim.lsp.buf.format({ async = true }) end";
# "<C-l>" = ''copilot#Accept("<CR>")'';
};
};
extraPlugins =
let
comfortable-motion = pkgs.fetchFromGitHub {
owner = "yuttie";
repo = "comfortable-motion.vim";
rev = "master";
sha256 = "sha256-S1LJXmShhpCJIg/FEPx3jFbmPpS/1U4MAQN2RY/nkI0";
};
in
[
comfortable-motion
pkgs.vimExtraPlugins.rustaceanvim
pkgs.vimExtraPlugins.cmp-nvim-lsp
pkgs.vimExtraPlugins.fidget-nvim
pkgs.vimExtraPlugins.rest-nvim
pkgs.vimExtraPlugins.lsp-zero-nvim
pkgs.vimPlugins.vim-abolish
];
};
}