From eb5a02ceb2008b7987e597e7d697fa81d0c5338b Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Fri, 24 Jul 2026 09:53:58 +0200 Subject: bootstrap-win: yamlfmt/gawk/xmllint entfernt, clangd/LLVM-Fall erkannt Praxistest (24.07.2026) bestaetigt: google.yamlfmt, GnuWin32.Gawk und GnuWin32.Libxml2 existieren nicht in der winget-Registry ('kein Paket gefunden, das den Eingabekriterien entspricht'). Kein verifizierter Ersatz gefunden, deshalb aus Install-Formatters entfernt statt weiter zu raten - Formatierung faellt fuer awk/xml/yaml auf LSP zurueck. LLVM.LLVM schlug ebenfalls fehl, aber aus anderem Grund: Paket bereits installiert, clangd nur nicht im PATH (winget meldet 'kein Upgrade verfuegbar', keine Neuinstallation noetig). Install-WingetPackage erkennt diesen Fall jetzt per Textmuster und gibt einen gezielten Hinweis statt der irrefuehrenden 'Paket nicht gefunden'-Meldung. neovim-windows-setup.md entsprechend aktualisiert (Abschnitte 0, 3, 4, 6). --- bootstrap-win/neovim.ps1 | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) (limited to 'bootstrap-win') diff --git a/bootstrap-win/neovim.ps1 b/bootstrap-win/neovim.ps1 index 64de8a1..467463b 100644 --- a/bootstrap-win/neovim.ps1 +++ b/bootstrap-win/neovim.ps1 @@ -11,11 +11,15 @@ Aufruf (PowerShell, keine Admin-Rechte noetig): .\bootstrap-win\neovim.ps1 - Hinweis: Einzelne winget-Paket-IDs (v.a. GnuWin32.Gawk, GnuWin32.Libxml2, - google.yamlfmt, mvdan.shfmt, astral-sh.ruff) konnten in dieser Session - nicht gegen eine aktuelle winget-Quelle verifiziert werden. Schlaegt eine - Installation fehl, meldet das Skript das als Warnung (bricht nicht ab) - und nennt den Befehl zum manuellen Nachschlagen ("winget search "). + Hinweis: yamlfmt, gawk und xmllint/libxml2 sind bewusst NICHT enthalten - + im Praxistest (24.07.2026) bestaetigt, dass es dafuer keine winget-Pakete + unter den urspruenglich vermuteten IDs gibt. Siehe Install-Formatters und + neovim-windows-setup.md fuer manuelle Alternativen. mvdan.shfmt und + astral-sh.ruff liefen im Test erfolgreich durch. + + Schlaegt eine winget-Installation trotzdem fehl, meldet das Skript das + als Warnung (bricht nicht ab) und zeigt die letzten Zeilen der winget- + Ausgabe zur Fehlersuche an. C-Compiler fuer nvim-treesitter: kein winget-Paket enthalten, da MSVC auf den Zielsystemen bereits vorhanden ist. Neovim muss dafuer aus einer @@ -56,8 +60,18 @@ function Install-WingetPackage([string]$Binary, [string]$Id) { $output = winget install --id $Id -e --source winget --accept-package-agreements --accept-source-agreements --silent 2>&1 if ($LASTEXITCODE -ne 0) { + $text = $output -join " " $lastLine = ($output | Select-Object -Last 3) -join " / " - Write-Warn "winget install $Id fehlgeschlagen (Binary '$Binary' nicht gefunden): $lastLine -- Pruefen mit: winget search $Id" + + if ($text -match "bereits ein vorhandenes Paket|already installed|No applicable update") { + # Paket ist laut winget installiert, aber die Binary steht trotzdem + # nicht im PATH - z.B. weil der Installer (im --silent-Modus) die + # PATH-Registrierung uebersprungen hat. winget search hilft hier + # nicht weiter, da das Paket ja gefunden wurde. + Write-Warn "$Id ist laut winget bereits installiert, aber '$Binary' wurde nicht gefunden. Vermutlich fehlt das Installationsverzeichnis im PATH - Installationsordner suchen (z.B. unter Program Files) und manuell zum PATH hinzufuegen." + } else { + Write-Warn "winget install $Id fehlgeschlagen (Binary '$Binary' nicht gefunden): $lastLine -- Pruefen mit: winget search $Id" + } return } @@ -116,9 +130,15 @@ function Install-Formatters { Install-WingetPackage -Binary "ruff" -Id "astral-sh.ruff" Install-WingetPackage -Binary "shfmt" -Id "mvdan.shfmt" Install-WingetPackage -Binary "stylua" -Id "JohnnyMorganz.StyLua" - Install-WingetPackage -Binary "yamlfmt" -Id "google.yamlfmt" - Install-WingetPackage -Binary "gawk" -Id "GnuWin32.Gawk" - Install-WingetPackage -Binary "xmllint" -Id "GnuWin32.Libxml2" + + # yamlfmt, gawk, xmllint: im Praxistest bestaetigt, dass es unter diesen + # IDs kein winget-Paket gibt ("Es wurde kein Paket gefunden, das den + # Eingabekriterien entspricht"). Kein verifizierter Ersatz gefunden, + # deshalb bewusst nicht automatisiert - siehe neovim-windows-setup.md + # fuer manuelle Alternativen. conform.nvim faellt bei fehlendem + # Formatter fuer die jeweilige Dateiart einfach auf LSP-Formatierung + # zurueck (default_format_opts.lsp_format = "fallback"), betrifft also + # nur awk/xml/xsd/yaml-Dateien. } function Install-Tools { -- cgit v1.3