100 lines
2.1 KiB
Nix
100 lines
2.1 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 = " ";
|
|
lsp = {
|
|
servers = {
|
|
rust_analyzer = {
|
|
enable = true;
|
|
};
|
|
lua_ls.enable = true;
|
|
nil_ls.enable = true;
|
|
tinymist = {
|
|
enable = true;
|
|
config = {
|
|
formatterMode = "typstyle";
|
|
};
|
|
};
|
|
clangd = {
|
|
enable = true;
|
|
config = {
|
|
filetypes = [ "c" ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
plugins.lsp.enable = true;
|
|
# 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) {
|
|
autoEnableSources = true;
|
|
};
|
|
keymaps = [
|
|
{
|
|
key = "<leader>fg";
|
|
action = "<cmd>Telescope live_grep<CR>";
|
|
}
|
|
{
|
|
key = "<leader>ff";
|
|
action = "<cmd>Telescope find_files<CR>";
|
|
}
|
|
];
|
|
plugins.web-devicons.enable = true;
|
|
lsp.keymaps = [
|
|
{
|
|
key = "<leader>fm";
|
|
lspBufAction = "format";
|
|
}
|
|
{
|
|
key = "<leader>gd";
|
|
lspBufAction = "definition";
|
|
}
|
|
{
|
|
key = "<leader>gD";
|
|
lspBufAction = "references";
|
|
}
|
|
{
|
|
key = "<leader>gt";
|
|
lspBufAction = "type_definition";
|
|
}
|
|
{
|
|
key = "<leader>gi";
|
|
lspBufAction = "implementation";
|
|
}
|
|
{
|
|
key = "<leader>K";
|
|
lspBufAction = "hover";
|
|
}
|
|
];
|
|
}
|
|
// lib.optionalAttrs (false) {
|
|
plugins.lsp-format = {
|
|
enable = true;
|
|
lspServersToEnable = "all";
|
|
};
|
|
};
|
|
}
|