From e2a382d90e64cc8353740211ccfa99f0d017060b Mon Sep 17 00:00:00 2001 From: dichgrem Date: Mon, 17 Nov 2025 19:56:08 +0800 Subject: [PATCH] build:update_flake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Version 352 -> 353: SwayNotificationCenter: 0.12.2 → 0.12.3, +36.5 KiB adw-gtk3: 6.3 → 6.4 adwaita-icon-theme: 48.0 → 49.0, +17.0 KiB alacritty: -31.2 KiB at-spi2-core: 2.56.2 → 2.58.0, +17.9 KiB atuin: 18.8.0 → 18.10.0, -126.9 KiB bat: +11.3 KiB binwalk: -9.4 KiB blink-fuzzy-lib: 1.7.0 → 1.8.0, +1315.6 KiB botan: 3.9.0 → 3.10.0, +40.7 KiB brave: 1.84.135 → 1.84.139 breeze-icons: 6.19.0 → 6.20.0, +40.0 KiB btrfs-progs: 6.17 → 6.17.1, +8.8 KiB c-ares: +589.5 KiB cargo: 1.89.0 → 1.90.0, +2996.8 KiB cef-binary: 138.0.17 → 6533, +468079.8 KiB chafa: 1.16.2 → 1.18.0 cloud-hypervisor: 48.0 → 49.0, +8.2 KiB dash: 0.5.12 → 0.5.13.1, +10.3 KiB dconf-editor: 45.0.1 → 49.0, +373.4 KiB drbd: 9.32.0 → 9.33.0, +151.3 KiB elfutils: 0.193 → 0.194, -78.5 KiB extra-cmake-modules: 6.19.0 → 6.20.0, +14.6 KiB fastfetch: 2.54.0 → 2.55.0, +16.1 KiB fc: -16.5 KiB ffmpeg: 6.1.2, 7.1.1 → 6.1.3, 7.1.2, 8.0, +33871.2 KiB ffmpeg-headless: 7.1.1 → 8.0, +5278.0 KiB file: -8541.1 KiB firmware: +8.2 KiB floorp-bin: 12.4.0 → 12.5.0 floorp-bin-unwrapped: 12.4.0 → 12.5.0, +3110.3 KiB fluidsynth: 2.4.8 → 2.5.0, +236.4 KiB fmt: 11.2.0 → 12.0.0, +13.2 KiB fzf: +433.1 KiB gdk-pixbuf: 2.42.12 → 2.44.3, +19.8 KiB gfxstream: -42.5 KiB git-with-svn: 2.51.0 → 2.51.2, +73.4 KiB glib: 2.84.4 → 2.86.1, +135.2 KiB glibmm: -80.2 KiB glycin-loaders: 1.2.3 → 2.0.5, +3124.7 KiB gnome-desktop: 44.3 → 44.4 gnome-online-accounts: 3.54.5 → 3.56.1 gnome-settings-daemon: 48.1-gsettings → 49.1-gsettings gnome-shell-extension-user-themes: 64 → 69 gnumake: -1569.8 KiB go: 1.25.2 → 1.25.3, +7776.4 KiB gobject-introspection: 1.84.0 → 1.86.0, +12.6 KiB gobject-introspection-wrapped: 1.84.0 → 1.86.0 greetd: -9.0 KiB gsettings-desktop-schemas: 48.0 → 49.0, +308.6 KiB gst-plugins-bad: -38.4 KiB gst-plugins-rs: -310.6 KiB gstreamer: -18.9 KiB gtk+3: 3.24.49 → 3.24.51, -625.5 KiB gtk4: 4.18.6 → 4.20.2, +398.1 KiB gui-for-singbox: +1258.3 KiB gvfs: 1.57.2 → 1.58.0 hyprgraphics: 0.2.0 → 0.3.0 hyprlang: 0.6.4 → 0.6.5 hyprutils: 0.10.0 → 0.10.2, +41.9 KiB inih: 61 → 62 initrd: ∅ → ε initrd-linux: 6.17.7 → 6.17.8 ipxe: 1.21.1-unstable-2025-11-05 → 1.21.1-unstable-2025-11-13 just: 1.43.0 → 1.43.1, +35.5 KiB karchive: 6.19.0 → 6.20.0 kauth: 6.19.0 → 6.20.0 kbookmarks: 6.19.0 → 6.20.0 kcmutils: 6.19.0 → 6.20.0, +11.6 KiB kcodecs: 6.19.0 → 6.20.0 kcolorscheme: 6.19.0 → 6.20.0 kcompletion: 6.19.0 → 6.20.0 kconfig: 6.19.0 → 6.20.0 kconfigwidgets: 6.19.0 → 6.20.0 kcoreaddons: 6.19.0 → 6.20.0 kcrash: 6.19.0 → 6.20.0 kdbusaddons: 6.19.0 → 6.20.0 kdeclarative: 6.19.0 → 6.20.0 kdoctools: 6.19.0 → 6.20.0 kexec-tools: 2.0.31 → 2.0.32 kglobalaccel: 6.19.0 → 6.20.0 kguiaddons: 6.19.0 → 6.20.0 ki18n: 6.19.0 → 6.20.0 kiconthemes: 6.19.0 → 6.20.0 kimageformats: 6.19.0 → 6.20.0 kio: 6.19.1 → 6.20.0, +17.3 KiB kirigami: 6.19.0 → 6.20.0, +27.7 KiB kitemviews: 6.19.0 → 6.20.0 kjobwidgets: 6.19.0 → 6.20.0 knotifications: 6.19.0 → 6.20.0 kpackage: 6.19.0 → 6.20.0 kparts: 6.19.0 → 6.20.0 kservice: 6.19.0 → 6.20.0 ksvg: 6.19.0 → 6.20.0 ktextwidgets: 6.19.0 → 6.20.0 kwallet: 6.19.0 → 6.20.0 kwidgetsaddons: 6.19.0 → 6.20.0 kwindowsystem: 6.19.0 → 6.20.0 kxmlgui: 6.19.0 → 6.20.0 libadwaita: 1.7.6 → 1.8.0, +85.0 KiB libarchive: 3.8.1 → 3.8.2 libcamera: -302.3 KiB libcap: +188.2 KiB libdecor: 0.2.3 → 0.2.4 libdisplay-info: +470.6 KiB libdrm: 2.4.126 → 2.4.127 libedit: 20250104-3.1 → 20251016-3.1 liberation-fonts: -18.9 KiB libinput: 1.29.1 → 1.29.2 libpq: 18.0 → 18.1 libqmi: +12.0 KiB librsvg: 2.61.1 → 2.61.2, -63.6 KiB libshumate: 1.4.0 → 1.5.1 libsysprof-capture: 48.0 → 49.0 libtraceevent: 1.8.4 → 1.8.5 libunistring: 1.4 → 1.4.1 libvmaf: -11.1 KiB libxml2: 2.15.0 → 2.15.1 linux: 6.17.7, 6.17.7-modules → 6.17.8, -2832.3 KiB linux-firmware: 20251021 → 20251111, +9984.6 KiB loupe: 48.1 → 49.1, -382.6 KiB mesa: 25.2.6 → 25.3.0, +43240.2 KiB networkmanager: 1.52.1 → 1.54.1, +140.4 KiB nexttrace: +1399.8 KiB nix: -41.8 KiB nix-cmd: -22.7 KiB nix-expr: -57.6 KiB nix-fetchers: -46.9 KiB nix-flake: -27.1 KiB nix-main: -8.2 KiB nix-output-monitor: 2.1.6 → 2.1.8, +214.7 KiB nix-store: -90.8 KiB nix-util: -38.2 KiB nixos-system-dos: 25.11.20251108.b6a8526 → 25.11.20251116.50a96ed nixpkgs-fmt: -8.6 KiB nodejs: 22.20.0 → 22.21.1, +204.9 KiB ntpd-rs: -20.9 KiB obs-studio: -9207.5 KiB onefetch: -191.1 KiB onetbb: 2022.2.0 → 2022.3.0, +13.9 KiB openapv: ∅ → 0.2.0.4, +1377.5 KiB openjdk: 21.0.9+8 → 21.0.9+10, +30.9 KiB openjpeg: 2.5.2 → 2.5.4, +18.4 KiB openssh: 10.1p1 → 10.2p1, -93.4 KiB p11-kit: 0.25.9 → 0.25.10 pango: 1.56.4 → 1.57.0, +15.7 KiB patchelf: 0.15.2 → ∅, -241.6 KiB payload-dumper-go: +484.0 KiB pipewire: -8.5 KiB pnpm: 10.20.0 → 10.22.0, -46.6 KiB protobuf: 32.1 → 33.0, +164.7 KiB publicsuffix-list: 0-unstable-2025-08-28 → 0-unstable-2025-10-08 python3: 3.13.8 → 3.13.9, -220.1 KiB python3.13-cryptography: 46.0.1 → 46.0.2 python3.13-idna: 3.10 → 3.11, +12.6 KiB python3.13-platformdirs: 4.3.8 → 4.5.0 python3.13-protobuf: 6.32.1 → 6.33.0 python3.13-psutil: 7.1.0 → 7.1.2, -39.4 KiB python3.13-pygobject: 3.50.0 → 3.54.3, -32.2 KiB qemu: +16.0 KiB qqc2-desktop-style: 6.19.0 → 6.20.0 qtbase: 5.15.17 → 5.15.18, -187.3 KiB qtdeclarative: 5.15.17 → 5.15.18, +131.0 KiB qtquickcontrols: 5.15.17 → 5.15.18 qtsvg: 5.15.17 → 5.15.18 qttools: 5.15.17 → 5.15.18 qttranslations: 5.15.17 → 5.15.18 qtwayland: 5.15.17 → 5.15.18 qtx11extras: 5.15.17 → 5.15.18 readest: +16.0 KiB ripgrep: +23.5 KiB ruby: 3.3.9 → 3.3.10, -13.5 KiB ruff: 0.14.3 → 0.14.4, +190.9 KiB rustc: 1.89.0 → 1.90.0, +12796.9 KiB rustc-wrapper: 1.89.0 → 1.90.0 rustfmt: 1.89.0 → 1.90.0, +66.5 KiB rutabaga_gfx: -33.7 KiB s2n-tls: 1.5.26 → 1.5.27 sarasa-gothic: 1.0.33 → 1.0.34, -4374.7 KiB scx_full: +81.9 KiB sdl2-compat: 2.32.56 → 2.32.58, +8.1 KiB sdl3: 3.2.24 → 3.2.26 shfmt: +317.1 KiB sleuthkit: +15.8 KiB solid: 6.19.0 → 6.20.0, -19.6 KiB sonnet: 6.19.0 → 6.20.0 source: +589.0 KiB spandsp: +21339.6 KiB starship: +56.5 KiB swayosd: -94.2 KiB syncthing: +2564.0 KiB systemd: 258 → 258.1, +43.8 KiB systemd-minimal: 258 → 258.1, -1260.3 KiB systemd-minimal-libs: 258 → 258.1, +8.7 KiB taplo: -40.3 KiB termshark: +1755.9 KiB thin-provisioning-tools: +46.1 KiB tinysparql: 3.9.2 → 3.10.1, +13.6 KiB tsukimi: -13.3 KiB unbound: 1.24.0 → 1.24.1 unit-linger-users.service: ∅ → ε unit-script-linger-users: ∅ → ε unit-systemd-tmpfiles-setup-sysroot.service: ∅ → ε untitled-gnome-shell: +18.7 KiB v4l-utils: 1.30.1 → 1.32.0, -128.3 KiB v4l2loopback: 0.15.1-6.17.7 → 0.15.1-6.17.8 vimplugin-blink.cmp: 1.7.0 → 1.8.0, +9.8 KiB vimplugin-luajit2.1-luasnip: 2.4.0-1-unstable-2.4.0-1 → 2.4.1-1-unstable-2.4.1-1, +35.2 KiB vte: 0.80.3 → 0.82.1, +1056.1 KiB waybar: -65.2 KiB webrtc-audio-processing: -241.8 KiB wl-clipboard-rs: +68.9 KiB xapp: 3.0.1 → 3.2.0, -812.6 KiB xdg-desktop-portal-gnome: 48.0 → 49.0 xen: 4.20.1 → 4.20.2, -19.1 KiB xwayland-satellite: -15.1 KiB yamlfmt: +431.8 KiB zed-editor: 0.211.6 → 0.212.6, -2413.6 KiB zellij: +71.6 KiB zenity: 4.1.90 → 4.2.1, +60.1 KiB build:add_rust chore:lsp&&fmt --- flake.lock | 80 +++---- home/nvim/default.nix | 376 +++++++++++++++++-------------- home/nvim/lua/plugins/format.lua | 37 ++- modules/system/environment.nix | 2 + 4 files changed, 270 insertions(+), 225 deletions(-) diff --git a/flake.lock b/flake.lock index 09eaf81..b82efa7 100644 --- a/flake.lock +++ b/flake.lock @@ -77,11 +77,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1762736304, - "narHash": "sha256-IZh6dOZf22la7rF23WwQ4y7ncrciqKqT0CUJ6abEAIk=", + "lastModified": 1763246168, + "narHash": "sha256-gUDJZGSOg5syHtQvLImOKL6Eaw4e1ybz4o5pid66kQg=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "45073419e0a46bf106f025858e93b633e255e402", + "rev": "6476fbdd52621b4a532309d982d468dc08204151", "type": "github" }, "original": { @@ -172,11 +172,11 @@ ] }, "locked": { - "lastModified": 1762440070, - "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", + "lastModified": 1762980239, + "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", + "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", "type": "github" }, "original": { @@ -257,18 +257,20 @@ "gnome-shell": { "flake": false, "locked": { - "lastModified": 1748186689, - "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", + "host": "gitlab.gnome.org", + "lastModified": 1762869044, + "narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", - "type": "github" + "rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad", + "type": "gitlab" }, "original": { + "host": "gitlab.gnome.org", "owner": "GNOME", - "ref": "48.2", + "ref": "gnome-49", "repo": "gnome-shell", - "type": "github" + "type": "gitlab" } }, "home-manager": { @@ -279,11 +281,11 @@ ] }, "locked": { - "lastModified": 1762661401, - "narHash": "sha256-SVmijc8t23UMwru5f/9X1Ak5bSwvYkm0OQ5SxR7hOB0=", + "lastModified": 1762964643, + "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", "owner": "nix-community", "repo": "home-manager", - "rev": "c053d701d64f0727f62e0269c7940da5805bc9bc", + "rev": "827f2a23373a774a8805f84ca5344654c31f354b", "type": "github" }, "original": { @@ -299,11 +301,11 @@ ] }, "locked": { - "lastModified": 1762787259, - "narHash": "sha256-t2U/GLLXHa2+kJkwnFNRVc2fEJ/lUfyZXBE5iKzJdcs=", + "lastModified": 1763313531, + "narHash": "sha256-yvdCYUL85zEDp2NzPUBmaNBXP6KnWEOhAk3j7PTfsKw=", "owner": "nix-community", "repo": "home-manager", - "rev": "37a3d97f2873e0f68711117c34d04b7c7ead8f4e", + "rev": "3670a78eee49deebe4825fc8ecc46b172d1a8391", "type": "github" }, "original": { @@ -349,11 +351,11 @@ ] }, "locked": { - "lastModified": 1762452596, - "narHash": "sha256-Iaga+mkwWnWa6FxsAYknpHzeP344VCKGkdudX420LgA=", + "lastModified": 1762951919, + "narHash": "sha256-ma/xMEGf4J6n/RdZFdxXBJUQhP53HVEPQOC6Dp2TrkQ=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "99919fd35e70c1b18ce948d5329928d751031312", + "rev": "3d248f6e8f877218dd2573fef8925ac997889922", "type": "github" }, "original": { @@ -387,11 +389,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1762596750, - "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "lastModified": 1762977756, + "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", "type": "github" }, "original": { @@ -431,11 +433,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1762596750, - "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "lastModified": 1763283776, + "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", "type": "github" }, "original": { @@ -447,11 +449,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1758690382, - "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", + "lastModified": 1762977756, + "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", "type": "github" }, "original": { @@ -471,11 +473,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1762789067, - "narHash": "sha256-z0VQRaEARqF5eARuAFhDixV+g5B+5IJ1iDKSUM+5EIY=", + "lastModified": 1763334942, + "narHash": "sha256-ORaewCyY3Fff+XaGrRjWi0XYzC22YTr/H3oL9c9k+9I=", "owner": "nix-community", "repo": "nixvim", - "rev": "2dc09e09cc65026f0899cc50291e244ee24835d3", + "rev": "59af09b1814538b826f30eac8024d126d8c36efc", "type": "github" }, "original": { @@ -551,11 +553,11 @@ ] }, "locked": { - "lastModified": 1762655942, - "narHash": "sha256-hOM12KcQNQALrhB9w6KJmV5hPpm3GA763HRe9o7JUiI=", + "lastModified": 1763087910, + "narHash": "sha256-eB9Z1mWd1U6N61+F8qwDggX0ihM55s4E0CluwNukJRU=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "6ac961b02d4235572692241e333d0470637f5492", + "rev": "cf4a68749733d45c0420726596367acd708eb2e8", "type": "github" }, "original": { @@ -583,11 +585,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1762264356, - "narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=", + "lastModified": 1763314990, + "narHash": "sha256-gs98KFE3X2HQ64gsIpQNsj1lKFTdkNdX+1KMQTDXEus=", "owner": "danth", "repo": "stylix", - "rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b", + "rev": "b68e8220689a6f0393204b07be1bc14bb973a0ed", "type": "github" }, "original": { diff --git a/home/nvim/default.nix b/home/nvim/default.nix index c848d3e..c576a18 100644 --- a/home/nvim/default.nix +++ b/home/nvim/default.nix @@ -1,195 +1,223 @@ -{ - config, - lib, - pkgs, - ... +{ config +, lib +, pkgs +, ... }: { programs.neovim = { enable = true; extraPackages = with pkgs; [ - black - ruff + #Go + gopls + gofumpt + golines + + #Lua + stylua + lua-language-server + + #Nix + nixd + nixpkgs-fmt + + #Java google-java-format jdt-language-server + + #Rust + clippy + rustfmt + rust-analyzer + + #Shell + shfmt + bash-language-server + + #C/C++ + clang-tools + + #Python + ruff + black + python312Packages.python-lsp-server + + #JS/TS/Web prettierd nodePackages.prettier - clang-tools - rustfmt - jq - yamlfmt - taplo - shfmt - lua-language-server - stylua - nixpkgs-fmt + + jq #JSON + taplo #TOML + yamlfmt #YAML ]; plugins = with pkgs.vimPlugins; [ lazy-nvim ]; - extraLuaConfig = let - plugins = with pkgs.vimPlugins; [ - LazyVim - bufferline-nvim - cmp_luasnip - conform-nvim - dashboard-nvim - flash-nvim - friendly-snippets - gitsigns-nvim - lualine-nvim - neo-tree-nvim - neoconf-nvim - neodev-nvim - noice-nvim - nui-nvim - nvim-lint - nvim-lspconfig - nvim-notify - nvim-spectre - nvim-treesitter - nvim-treesitter-context - nvim-ts-autotag - nvim-ts-context-commentstring - nvim-web-devicons - persistence-nvim - plenary-nvim - todo-comments-nvim - tokyonight-nvim - trouble-nvim - vim-illuminate - vim-startuptime - which-key-nvim - fzf-lua - snacks-nvim - { - name = "lazydev.nvim"; - path = lazydev-nvim; - } - { - name = "blink.cmp"; - path = blink-cmp; - } - { - name = "LuaSnip"; - path = luasnip; - } - { - name = "mini.ai"; - path = mini-nvim; - } - { - name = "mini.bufremove"; - path = mini-nvim; - } - { - name = "mini.comment"; - path = mini-nvim; - } - { - name = "mini.indentscope"; - path = mini-nvim; - } - { - name = "mini.pairs"; - path = mini-nvim; - } - { - name = "mini.surround"; - path = mini-nvim; - } - { - name = "mini.icons"; - path = mini-icons; - } - { - name = "grug-far.nvim"; - path = grug-far-nvim; - } - ]; - mkEntryFromDrv = drv: - if lib.isDerivation drv - then { - name = "${lib.getName drv}"; - path = drv; - } - else drv; - lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins); - in '' - require("lazy").setup({ - defaults = { - lazy = true, - }, - dev = { - -- reuse files from pkgs.vimPlugins.* - path = "${lazyPath}", - patterns = { "." }, - -- fallback to download - fallback = true, - }, - rocks = { - enabled = false, - hererocks = false, - }, - spec = { - { "LazyVim/LazyVim", import = "lazyvim.plugins" }, - -- The following configs are needed for fixing lazyvim on nix - -- disable mason.nvim, use programs.neovim.extraPackages - { "mason-org/mason-lspconfig.nvim", enabled = false }, - { "mason-org/mason.nvim", enabled = false }, - -- import/override with your plugins - { import = "lazyvim.plugins.extras.lang.go" }, - { import = "lazyvim.plugins.extras.lang.clangd" }, - { import = "lazyvim.plugins.extras.lang.rust" }, - { import = "lazyvim.plugins.extras.lang.typescript" }, - { import = "lazyvim.plugins.extras.lang.python" }, - { import = "lazyvim.plugins.extras.lang.tailwind" }, - { import = "lazyvim.plugins.extras.lang.java" }, - { import = "lazyvim.plugins.extras.lang.json" }, - { import = "lazyvim.plugins.extras.lang.yaml" }, - { import = "lazyvim.plugins.extras.lang.toml" }, - { import = "lazyvim.plugins.extras.lang.docker" }, - { import = "plugins" }, - -- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed - { "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - opts.ensure_installed = {} - end, + extraLuaConfig = + let + plugins = with pkgs.vimPlugins; [ + LazyVim + bufferline-nvim + cmp_luasnip + conform-nvim + dashboard-nvim + flash-nvim + friendly-snippets + gitsigns-nvim + lualine-nvim + neo-tree-nvim + neoconf-nvim + neodev-nvim + noice-nvim + nui-nvim + nvim-lint + nvim-lspconfig + nvim-notify + nvim-spectre + nvim-treesitter + nvim-treesitter-context + nvim-ts-autotag + nvim-ts-context-commentstring + nvim-web-devicons + persistence-nvim + plenary-nvim + todo-comments-nvim + tokyonight-nvim + trouble-nvim + vim-illuminate + vim-startuptime + which-key-nvim + fzf-lua + snacks-nvim + { + name = "lazydev.nvim"; + path = lazydev-nvim; + } + { + name = "blink.cmp"; + path = blink-cmp; + } + { + name = "LuaSnip"; + path = luasnip; + } + { + name = "mini.ai"; + path = mini-nvim; + } + { + name = "mini.bufremove"; + path = mini-nvim; + } + { + name = "mini.comment"; + path = mini-nvim; + } + { + name = "mini.indentscope"; + path = mini-nvim; + } + { + name = "mini.pairs"; + path = mini-nvim; + } + { + name = "mini.surround"; + path = mini-nvim; + } + { + name = "mini.icons"; + path = mini-icons; + } + { + name = "grug-far.nvim"; + path = grug-far-nvim; + } + ]; + mkEntryFromDrv = drv: + if lib.isDerivation drv + then { + name = "${lib.getName drv}"; + path = drv; + } + else drv; + lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins); + in + '' + require("lazy").setup({ + defaults = { + lazy = true, }, - }, - }) - ''; + dev = { + -- reuse files from pkgs.vimPlugins.* + path = "${lazyPath}", + patterns = { "." }, + -- fallback to download + fallback = true, + }, + rocks = { + enabled = false, + hererocks = false, + }, + spec = { + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- The following configs are needed for fixing lazyvim on nix + -- disable mason.nvim, use programs.neovim.extraPackages + { "mason-org/mason-lspconfig.nvim", enabled = false }, + { "mason-org/mason.nvim", enabled = false }, + -- import/override with your plugins + { import = "lazyvim.plugins.extras.lang.go" }, + { import = "lazyvim.plugins.extras.lang.clangd" }, + { import = "lazyvim.plugins.extras.lang.rust" }, + { import = "lazyvim.plugins.extras.lang.typescript" }, + { import = "lazyvim.plugins.extras.lang.python" }, + { import = "lazyvim.plugins.extras.lang.tailwind" }, + { import = "lazyvim.plugins.extras.lang.java" }, + { import = "lazyvim.plugins.extras.lang.json" }, + { import = "lazyvim.plugins.extras.lang.yaml" }, + { import = "lazyvim.plugins.extras.lang.toml" }, + { import = "lazyvim.plugins.extras.lang.docker" }, + { import = "plugins" }, + -- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed + { "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + opts.ensure_installed = {} + end, + }, + }, + }) + ''; }; # https://github.com/nvim-treesitter/nvim-treesitter#i-get-query-error-invalid-node-type-at-position - xdg.configFile."nvim/parser".source = let - parsers = pkgs.symlinkJoin { - name = "treesitter-parsers"; - paths = - (pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: - with plugins; [ - bash - c - lua - python - go - rust - java - javascript - typescript - tsx - vue - html - css - json - yaml - toml - dockerfile - ])) - .dependencies; - }; - in "${parsers}/parser"; + xdg.configFile."nvim/parser".source = + let + parsers = pkgs.symlinkJoin { + name = "treesitter-parsers"; + paths = + (pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: + with plugins; [ + bash + c + lua + python + go + rust + java + javascript + typescript + tsx + vue + html + css + json + yaml + toml + dockerfile + ])).dependencies; + }; + in + "${parsers}/parser"; # Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua xdg.configFile."nvim/lua".source = ./lua; diff --git a/home/nvim/lua/plugins/format.lua b/home/nvim/lua/plugins/format.lua index 12813b8..1cdda20 100644 --- a/home/nvim/lua/plugins/format.lua +++ b/home/nvim/lua/plugins/format.lua @@ -4,6 +4,7 @@ return { opts = function(_, opts) opts.format_on_save = nil opts.formatters = opts.formatters or {} + opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters.nixpkgs_fmt = { command = "nixpkgs-fmt", args = function(ctx) @@ -12,26 +13,38 @@ return { stdin = true, exit_codes = { 0 }, } - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.nix = { "nixpkgs_fmt", stop_after_first = true } + + -- Go + opts.formatters_by_ft.go = { "gofumpt" } + -- Lua opts.formatters_by_ft.lua = { "stylua" } - opts.formatters_by_ft.python = { "black", "ruff_format" } + -- Nix + opts.formatters_by_ft.nix = { "nixpkgs_fmt", stop_after_first = true } + -- Java + opts.formatters_by_ft.java = { "google_java_format" } + -- Rust + opts.formatters_by_ft.rust = { "rustfmt" } + -- Shell opts.formatters_by_ft.sh = { "shfmt" } - opts.formatters_by_ft.javascript = { "prettier" } - opts.formatters_by_ft.typescript = { "prettier" } - opts.formatters_by_ft.javascriptreact = { "prettier" } - opts.formatters_by_ft.typescriptreact = { "prettier" } - opts.formatters_by_ft.vue = { "prettier" } - opts.formatters_by_ft.go = { "gofmt" } + -- C/C++ opts.formatters_by_ft.c = { "clang_format" } opts.formatters_by_ft.cpp = { "clang_format" } - opts.formatters_by_ft.rust = { "rustfmt" } - opts.formatters_by_ft.java = { "google-java-format" } + -- Python + opts.formatters_by_ft.python = { "black", "ruff_format" } + -- JS/TS/Web + opts.formatters_by_ft.javascript = { "prettierd" } + opts.formatters_by_ft.typescript = { "prettierd" } + opts.formatters_by_ft.javascriptreact = { "prettierd" } + opts.formatters_by_ft.typescriptreact = { "prettierd" } + opts.formatters_by_ft.vue = { "prettierd" } + -- JSON opts.formatters_by_ft.json = { "jq" } + -- YAML opts.formatters_by_ft.yaml = { "yamlfmt" } + -- TOML opts.formatters_by_ft.toml = { "taplo" } opts.default_format_opts = { - timeout_ms = 1000, + timeout_ms = 1500, lsp_format = "fallback", stop_after_first = false, } diff --git a/modules/system/environment.nix b/modules/system/environment.nix index 0a75b27..c85b20b 100644 --- a/modules/system/environment.nix +++ b/modules/system/environment.nix @@ -84,6 +84,8 @@ in { zig nodejs_20 pnpm + rustc + cargo ]; };