goLanguageServer: use semver.parse instead of semver.coerce
Didn't spend enough time investigating why this is necessary, but this
fixes the handling of pre-releases. Noticed that it wasn't suggesting an
update for a pre-release for me (when I already had a pre-release
installed).
Change-Id: I8d4bd24a922d593eb4e214447534fccba10c4fd7
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/239984
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
diff --git a/src/goLanguageServer.ts b/src/goLanguageServer.ts
index ae0aee7..7e772d3 100644
--- a/src/goLanguageServer.ts
+++ b/src/goLanguageServer.ts
@@ -511,7 +511,10 @@
// If the user's version does not contain a timestamp,
// default to a semver comparison of the two versions.
- const usersVersionSemver = semver.coerce(usersVersion, { includePrerelease: true, loose: true });
+ const usersVersionSemver = semver.parse(usersVersion, {
+ includePrerelease: true,
+ loose: true,
+ });
return semver.lt(usersVersionSemver, latestVersion) ? latestVersion : null;
}
@@ -678,6 +681,7 @@
throwResponseError: true
});
} catch (e) {
+ console.log(`Error sending request to ${proxy}: ${e}`);
return null;
}
return data;
diff --git a/test/gopls/update.test.ts b/test/gopls/update.test.ts
index dbe5312..bac3aaf 100644
--- a/test/gopls/update.test.ts
+++ b/test/gopls/update.test.ts
@@ -14,7 +14,7 @@
test('prompt for update', async () => {
const tool = getTool('gopls');
- const toSemver = (v: string) => semver.coerce(v, {includePrerelease: true, loose: true});
+ const toSemver = (v: string) => semver.parse(v, { includePrerelease: true, loose: true });
// Fake data stubbed functions will serve.
const latestVersion = toSemver('0.4.1');