Skip to content

llogick/zigscient

Repository files navigation

Zigscient

A Zig Language Server

A drop-in alternative to ZLS

What's different:

  • Improved editing responsiveness for large documents

    • Uses an extended parser, that reuses tokens and nodes to process document changes faster
  • Improved syntax error handling

    • Uses an extended parser, that works around some common parser deficiencies due to syntax errors
  • Reworked Modules Collection and Lookup

    (This may look like a step back, but is needed for correct module resolution for modules created using meta-programming that have the same name)

  • Propagates error messages originating in currently not-open-in-editor documents based (0.16.x and earlier)

    on reference-trace, eg Writers' print(fmt, args)

    std.debug.print("{}", .{});      [!] too few arguments
    std.debug.print("", .{1});       [!] unused argument in ''
    std.debug.print("{s}", .{1});    [!] invalid format string ..
    [!] indicates that the error did not originate in the current document/file
    
  • Integrated Incremental Compilation [Experimental] (0.17 +)

    Performs an incremental compilation update on every document change.

    Does not require saving the document -- uses the in-memory document's data.

    Basic but important info

    Zig's incremental compilation is still not fully robust,
    if you find the experience less than optimal set disable_compilations to true

Building

ZIG_DEBUG_MAKER=TRUE ZIG_LIB_DIR=./lib zig build -Doptimize=ReleaseFast

Note

Remember to rename the executable or update your editor's configuration

About

A Zig Language Server

Topics

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE-ZIG
MIT
LICENSE-ZLS

Stars

146 stars

Watchers

7 watching

Forks

Contributors