Replaces releases/latest/download/... with releases/download/$version/...
for 19 installers (38 files) so each script has an extractable version=
or set VERSION= line that update-installer-versions.sh can rewrite.
Drive-by fixes folded in:
- install-markdown-oxide.cmd pointed at atusy/markdown-oxide (404). Repointed
to Feel-ix-343/markdown-oxide upstream which does publish a Windows binary.
- install-systemd-lsp.{sh,cmd} had v2025.07.10 hardcoded mid-URL; pinned to
current latest v2026.04.21.
- install-typos-lsp.{sh,cmd} dropped the curl-redirect-to-learn-the-version
dance in favor of a pinned tag.
- install-omnisharp-lsp.{sh,cmd}: the script's local 'version' (dotnet --version
output) was renamed to 'dotnet_version' so the pinned release version can
coexist without shadowing.
biome and oxlint are left unchanged: biome's tag (@biomejs/biome@X.Y.Z) needs
URL encoding, and oxc-project/oxc publishes parallel apps_v*/crates_v* streams
where releases/latest is ambiguous. Both would need ad-hoc handling.
The old script looped through LLVM 9-15 trying clang+llvm-X-pc-linux-gnu.tar.xz
asset names that no longer exist. Replaced with a pinned version variable
($version=22.1.6) and the modern LLVM-{version}-Linux-{ARCH}.tar.xz /
LLVM-{version}-macOS-ARM64.tar.xz asset names. Now also recognized by
update-installer-versions.sh.
The requires warning (e.g. "cl-lsp requires ros") was shown when
opening a file even if the server was not explicitly requested.
Now the warning is only shown when a server name is explicitly
specified (e.g. :LspInstallServer cl-lsp).
Replace inline has('win32') + substitute(path, '/', '\', 'g') pattern
with a single helper function. Keep paths as '/' internally in
servers_dir() and global_settings_dir() to avoid mixed separators
when concatenating, and normalize only at external boundaries.
- s:is_server_disabled() for disabled check
- s:is_server_filtered_by_default() for default filetype check
- s:has_missing_requires() for requirements check
- s:installer_path() for installer script path construction
Reduces duplication across s:vim_lsp_installer(),
s:vim_lsp_load_or_suggest(), and lsp_settings#complete_install().