74 lines
1.8 KiB
Nix
74 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
let
|
|
configHome = "${config.home.homeDirectory}/.config/dotfiles/homes/quirinecker";
|
|
rlang = pkgs.rWrapper.override {
|
|
packages = with pkgs.rPackages; [
|
|
languageserver
|
|
box
|
|
xtable
|
|
dplyr
|
|
svSweave
|
|
knitr
|
|
];
|
|
};
|
|
in
|
|
{
|
|
options = {
|
|
modules.neovim.enable = lib.mkEnableOption "neovim";
|
|
};
|
|
|
|
config = lib.mkIf config.modules.neovim.enable {
|
|
home.sessionVariables = {
|
|
RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
|
|
};
|
|
|
|
programs.neovim.enable = true;
|
|
programs.zathura.enable = true;
|
|
home.packages = [
|
|
pkgs.cargo
|
|
pkgs.rustc
|
|
pkgs.nodejs
|
|
pkgs.yarn
|
|
pkgs.unzip
|
|
pkgs.ripgrep
|
|
pkgs.fd
|
|
pkgs.luajitPackages.lua-lsp
|
|
pkgs.lua-language-server
|
|
pkgs.nil
|
|
pkgs.nixfmt-rfc-style
|
|
pkgs.nixd
|
|
pkgs.rust-analyzer
|
|
pkgs.rustfmt
|
|
pkgs.typescript-language-server
|
|
pkgs.vue-language-server
|
|
pkgs.vtsls
|
|
pkgs.deno
|
|
pkgs.vscode-langservers-extracted
|
|
pkgs.yaml-language-server
|
|
rlang
|
|
pkgs.jdt-language-server
|
|
pkgs.tailwindcss-language-server
|
|
pkgs.pyright
|
|
pkgs.protols
|
|
pkgs.clang-tools
|
|
pkgs.taplo
|
|
pkgs.tinymist
|
|
];
|
|
xdg.configFile = {
|
|
"nvim/init.lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/init.lua;
|
|
"nvim/lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/lua;
|
|
"nvim/ftplugin".source = config.lib.file.mkOutOfStoreSymlink ./neovim/ftplugin;
|
|
"nvim/projects".source = config.lib.file.mkOutOfStoreSymlink ./neovim/projects;
|
|
};
|
|
|
|
home.activation.npm-install = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
nix-shell -p nodejs --run "cd ${configHome}/.npm_global && npm install"
|
|
'';
|
|
};
|
|
}
|