From 2fae3e9ace260c0b472cf2f19f7310ac9e635207 Mon Sep 17 00:00:00 2001 From: Kalle Struik Date: Sun, 29 Dec 2024 19:16:05 +0100 Subject: [PATCH] Start on new nvim config --- modules/new_nvim/config/init.lua | 1 + modules/new_nvim/config/lua/config/lazy.lua | 35 +++++++++++++++++ .../config/lua/config/plugins/theming.lua | 8 ++++ modules/new_nvim/default.nix | 38 +++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 modules/new_nvim/config/init.lua create mode 100644 modules/new_nvim/config/lua/config/lazy.lua create mode 100644 modules/new_nvim/config/lua/config/plugins/theming.lua create mode 100644 modules/new_nvim/default.nix diff --git a/modules/new_nvim/config/init.lua b/modules/new_nvim/config/init.lua new file mode 100644 index 0000000..55b8979 --- /dev/null +++ b/modules/new_nvim/config/init.lua @@ -0,0 +1 @@ +require("config.lazy") diff --git a/modules/new_nvim/config/lua/config/lazy.lua b/modules/new_nvim/config/lua/config/lazy.lua new file mode 100644 index 0000000..341ac20 --- /dev/null +++ b/modules/new_nvim/config/lua/config/lazy.lua @@ -0,0 +1,35 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- import your plugins + { import = "plugins" }, + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. + install = { colorscheme = { "habamax" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/modules/new_nvim/config/lua/config/plugins/theming.lua b/modules/new_nvim/config/lua/config/plugins/theming.lua new file mode 100644 index 0000000..5c6769c --- /dev/null +++ b/modules/new_nvim/config/lua/config/plugins/theming.lua @@ -0,0 +1,8 @@ +return { + { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + init = function() vim.cmd.colorscheme("catppuccin-mocha") end + }, +} diff --git a/modules/new_nvim/default.nix b/modules/new_nvim/default.nix new file mode 100644 index 0000000..f923dd0 --- /dev/null +++ b/modules/new_nvim/default.nix @@ -0,0 +1,38 @@ +{ + pkgs, + ... +}: +{ + home-manager.users.kalle = { + programs.neovim = { + enable = true; + + viAlias = true; + vimAlias = true; + vimdiffAlias = true; + + extraPackages = with pkgs; [ + nodejs_22 # Required for copilot-vim + ripgrep # Required for telescope + wl-clipboard # Required for clipboard sync + + # Language servers + clang-tools + lua-language-server + nodePackages.typescript-language-server + nodePackages."@astrojs/language-server" + typescript + tailwindcss-language-server + gopls + vhdl-ls + nixd + nixfmt-rfc-style + ]; + }; + + xdg.configFile.nvim = { + source = ./config; + recursive = true; + }; + }; +}