diff options
Diffstat (limited to 'users/timmy/home.nix')
| -rw-r--r-- | users/timmy/home.nix | 46 |
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 + ]; + }; }; } |
