Files
nix-config/home/programs/neovim.nix

75 lines
1.7 KiB
Nix

{ lib, stable, ... }:
{
programs.nixvim = {
enable = true;
dependencies.ripgrep.enable = true;
dependencies.fd.enable = true;
colorschemes.catppuccin.enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
opts = {
number = true;
relativenumber = true;
shiftwidth = 4;
mouse = "";
};
globals.mapleader = " ";
plugins.lsp = {
enable = true;
servers = {
rust_analyzer = {
enable = true;
installCargo = true;
installRustc = true;
};
lua_ls.enable = true;
nil_ls.enable = true;
jdtls.enable = true;
tinymist = {
enable = true;
settings = {
formatterMode = "typstyle";
};
};
};
};
# There has been some drama, the repo was archived and stuff.
# plugins.tresitter.enable = true;
plugins.telescope.enable = true;
plugins.fidget.enable = true;
plugins.cmp = {
enable = false;
settings.sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
];
}
// lib.optionalAttrs (!stable) {
autEnableSources = true;
};
plugins.web-devicons.enable = true;
keymaps = [
{
action = "<cmd>lua vim.lsp.buf.format()<CR>";
key = "<leader>fm";
}
{
action = "<cmd>Telescope live_grep<CR>";
key = "<leader>fg";
}
{
action = "<cmd>Telescope find_files<CR>";
key = "<leader>ff";
}
];
}
// lib.optionalAttrs (!stable) {
lsp-format = {
enable = true;
lspServersToEnable = "all";
};
};
}