diff --git a/src/goLint.ts b/src/goLint.ts
index 1cd4346..cad38de 100644
--- a/src/goLint.ts
+++ b/src/goLint.ts
@@ -42,7 +42,7 @@
 
 	goLint(documentUri, goConfig, scope)
 		.then((warnings) => {
-			handleDiagnosticErrors(editor ? editor.document : null, warnings, lintDiagnosticCollection);
+			handleDiagnosticErrors(editor ? editor.document : null, warnings, lintDiagnosticCollection, 'go-lint');
 			diagnosticsStatusBarItem.hide();
 		})
 		.catch((err) => {
diff --git a/src/goMain.ts b/src/goMain.ts
index cb8e3bb..d45c431 100644
--- a/src/goMain.ts
+++ b/src/goMain.ts
@@ -239,7 +239,9 @@
 
 	buildDiagnosticCollection = vscode.languages.createDiagnosticCollection('go');
 	ctx.subscriptions.push(buildDiagnosticCollection);
-	lintDiagnosticCollection = vscode.languages.createDiagnosticCollection('go-lint');
+	lintDiagnosticCollection = vscode.languages.createDiagnosticCollection(
+		lintDiagnosticCollectionName(getGoConfig()['lintTool'])
+	);
 	ctx.subscriptions.push(lintDiagnosticCollection);
 	vetDiagnosticCollection = vscode.languages.createDiagnosticCollection('go-vet');
 	ctx.subscriptions.push(vetDiagnosticCollection);
@@ -471,6 +473,15 @@
 					});
 				}
 			}
+			if (e.affectsConfiguration('go.lintTool')) {
+				const lintTool = lintDiagnosticCollectionName(updatedGoConfig['lintTool']);
+				if (lintDiagnosticCollection && lintDiagnosticCollection.name !== lintTool) {
+					lintDiagnosticCollection.dispose();
+					lintDiagnosticCollection = vscode.languages.createDiagnosticCollection(lintTool);
+					ctx.subscriptions.push(lintDiagnosticCollection);
+					// TODO: actively maintain our own disposables instead of keeping pushing to ctx.subscription.
+				}
+			}
 		})
 	);
 
@@ -947,3 +958,10 @@
 		}
 	}
 }
+
+function lintDiagnosticCollectionName(lintToolName: string) {
+	if (!lintToolName || lintToolName === 'golint') {
+		return 'go-lint';
+	}
+	return `go-${lintToolName}`;
+}
diff --git a/src/util.ts b/src/util.ts
index 9439481..2c3d3e0 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -845,7 +845,8 @@
 export function handleDiagnosticErrors(
 	document: vscode.TextDocument,
 	errors: ICheckResult[],
-	diagnosticCollection: vscode.DiagnosticCollection
+	diagnosticCollection: vscode.DiagnosticCollection,
+	diagnosticSource?: string
 ) {
 	diagnosticCollection.clear();
 
@@ -891,7 +892,8 @@
 		const range = new vscode.Range(error.line - 1, startColumn, error.line - 1, endColumn);
 		const severity = mapSeverityToVSCodeSeverity(error.severity);
 		const diagnostic = new vscode.Diagnostic(range, error.msg, severity);
-		diagnostic.source = diagnosticCollection.name;
+		// vscode uses source for deduping diagnostics.
+		diagnostic.source = diagnosticSource || diagnosticCollection.name;
 		let diagnostics = diagnosticMap.get(canonicalFile);
 		if (!diagnostics) {
 			diagnostics = [];
