src/goToolsInformation.ts: pin all third party tool versions

Pin all tool versions, other than gopls, dlv, and staticcheck
which we monitor actively.

Change-Id: I358e0681c1945653faf04a5e20b03c890a17d8e8
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/435375
Run-TryBot: Jamal Carvalho <jamal@golang.org>
Reviewed-by: Suzy Mueller <suzmue@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
diff --git a/src/goToolsInformation.ts b/src/goToolsInformation.ts
index bdb617b..4007acc 100644
--- a/src/goToolsInformation.ts
+++ b/src/goToolsInformation.ts
@@ -12,7 +12,8 @@
 		isImportant: true,
 		replacedByGopls: true,
 		description: 'Auto-completion, does not work with modules',
-		close: gocodeClose
+		close: gocodeClose,
+		defaultVersion: 'v0.0.0-20200405233807-4acdcbdea79d'
 	},
 	'gocode-gomod': {
 		name: 'gocode-gomod',
@@ -21,7 +22,8 @@
 		isImportant: true,
 		replacedByGopls: true,
 		description: 'Auto-completion, works with modules',
-		minimumGoVersion: semver.coerce('1.11')
+		minimumGoVersion: semver.coerce('1.11'),
+		defaultVersion: 'v1.0.0'
 	},
 	'go-outline': {
 		name: 'go-outline',
@@ -29,7 +31,8 @@
 		modulePath: 'github.com/ramya-rao-a/go-outline',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Go to symbol in file' // GoDocumentSymbolProvider, used by 'run test' codelens
+		description: 'Go to symbol in file', // GoDocumentSymbolProvider, used by 'run test' codelens
+		defaultVersion: 'v1.0.0'
 	},
 	'go-symbols': {
 		name: 'go-symbols',
@@ -37,7 +40,8 @@
 		modulePath: 'github.com/acroca/go-symbols',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Go to symbol in workspace'
+		description: 'Go to symbol in workspace',
+		defaultVersion: 'v0.1.1'
 	},
 	'guru': {
 		name: 'guru',
@@ -61,7 +65,8 @@
 		modulePath: 'github.com/fatih/gomodifytags',
 		replacedByGopls: false,
 		isImportant: false,
-		description: 'Modify tags on structs'
+		description: 'Modify tags on structs',
+		defaultVersion: 'v1.16.0'
 	},
 	'goplay': {
 		name: 'goplay',
@@ -69,7 +74,8 @@
 		modulePath: 'github.com/haya14busa/goplay',
 		replacedByGopls: false,
 		isImportant: false,
-		description: 'The Go playground'
+		description: 'The Go playground',
+		defaultVersion: 'v1.0.0'
 	},
 	'impl': {
 		name: 'impl',
@@ -77,7 +83,8 @@
 		modulePath: 'github.com/josharian/impl',
 		replacedByGopls: false,
 		isImportant: false,
-		description: 'Stubs for interfaces'
+		description: 'Stubs for interfaces',
+		defaultVersion: 'v1.1.0'
 	},
 	'gotype-live': {
 		name: 'gotype-live',
@@ -85,7 +92,8 @@
 		modulePath: 'github.com/tylerb/gotype-live',
 		replacedByGopls: true, // TODO(github.com/golang/vscode-go/issues/1021): recommend users to turn off.
 		isImportant: false,
-		description: 'Show errors as you type'
+		description: 'Show errors as you type',
+		defaultVersion: 'v0.0.0-20200426224044-fc0b594a8b09'
 	},
 	'godef': {
 		name: 'godef',
@@ -93,7 +101,8 @@
 		modulePath: 'github.com/rogpeppe/godef',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Go to definition'
+		description: 'Go to definition',
+		defaultVersion: 'v1.1.2'
 	},
 	'gogetdoc': {
 		name: 'gogetdoc',
@@ -101,7 +110,8 @@
 		modulePath: 'github.com/zmb3/gogetdoc',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Go to definition & text shown on hover'
+		description: 'Go to definition & text shown on hover',
+		defaultVersion: 'v0.0.0-20190228002656-b37376c5da6a'
 	},
 	'gofumports': {
 		name: 'gofumports',
@@ -118,7 +128,8 @@
 		modulePath: 'mvdan.cc/gofumpt',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Formatter'
+		description: 'Formatter',
+		defaultVersion: 'v0.4.0'
 	},
 	'goimports': {
 		name: 'goimports',
@@ -134,7 +145,8 @@
 		modulePath: 'github.com/sqs/goreturns',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Formatter'
+		description: 'Formatter',
+		defaultVersion: 'v0.0.0-20181028201513-538ac6014518'
 	},
 	'goformat': {
 		name: 'goformat',
@@ -142,7 +154,8 @@
 		modulePath: 'winterdrache.de/goformat/goformat',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Formatter'
+		description: 'Formatter',
+		defaultVersion: 'v0.0.0-20180512004123-256ef38c4271'
 	},
 	'gotests': {
 		name: 'gotests',
@@ -151,7 +164,8 @@
 		replacedByGopls: false,
 		isImportant: false,
 		description: 'Generate unit tests',
-		minimumGoVersion: semver.coerce('1.9')
+		minimumGoVersion: semver.coerce('1.9'),
+		defaultVersion: 'v1.6.0'
 	},
 	// TODO(github.com/golang/vscode-go/issues/189): consider disabling lint when gopls is turned on.
 	'golint': {
@@ -177,14 +191,16 @@
 		modulePath: 'github.com/golangci/golangci-lint',
 		replacedByGopls: false,
 		isImportant: true,
-		description: 'Linter'
+		description: 'Linter',
+		defaultVersion: 'v1.49.0'
 	},
 	'revive': {
 		name: 'revive',
 		importPath: 'github.com/mgechev/revive',
 		modulePath: 'github.com/mgechev/revive',
 		isImportant: true,
-		description: 'Linter'
+		description: 'Linter',
+		defaultVersion: 'v1.2.3'
 	},
 	'gopls': {
 		name: 'gopls',
@@ -217,7 +233,8 @@
 		modulePath: 'github.com/davidrjenni/reftools',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Fill structs with defaults'
+		description: 'Fill structs with defaults',
+		defaultVersion: 'v0.0.0-20210213085015-40322ffdc2e4'
 	},
 	'godoctor': {
 		name: 'godoctor',
@@ -225,6 +242,7 @@
 		modulePath: 'github.com/godoctor/godoctor',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Extract to functions and variables'
+		description: 'Extract to functions and variables',
+		defaultVersion: 'v0.0.0-20220520165350-b665b8ff3f35'
 	}
 };
diff --git a/tools/allTools.ts.in b/tools/allTools.ts.in
index 7088281..89f4d63 100644
--- a/tools/allTools.ts.in
+++ b/tools/allTools.ts.in
@@ -10,7 +10,8 @@
 		isImportant: true,
 		replacedByGopls: true,
 		description: 'Auto-completion, does not work with modules',
-		close: gocodeClose
+		close: gocodeClose,
+		defaultVersion: 'v0.0.0-20200405233807-4acdcbdea79d'
 	},
 	'gocode-gomod': {
 		name: 'gocode-gomod',
@@ -19,7 +20,8 @@
 		isImportant: true,
 		replacedByGopls: true,
 		description: 'Auto-completion, works with modules',
-		minimumGoVersion: semver.coerce('1.11')
+		minimumGoVersion: semver.coerce('1.11'),
+		defaultVersion: 'v1.0.0'
 	},
 	'go-outline': {
 		name: 'go-outline',
@@ -27,7 +29,8 @@
 		modulePath: 'github.com/ramya-rao-a/go-outline',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Go to symbol in file' // GoDocumentSymbolProvider, used by 'run test' codelens
+		description: 'Go to symbol in file', // GoDocumentSymbolProvider, used by 'run test' codelens
+		defaultVersion: 'v1.0.0'
 	},
 	'go-symbols': {
 		name: 'go-symbols',
@@ -35,7 +38,8 @@
 		modulePath: 'github.com/acroca/go-symbols',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Go to symbol in workspace'
+		description: 'Go to symbol in workspace',
+		defaultVersion: 'v0.1.1'
 	},
 	'guru': {
 		name: 'guru',
@@ -59,7 +63,8 @@
 		modulePath: 'github.com/fatih/gomodifytags',
 		replacedByGopls: false,
 		isImportant: false,
-		description: 'Modify tags on structs'
+		description: 'Modify tags on structs',
+		defaultVersion: 'v1.16.0'
 	},
 	'goplay': {
 		name: 'goplay',
@@ -67,7 +72,8 @@
 		modulePath: 'github.com/haya14busa/goplay',
 		replacedByGopls: false,
 		isImportant: false,
-		description: 'The Go playground'
+		description: 'The Go playground',
+		defaultVersion: 'v1.0.0'
 	},
 	'impl': {
 		name: 'impl',
@@ -75,7 +81,8 @@
 		modulePath: 'github.com/josharian/impl',
 		replacedByGopls: false,
 		isImportant: false,
-		description: 'Stubs for interfaces'
+		description: 'Stubs for interfaces',
+		defaultVersion: 'v1.1.0'
 	},
 	'gotype-live': {
 		name: 'gotype-live',
@@ -83,7 +90,8 @@
 		modulePath: 'github.com/tylerb/gotype-live',
 		replacedByGopls: true, // TODO(github.com/golang/vscode-go/issues/1021): recommend users to turn off.
 		isImportant: false,
-		description: 'Show errors as you type'
+		description: 'Show errors as you type',
+		defaultVersion: 'v0.0.0-20200426224044-fc0b594a8b09'
 	},
 	'godef': {
 		name: 'godef',
@@ -91,7 +99,8 @@
 		modulePath: 'github.com/rogpeppe/godef',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Go to definition'
+		description: 'Go to definition',
+		defaultVersion: 'v1.1.2'
 	},
 	'gogetdoc': {
 		name: 'gogetdoc',
@@ -99,7 +108,8 @@
 		modulePath: 'github.com/zmb3/gogetdoc',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Go to definition & text shown on hover'
+		description: 'Go to definition & text shown on hover',
+		defaultVersion: 'v0.0.0-20190228002656-b37376c5da6a'
 	},
 	'gofumports': {
 		name: 'gofumports',
@@ -116,7 +126,8 @@
 		modulePath: 'mvdan.cc/gofumpt',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Formatter'
+		description: 'Formatter',
+		defaultVersion: 'v0.4.0'
 	},
 	'goimports': {
 		name: 'goimports',
@@ -132,7 +143,8 @@
 		modulePath: 'github.com/sqs/goreturns',
 		replacedByGopls: true,
 		isImportant: true,
-		description: 'Formatter'
+		description: 'Formatter',
+		defaultVersion: 'v0.0.0-20181028201513-538ac6014518'
 	},
 	'goformat': {
 		name: 'goformat',
@@ -140,7 +152,8 @@
 		modulePath: 'winterdrache.de/goformat/goformat',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Formatter'
+		description: 'Formatter',
+		defaultVersion: 'v0.0.0-20180512004123-256ef38c4271'
 	},
 	'gotests': {
 		name: 'gotests',
@@ -149,7 +162,8 @@
 		replacedByGopls: false,
 		isImportant: false,
 		description: 'Generate unit tests',
-		minimumGoVersion: semver.coerce('1.9')
+		minimumGoVersion: semver.coerce('1.9'),
+		defaultVersion: 'v1.6.0'
 	},
 	// TODO(github.com/golang/vscode-go/issues/189): consider disabling lint when gopls is turned on.
 	'golint': {
@@ -175,14 +189,16 @@
 		modulePath: 'github.com/golangci/golangci-lint',
 		replacedByGopls: false,
 		isImportant: true,
-		description: 'Linter'
+		description: 'Linter',
+		defaultVersion: 'v1.49.0'
 	},
 	'revive': {
 		name: 'revive',
 		importPath: 'github.com/mgechev/revive',
 		modulePath: 'github.com/mgechev/revive',
 		isImportant: true,
-		description: 'Linter'
+		description: 'Linter',
+		defaultVersion: 'v1.2.3'
 	},
 	'gopls': {
 		name: 'gopls',
@@ -215,7 +231,8 @@
 		modulePath: 'github.com/davidrjenni/reftools',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Fill structs with defaults'
+		description: 'Fill structs with defaults',
+		defaultVersion: 'v0.0.0-20210213085015-40322ffdc2e4'
 	},
 	'godoctor': {
 		name: 'godoctor',
@@ -223,6 +240,7 @@
 		modulePath: 'github.com/godoctor/godoctor',
 		replacedByGopls: true,
 		isImportant: false,
-		description: 'Extract to functions and variables'
+		description: 'Extract to functions and variables',
+		defaultVersion: 'v0.0.0-20220520165350-b665b8ff3f35'
 	}
-};
+};
\ No newline at end of file