williamboman / mason.nvim

Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.
Apache License 2.0
7.22k stars 258 forks source link

perf(registry): significantly improve the "file:" protocol performance #1702

Closed williamboman closed 1 month ago

williamboman commented 1 month ago

Instead of spawning a separate yq process for each registry package, utilize multi-document parsing through a single process.

This should have significant performance improvements on all platforms, but especially Windows, due to bottlenecks caused by AV software.

IMPORTANT: Writing all package definitions as-is via stdin like this works because packages in the registry (at least the core registry) must start with a document header (---), effectively acting as a document separator.