2024-05-18 20:00:18 +02:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: let
|
2024-05-20 21:15:16 +02:00
|
|
|
cfg = config.myConfig.shell.neovim;
|
2024-05-18 20:00:18 +02:00
|
|
|
in {
|
2024-05-20 21:15:16 +02:00
|
|
|
options.myConfig.shell.neovim = {
|
|
|
|
enable = lib.mkEnableOption "neovim";
|
2024-05-18 20:00:18 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
2024-05-26 13:11:21 +02:00
|
|
|
programs.neovim = {
|
|
|
|
enable = true;
|
|
|
|
defaultEditor = true;
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
2024-05-26 14:00:59 +02:00
|
|
|
lazy-nvim
|
2024-05-26 14:28:55 +02:00
|
|
|
nvim-treesitter-parsers.rust
|
2024-05-26 13:11:21 +02:00
|
|
|
];
|
2024-05-26 14:00:59 +02:00
|
|
|
extraLuaConfig = ''
|
|
|
|
require "lazy_setup"
|
|
|
|
'';
|
2024-05-26 14:16:38 +02:00
|
|
|
extraPackages = with pkgs; [
|
|
|
|
gnumake
|
|
|
|
clang
|
|
|
|
gcc
|
|
|
|
zig
|
|
|
|
cargo
|
|
|
|
rust-analyzer
|
|
|
|
rustup
|
2024-05-26 14:23:53 +02:00
|
|
|
nodejs
|
2024-05-26 14:16:38 +02:00
|
|
|
];
|
2024-05-18 20:00:18 +02:00
|
|
|
};
|
2024-05-26 14:00:59 +02:00
|
|
|
|
|
|
|
home.file.".config/nvim/lua".source = ./nvim-lua;
|
2024-05-18 20:00:18 +02:00
|
|
|
};
|
|
|
|
}
|