Skip to content

ZLS completely breaks in various ways when reading std.os.linux source. #2414

@The-Briel-Deal

Description

@The-Briel-Deal

Zig Version

0.15.0-dev.1145+3ae0ba096

ZLS Version

0.15.0-dev.293+45b855f7

Client / Code Editor / Extensions

nvim with lspconfig, also occurs with vscode zig extension

Steps to Reproduce and Observed Behavior

  1. Clone Zig compiler source code (latest master).
  2. Browse to https://github.com/ziglang/zig/blob/master/lib/std/os/linux.zig in your editor.

When I open this file in nvim, the inline hints are completely wrong, syntax highlighting is all over the place, hover doesn't work, it almost looks like zls is returning uninitialized memory to my editor.

Image

When I open this file in vscode (or code-oss, which is a fork), I get a message saying that zls crashed 5 times within 3 minutes so it is giving up on restarting.

Image

Expected Behavior

I would expect normal zls behavior in this file since it is valid and compilable zig code.

Relevant log output

2025-07-19 13:03:21.187 [info] Starting ZLS      0.15.0-dev.293+45b855f7 @ '/home/gabe/.config/Code - OSS/User/globalStorage/ziglang.vscode-zig/zls/x86_64-linux-0.15.0-dev.293+45b855f7/zls'
2025-07-19 13:03:21.187 [info] Log File:         /home/gabe/.cache/zls/zls.log (info)
2025-07-19 13:03:21.187 [info] Client Info:      Code - OSS (1.101.1)
2025-07-19 13:03:21.187 [info] Autofix Mode:     'source.fixall'
2025-07-19 13:03:21.187 [info] added Workspace Folder: file:///home/gabe/Code/zig
2025-07-19 13:03:21.196 [info] Set config option 'builtin_path' to "/home/gabe/.cache/zls/builtin.zig"
2025-07-19 13:03:21.196 [info] Set config option 'zig_lib_path' to "/home/gabe/.zvm/master/lib"
2025-07-19 13:03:21.197 [info] Set config option 'zig_exe_path' to "/home/gabe/.zvm/bin/zig"
2025-07-19 13:03:21.197 [info] Set config option 'build_runner_path' to "/home/gabe/.cache/zls/build_runner/1d53bc737952080cbb4ceac8f3674c20/build_runner.zig"
2025-07-19 13:03:21.197 [info] Set config option 'global_cache_path' to "/home/gabe/.cache/zls"
2025-07-19 13:03:21.211 [info] Loaded build file 'file:///home/gabe/Code/zig/build.zig'
2025-07-19 13:03:21.809 [error] error (default): ParseError
2025-07-19 13:03:21.809 [error] Server process exited with code 1.
2025-07-19 13:03:21.810 [info] Connection to server got closed. Server will restart.
2025-07-19 13:03:21.816 [info] Starting ZLS      0.15.0-dev.293+45b855f7 @ '/home/gabe/.config/Code - OSS/User/globalStorage/ziglang.vscode-zig/zls/x86_64-linux-0.15.0-dev.293+45b855f7/zls'
2025-07-19 13:03:21.816 [info] Log File:         /home/gabe/.cache/zls/zls.log (info)
2025-07-19 13:03:21.816 [info] Client Info:      Code - OSS (1.101.1)
2025-07-19 13:03:21.816 [info] Autofix Mode:     'source.fixall'
2025-07-19 13:03:21.816 [info] added Workspace Folder: file:///home/gabe/Code/zig
2025-07-19 13:03:21.822 [info] Set config option 'builtin_path' to "/home/gabe/.cache/zls/builtin.zig"
2025-07-19 13:03:21.822 [info] Set config option 'zig_lib_path' to "/home/gabe/.zvm/master/lib"
2025-07-19 13:03:21.822 [info] Set config option 'zig_exe_path' to "/home/gabe/.zvm/bin/zig"
2025-07-19 13:03:21.822 [info] Set config option 'build_runner_path' to "/home/gabe/.cache/zls/build_runner/1d53bc737952080cbb4ceac8f3674c20/build_runner.zig"
2025-07-19 13:03:21.822 [info] Set config option 'global_cache_path' to "/home/gabe/.cache/zls"
2025-07-19 13:03:21.827 [info] Loaded build file 'file:///home/gabe/Code/zig/build.zig'
2025-07-19 13:03:22.452 [error] error (default): ParseError
2025-07-19 13:03:22.452 [error] Server process exited with code 1.
2025-07-19 13:03:22.453 [info] Connection to server got closed. Server will restart.
2025-07-19 13:03:22.459 [info] Starting ZLS      0.15.0-dev.293+45b855f7 @ '/home/gabe/.config/Code - OSS/User/globalStorage/ziglang.vscode-zig/zls/x86_64-linux-0.15.0-dev.293+45b855f7/zls'
2025-07-19 13:03:22.459 [info] Log File:         /home/gabe/.cache/zls/zls.log (info)
2025-07-19 13:03:22.459 [info] Client Info:      Code - OSS (1.101.1)
2025-07-19 13:03:22.460 [info] Autofix Mode:     'source.fixall'
2025-07-19 13:03:22.460 [info] added Workspace Folder: file:///home/gabe/Code/zig
2025-07-19 13:03:22.466 [info] Set config option 'builtin_path' to "/home/gabe/.cache/zls/builtin.zig"
2025-07-19 13:03:22.466 [info] Set config option 'zig_lib_path' to "/home/gabe/.zvm/master/lib"
2025-07-19 13:03:22.466 [info] Set config option 'zig_exe_path' to "/home/gabe/.zvm/bin/zig"
2025-07-19 13:03:22.466 [info] Set config option 'build_runner_path' to "/home/gabe/.cache/zls/build_runner/1d53bc737952080cbb4ceac8f3674c20/build_runner.zig"
2025-07-19 13:03:22.466 [info] Set config option 'global_cache_path' to "/home/gabe/.cache/zls"
2025-07-19 13:03:22.471 [info] Loaded build file 'file:///home/gabe/Code/zig/build.zig'
2025-07-19 13:03:23.055 [error] error (default): ParseError
2025-07-19 13:03:23.055 [error] Server process exited with code 1.
2025-07-19 13:03:23.056 [info] Connection to server got closed. Server will restart.
2025-07-19 13:03:23.061 [info] Starting ZLS      0.15.0-dev.293+45b855f7 @ '/home/gabe/.config/Code - OSS/User/globalStorage/ziglang.vscode-zig/zls/x86_64-linux-0.15.0-dev.293+45b855f7/zls'
2025-07-19 13:03:23.061 [info] Log File:         /home/gabe/.cache/zls/zls.log (info)
2025-07-19 13:03:23.061 [info] Client Info:      Code - OSS (1.101.1)
2025-07-19 13:03:23.061 [info] Autofix Mode:     'source.fixall'
2025-07-19 13:03:23.061 [info] added Workspace Folder: file:///home/gabe/Code/zig
2025-07-19 13:03:23.067 [info] Set config option 'builtin_path' to "/home/gabe/.cache/zls/builtin.zig"
2025-07-19 13:03:23.067 [info] Set config option 'zig_lib_path' to "/home/gabe/.zvm/master/lib"
2025-07-19 13:03:23.067 [info] Set config option 'zig_exe_path' to "/home/gabe/.zvm/bin/zig"
2025-07-19 13:03:23.067 [info] Set config option 'build_runner_path' to "/home/gabe/.cache/zls/build_runner/1d53bc737952080cbb4ceac8f3674c20/build_runner.zig"
2025-07-19 13:03:23.067 [info] Set config option 'global_cache_path' to "/home/gabe/.cache/zls"
2025-07-19 13:03:23.072 [info] Loaded build file 'file:///home/gabe/Code/zig/build.zig'
2025-07-19 13:03:23.642 [error] error (default): ParseError
2025-07-19 13:03:23.643 [error] Server process exited with code 1.
2025-07-19 13:03:23.643 [info] Connection to server got closed. Server will restart.
2025-07-19 13:03:23.649 [info] Starting ZLS      0.15.0-dev.293+45b855f7 @ '/home/gabe/.config/Code - OSS/User/globalStorage/ziglang.vscode-zig/zls/x86_64-linux-0.15.0-dev.293+45b855f7/zls'
2025-07-19 13:03:23.649 [info] Log File:         /home/gabe/.cache/zls/zls.log (info)
2025-07-19 13:03:23.649 [info] Client Info:      Code - OSS (1.101.1)
2025-07-19 13:03:23.649 [info] Autofix Mode:     'source.fixall'
2025-07-19 13:03:23.649 [info] added Workspace Folder: file:///home/gabe/Code/zig
2025-07-19 13:03:23.655 [info] Set config option 'builtin_path' to "/home/gabe/.cache/zls/builtin.zig"
2025-07-19 13:03:23.655 [info] Set config option 'zig_lib_path' to "/home/gabe/.zvm/master/lib"
2025-07-19 13:03:23.655 [info] Set config option 'zig_exe_path' to "/home/gabe/.zvm/bin/zig"
2025-07-19 13:03:23.655 [info] Set config option 'build_runner_path' to "/home/gabe/.cache/zls/build_runner/1d53bc737952080cbb4ceac8f3674c20/build_runner.zig"
2025-07-19 13:03:23.655 [info] Set config option 'global_cache_path' to "/home/gabe/.cache/zls"
2025-07-19 13:03:23.660 [info] Loaded build file 'file:///home/gabe/Code/zig/build.zig'
2025-07-19 13:03:24.250 [error] error (default): ParseError
2025-07-19 13:03:24.250 [error] Server process exited with code 1.
2025-07-19 13:03:24.251 [error] The ZLS language server server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions