ZLS 0.17.0

Feature improvements

Don’t follow aliases when renaming symbol (#3199)

Consider the following source file:

const S = struct {
    fn foo() void {}
};
comptime {
    const foo = S.foo;
    foo();
}
  • Renaming foo() will only rename foo() and const foo
  • Renaming fn foo is unchanged and will rename all four locations
  • References are also unchanged and will provide all four locations no matter where it has been requested

Build System Integration

During the Zig 0.17 development cycle, the separation of maker process and configurer process has broken critical build system integration features in ZLS. Most of them have since been restored using the build system protocol but various regressions remain that are anticipated to be resolved during the next release cycle.