diff options
| author | Thomas Schmucker <ts@its1.de> | 2026-07-24 09:53:58 +0200 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2026-07-24 09:53:58 +0200 |
| commit | eb5a02ceb2008b7987e597e7d697fa81d0c5338b (patch) | |
| tree | 3403d609d31e66612a3802e26e1a8734153300c2 /bootstrap-win | |
| parent | 2b6a7ce27483b4f999c80b065c92c5e4566c90d8 (diff) | |
| download | dotfiles-eb5a02ceb2008b7987e597e7d697fa81d0c5338b.tar.gz dotfiles-eb5a02ceb2008b7987e597e7d697fa81d0c5338b.tar.bz2 dotfiles-eb5a02ceb2008b7987e597e7d697fa81d0c5338b.zip | |
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).
Diffstat (limited to 'bootstrap-win')
| -rw-r--r-- | bootstrap-win/neovim.ps1 | 38 |
1 files changed, 29 insertions, 9 deletions
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 @@ | |||
| 11 | Aufruf (PowerShell, keine Admin-Rechte noetig): | 11 | Aufruf (PowerShell, keine Admin-Rechte noetig): |
| 12 | .\bootstrap-win\neovim.ps1 | 12 | .\bootstrap-win\neovim.ps1 |
| 13 | 13 | ||
| 14 | Hinweis: Einzelne winget-Paket-IDs (v.a. GnuWin32.Gawk, GnuWin32.Libxml2, | 14 | Hinweis: yamlfmt, gawk und xmllint/libxml2 sind bewusst NICHT enthalten - |
| 15 | google.yamlfmt, mvdan.shfmt, astral-sh.ruff) konnten in dieser Session | 15 | im Praxistest (24.07.2026) bestaetigt, dass es dafuer keine winget-Pakete |
| 16 | nicht gegen eine aktuelle winget-Quelle verifiziert werden. Schlaegt eine | 16 | unter den urspruenglich vermuteten IDs gibt. Siehe Install-Formatters und |
| 17 | Installation fehl, meldet das Skript das als Warnung (bricht nicht ab) | 17 | neovim-windows-setup.md fuer manuelle Alternativen. mvdan.shfmt und |
| 18 | und nennt den Befehl zum manuellen Nachschlagen ("winget search <name>"). | 18 | astral-sh.ruff liefen im Test erfolgreich durch. |
| 19 | |||
| 20 | Schlaegt eine winget-Installation trotzdem fehl, meldet das Skript das | ||
| 21 | als Warnung (bricht nicht ab) und zeigt die letzten Zeilen der winget- | ||
| 22 | Ausgabe zur Fehlersuche an. | ||
| 19 | 23 | ||
| 20 | C-Compiler fuer nvim-treesitter: kein winget-Paket enthalten, da MSVC auf | 24 | C-Compiler fuer nvim-treesitter: kein winget-Paket enthalten, da MSVC auf |
| 21 | den Zielsystemen bereits vorhanden ist. Neovim muss dafuer aus einer | 25 | den Zielsystemen bereits vorhanden ist. Neovim muss dafuer aus einer |
| @@ -56,8 +60,18 @@ function Install-WingetPackage([string]$Binary, [string]$Id) { | |||
| 56 | $output = winget install --id $Id -e --source winget --accept-package-agreements --accept-source-agreements --silent 2>&1 | 60 | $output = winget install --id $Id -e --source winget --accept-package-agreements --accept-source-agreements --silent 2>&1 |
| 57 | 61 | ||
| 58 | if ($LASTEXITCODE -ne 0) { | 62 | if ($LASTEXITCODE -ne 0) { |
| 63 | $text = $output -join " " | ||
| 59 | $lastLine = ($output | Select-Object -Last 3) -join " / " | 64 | $lastLine = ($output | Select-Object -Last 3) -join " / " |
| 60 | Write-Warn "winget install $Id fehlgeschlagen (Binary '$Binary' nicht gefunden): $lastLine -- Pruefen mit: winget search $Id" | 65 | |
| 66 | if ($text -match "bereits ein vorhandenes Paket|already installed|No applicable update") { | ||
| 67 | # Paket ist laut winget installiert, aber die Binary steht trotzdem | ||
| 68 | # nicht im PATH - z.B. weil der Installer (im --silent-Modus) die | ||
| 69 | # PATH-Registrierung uebersprungen hat. winget search hilft hier | ||
| 70 | # nicht weiter, da das Paket ja gefunden wurde. | ||
| 71 | 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." | ||
| 72 | } else { | ||
| 73 | Write-Warn "winget install $Id fehlgeschlagen (Binary '$Binary' nicht gefunden): $lastLine -- Pruefen mit: winget search $Id" | ||
| 74 | } | ||
| 61 | return | 75 | return |
| 62 | } | 76 | } |
| 63 | 77 | ||
| @@ -116,9 +130,15 @@ function Install-Formatters { | |||
| 116 | Install-WingetPackage -Binary "ruff" -Id "astral-sh.ruff" | 130 | Install-WingetPackage -Binary "ruff" -Id "astral-sh.ruff" |
| 117 | Install-WingetPackage -Binary "shfmt" -Id "mvdan.shfmt" | 131 | Install-WingetPackage -Binary "shfmt" -Id "mvdan.shfmt" |
| 118 | Install-WingetPackage -Binary "stylua" -Id "JohnnyMorganz.StyLua" | 132 | Install-WingetPackage -Binary "stylua" -Id "JohnnyMorganz.StyLua" |
| 119 | Install-WingetPackage -Binary "yamlfmt" -Id "google.yamlfmt" | 133 | |
| 120 | Install-WingetPackage -Binary "gawk" -Id "GnuWin32.Gawk" | 134 | # yamlfmt, gawk, xmllint: im Praxistest bestaetigt, dass es unter diesen |
| 121 | Install-WingetPackage -Binary "xmllint" -Id "GnuWin32.Libxml2" | 135 | # IDs kein winget-Paket gibt ("Es wurde kein Paket gefunden, das den |
| 136 | # Eingabekriterien entspricht"). Kein verifizierter Ersatz gefunden, | ||
| 137 | # deshalb bewusst nicht automatisiert - siehe neovim-windows-setup.md | ||
| 138 | # fuer manuelle Alternativen. conform.nvim faellt bei fehlendem | ||
| 139 | # Formatter fuer die jeweilige Dateiart einfach auf LSP-Formatierung | ||
| 140 | # zurueck (default_format_opts.lsp_format = "fallback"), betrifft also | ||
| 141 | # nur awk/xml/xsd/yaml-Dateien. | ||
| 122 | } | 142 | } |
| 123 | 143 | ||
| 124 | function Install-Tools { | 144 | function Install-Tools { |
