summaryrefslogtreecommitdiff
path: root/users/timmy/home.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/timmy/home.nix')
-rw-r--r--users/timmy/home.nix46
1 files changed, 45 insertions, 1 deletions
diff --git a/users/timmy/home.nix b/users/timmy/home.nix
index cb99456..77934bc 100644
--- a/users/timmy/home.nix
+++ b/users/timmy/home.nix
@@ -1,4 +1,4 @@
-{ lib, config, ... }: let
+{ lib, pkgs, config, ... }: let
cfg = config._users.${username}.home;
username = "timmy";
email = "tjk@tjkeller.xyz";
@@ -19,6 +19,9 @@
in {
options._users.${username}.home = {
enable = lib.mkEnableOption "configure home for user ${username}";
+ #neovim = {
+ # enableLSP = lib.mkEnableOption "whether to enable lsp";
+ #};
};
config = lib.mkIf cfg.enable {
@@ -61,5 +64,46 @@ in {
lib.mkIf (dir != null) "file://${dir} ${lib.toUpper (lib.substring 0 1 name)}${lib.substring 1 (-1) name}" # Make first letter upper case
) userDirs
);
+
+ # Setup neovim
+ programs._neovim = {
+ enable = true;
+ package = pkgs.unstable.neovim;
+ viAlias = true;
+ vimAlias = true;
+ plugins = {
+ lsp = {
+ enable = lib.mkDefault true;
+ languageServers.packages = with pkgs; [
+ python313Packages.python-lsp-server
+ svelte-language-server
+ tailwindcss-language-server
+ typescript-language-server
+ vscode-langservers-extracted
+ ];
+ };
+ treesitter = let
+ allTSParserPackages = builtins.filter lib.isDerivation
+ (builtins.attrValues pkgs.vimPlugins.nvim-treesitter-parsers);
+ in {
+ enable = lib.mkDefault true;
+ parsers.packages = allTSParserPackages;
+ };
+ packages.start = with pkgs.vimPlugins; [
+ autoclose-nvim
+ blink-cmp
+ gruvbox-nvim
+ minitab-nvim
+ nvim-colorizer-lua
+ nvim-ts-autotag # depends on treesitter
+ pkgs.unstable.vimPlugins.rainbow-delimiters-nvim # depends on treesitter
+ snacks-nvim
+ ];
+ };
+ extraPackages = with pkgs; [
+ gcc # Treesitter requires a C compiler
+ unzip # For zip, xlsx, etc. files
+ ];
+ };
};
}