From 77055bee8fa73dcf523d7515365ce3269e94df2c Mon Sep 17 00:00:00 2001 From: Nickolaj Jepsen Date: Tue, 4 Mar 2025 00:03:59 +0100 Subject: [PATCH] feat: update nvim config --- flake.lock | 184 +++++++++++++++++++++++++++++++++++++++ flake.nix | 3 + hosts/default.nix | 1 + modules/shell/neovim.nix | 57 +++++++++++- 4 files changed, 242 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 1a910ce..51a1836 100644 --- a/flake.lock +++ b/flake.lock @@ -338,6 +338,24 @@ "type": "github" } }, + "flake-parts_5": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems_3" @@ -356,6 +374,24 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -701,6 +737,47 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1738852285, + "narHash": "sha256-8Y1uyE6gGHxdU0Vcx2CMg/dAmDSxJw19aAl3TKbbo54=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "6ae73dc9cb72cea17bcc2e3d4670825f483e80e8", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, + "nil": { + "inputs": { + "flake-utils": [ + "nvf", + "flake-utils" + ], + "nixpkgs": [ + "nvf", + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1732053863, + "narHash": "sha256-DCIVdlb81Fct2uwzbtnawLBC/U03U2hqx8trqTJB7WA=", + "owner": "oxalica", + "repo": "nil", + "rev": "2e24c9834e3bb5aa2a3701d3713b43a6fb106362", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "nil", + "type": "github" + } + }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -820,6 +897,18 @@ "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" } }, + "nixpkgs-lib_2": { + "locked": { + "lastModified": 1738452942, + "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + } + }, "nixpkgs-unstable": { "locked": { "lastModified": 1740560979, @@ -900,6 +989,22 @@ "type": "github" } }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1705050560, + "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", + "owner": "~rycee", + "repo": "nmd", + "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", + "type": "sourcehut" + }, + "original": { + "owner": "~rycee", + "repo": "nmd", + "type": "sourcehut" + } + }, "nur": { "inputs": { "flake-parts": "flake-parts_4", @@ -922,6 +1027,32 @@ "type": "github" } }, + "nvf": { + "inputs": { + "flake-parts": "flake-parts_5", + "flake-utils": "flake-utils_2", + "mnw": "mnw", + "nil": "nil", + "nixpkgs": [ + "nixpkgs" + ], + "nmd": "nmd", + "systems": "systems_5" + }, + "locked": { + "lastModified": 1740938036, + "narHash": "sha256-KDc+kDDX9s8c574sx7idXVYTJM2WZElAk9qbgxrCnSo=", + "owner": "notashelf", + "repo": "nvf", + "rev": "f24189f1d2a7730b7fe87164bae40c2d0be8d3c9", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -984,9 +1115,32 @@ "nixpkgs": "nixpkgs_4", "nixpkgs-unstable": "nixpkgs-unstable", "nur": "nur", + "nvf": "nvf", "treefmt-nix": "treefmt-nix_4" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nvf", + "nil", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731983527, + "narHash": "sha256-JECaBgC0pQ91Hq3W4unH6K9to8s2Zl2sPNu7bLOv4ek=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "71287228d96e9568e1e70c6bbfa3f992d145947b", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -1032,6 +1186,36 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 80bdfed..5b8b3f7 100644 --- a/flake.nix +++ b/flake.nix @@ -72,5 +72,8 @@ agenix-rekey.inputs.nixpkgs.follows = "nixpkgs"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; + + nvf.url = "github:notashelf/nvf"; + nvf.inputs.nixpkgs.follows = "nixpkgs"; }; } diff --git a/hosts/default.nix b/hosts/default.nix index 5a940f7..e1c453c 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -44,6 +44,7 @@ with lib; let inputs.nix-index-database.nixosModules.nix-index inputs.nixos-facter-modules.nixosModules.facter inputs.fireproof-shell.nixosModules.default + inputs.nvf.nixosModules.default ../modules/base/user.nix (mkSystemImports hostname) ] diff --git a/modules/shell/neovim.nix b/modules/shell/neovim.nix index d1cf833..18e8424 100644 --- a/modules/shell/neovim.nix +++ b/modules/shell/neovim.nix @@ -1,10 +1,61 @@ _: { config = { - programs.neovim = { - enable = true; - defaultEditor = true; + programs.neovim = { + enable = true; + vimAlias = true; + defaultEditor = true; + }; + + programs.nvf = { + enable = true; + + settings.vim = { viAlias = true; vimAlias = true; + + lineNumberMode = "number"; + + lsp = { + enable = true; + lightbulb.enable = true; + }; + + languages = { + enableLSP = true; + enableFormat = true; + enableTreesitter = true; + + nix.enable = true; + markdown.enable = true; + rust.enable = true; + sql.enable = true; + ts.enable = true; + html.enable = true; + python.enable = true; + }; + + git.enable = true; + + telescope.enable = true; + autopairs.nvim-autopairs.enable = true; + autocomplete.blink-cmp.enable = true; + statusline.lualine.enable = true; + + utility = { + ccc.enable = false; + vim-wakatime.enable = false; + icon-picker.enable = false; + motion.leap.enable = true; + }; + ui = { + borders.enable = true; + colorizer.enable = true; + }; + + binds = { + whichKey.enable = true; + }; }; }; +}; }