build:update_flake

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
This commit is contained in:
dichgrem
2025-11-17 19:56:08 +08:00
parent e02cfc5dcd
commit e2a382d90e
4 changed files with 270 additions and 225 deletions

80
flake.lock generated
View File

@@ -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": {

View File

@@ -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;

View File

@@ -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,
}

View File

@@ -84,6 +84,8 @@ in {
zig
nodejs_20
pnpm
rustc
cargo
];
};