Skip to content

Commit

Permalink
provide both a version string and a semantic version in build options
Browse files Browse the repository at this point in the history
  • Loading branch information
leecannon committed Aug 19, 2023
1 parent 9c1f5c8 commit eee9b83
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 12 deletions.
6 changes: 4 additions & 2 deletions build.zig
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ pub fn build(b: *std.build.Builder) !void {
exe_options.addOption(bool, "use_gpa", b.option(bool, "use_gpa", "Good for debugging") orelse (optimize == .Debug));
exe_options.addOption(bool, "coverage", coverage);

const version = v: {
const version_string = v: {
const version_string = b.fmt("{d}.{d}.{d}", .{ zls_version.major, zls_version.minor, zls_version.patch });
const build_root_path = b.build_root.path orelse ".";

Expand Down Expand Up @@ -79,8 +79,10 @@ pub fn build(b: *std.build.Builder) !void {
},
}
};
exe_options.addOption([]const u8, "version_string", version_string);

exe_options.addOption([]const u8, "version", version);
const version = try std.SemanticVersion.parse(version_string);
exe_options.addOption(std.SemanticVersion, "version", version);

const known_folders_module = b.dependency("known_folders", .{}).module("known-folders");
exe.addModule("known-folders", known_folders_module);
Expand Down
15 changes: 7 additions & 8 deletions src/Server.zig
Original file line number Diff line number Diff line change
Expand Up @@ -493,38 +493,37 @@ fn initializeHandler(server: *Server, _: std.mem.Allocator, request: types.Initi

if (server.runtime_zig_version) |zig_version_wrapper| {
const zig_version = zig_version_wrapper.version;
const zls_version = comptime std.SemanticVersion.parse(build_options.version) catch unreachable;

const zig_version_simple = std.SemanticVersion{
.major = zig_version.major,
.minor = zig_version.minor,
.patch = 0,
};
const zls_version_simple = std.SemanticVersion{
.major = zls_version.major,
.minor = zls_version.minor,
.major = build_options.version.major,
.minor = build_options.version.minor,
.patch = 0,
};

switch (zig_version_simple.order(zls_version_simple)) {
.lt => {
server.showMessage(.Warning,
\\Zig `{}` is older than ZLS `{}`. Update Zig to avoid unexpected behavior.
, .{ zig_version, zls_version });
\\Zig `{s}` is older than ZLS `{s}`. Update Zig to avoid unexpected behavior.
, .{ zig_version_wrapper.raw_string, build_options.version_string });
},
.eq => {},
.gt => {
server.showMessage(.Warning,
\\Zig `{}` is newer than ZLS `{}`. Update ZLS to avoid unexpected behavior.
, .{ zig_version, zls_version });
\\Zig `{s}` is newer than ZLS `{s}`. Update ZLS to avoid unexpected behavior.
, .{ zig_version_wrapper.raw_string, build_options.version_string });
},
}
}

return .{
.serverInfo = .{
.name = "zls",
.version = build_options.version,
.version = build_options.version_string,
},
.capabilities = .{
.positionEncoding = switch (server.offset_encoding) {
Expand Down
4 changes: 2 additions & 2 deletions src/main.zig
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ fn parseArgs(allocator: std.mem.Allocator) !ParseArgsResult {
return result;
}
if (specified.get(.version)) {
try stdout.writeAll(build_options.version ++ "\n");
try stdout.writeAll(build_options.version_string ++ "\n");
return result;
}
if (specified.get(.@"compiler-version")) {
Expand Down Expand Up @@ -293,7 +293,7 @@ pub fn main() !void {
.exit => return,
}

logger.info("Starting ZLS {s} @ '{s}'", .{ build_options.version, result.zls_exe_path });
logger.info("Starting ZLS {s} @ '{s}'", .{ build_options.version_string, result.zls_exe_path });

var config = try configuration.getConfig(allocator, result.config_path);
defer config.deinit(allocator);
Expand Down

0 comments on commit eee9b83

Please sign in to comment.