`lsp-mode` now has built-in configuration for zls, so the only
configuration that might be required is setting the location of the zls
executable (or placing it in the PATH).
`doom-emacs` has not updated to use the latest version of `lsp-mode`
yet, so its configuration cannot be simplified. However, I've updated
the snippet for configuration to avoid loading `lsp-mode` on startup,
which can cause significant slowdown to Emacs startup, and instead defer
loading it until it is required.
Instead, we now read a configuration file, zls.json in the same folder as the executable.
Options are defined in the struct config.zig and must have default values.
The only option right now is enable_snippets and it defaults to true.
Switched to readAll and writeAll stream functions
Disabled logs on non-debug builds
Created freeDocument(doc), closeDocument(uri), called at appropriate sites
Removed _ = expr; for void values
Added and clarified some logging messages
Simplified builtin_completion generation
The JSON parser is now reused but reset after parsing a RPC
Fix memory leak when closing a document (last mem. leak)
Renamed leak_alloc to debug_alloc
Removed catch return statements from main(), rely on try to also get stacktraces instead