aboutsummaryrefslogtreecommitdiff
path: root/bootstrap-win/neovim.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap-win/neovim.ps1')
-rw-r--r--bootstrap-win/neovim.ps138
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
124function Install-Tools { 144function Install-Tools {