diff --git a/.vscode/launch.json b/.vscode/launch.json
index ab3634d..418e3d2 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -63,6 +63,7 @@
 			"env": {
 				"VSCODE_GO_IN_TEST": "1",  // Disable code that shouldn't be used in test
 				"MOCHA_TIMEOUT": "999999",
+				"MOCHA_GREP": "Error checking"
 			},
 			"stopOnEntry": false,
 			"sourceMaps": true,
diff --git a/docs/contributing.md b/docs/contributing.md
index e2fa033..48a7581 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -63,8 +63,6 @@
     code .
     ```
 
-3) Make sure the `window.openFoldersInNewWindow` setting is not `"on"`.
-
 #### Lint
 
 You can run `npm run lint` on the command-line to check for lint errors in your program. You can also use the [TSLint](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-tslint-plugin) plugin to see errors as you code.
diff --git a/test/integration/extension.test.ts b/test/integration/extension.test.ts
index 7fb2b92..6446c55 100644
--- a/test/integration/extension.test.ts
+++ b/test/integration/extension.test.ts
@@ -405,13 +405,7 @@
 		await testHoverProvider(config, testCases);
 	});
 
-	test('Linting - concurrent process cancelation', async function () {
-		if (!goVersion.lt('1.18')) {
-			// TODO(hyangah): reenable test when staticcheck for go1.18 is released
-			// https://github.com/dominikh/go-tools/issues/1145
-			this.skip();
-		}
-
+	test('Linting - concurrent process cancelation', async () => {
 		const util = require('../../src/util');
 		const processutil = require('../../src/utils/processUtils');
 		sinon.spy(util, 'runTool');
@@ -440,12 +434,7 @@
 		);
 	});
 
-	test('Linting - lint errors with multiple open files', async function () {
-		if (!goVersion.lt('1.18')) {
-			// TODO(hyangah): reenable test when staticcheck for go1.18 is released
-			// https://github.com/dominikh/go-tools/issues/1145
-			this.skip();
-		}
+	test('Linting - lint errors with multiple open files', async () => {
 		// handleDiagnosticErrors may adjust the lint errors' ranges to make the error more visible.
 		// This adjustment applies only to the text documents known to vscode. This test checks
 		// the adjustment is made consistently across multiple open text documents.
@@ -482,13 +471,7 @@
 		assert.deepStrictEqual(file1Diagnostics[0], file2Diagnostics[0]);
 	});
 
-	test('Error checking', async function () {
-		if (!goVersion.lt('1.18')) {
-			// TODO(hyangah): reenable test when staticcheck for go1.18 is released
-			// https://github.com/dominikh/go-tools/issues/1145
-			this.skip();
-		}
-
+	test('Error checking', async () => {
 		const config = Object.create(getGoConfig(), {
 			vetOnSave: { value: 'package' },
 			vetFlags: { value: ['-all'] },
@@ -515,7 +498,15 @@
 
 		// `check` itself doesn't run deDupeDiagnostics, so we expect all vet/lint errors.
 		const expected = [...expectedLintErrors, ...expectedBuildVetErrors];
-		const diagnostics = await check({}, vscode.Uri.file(path.join(fixturePath, 'errorsTest', 'errors.go')), config);
+		const diagnostics = await check(
+			{
+				buildDiagnosticCollection: vscode.languages.createDiagnosticCollection('buildtest'),
+				lintDiagnosticCollection: vscode.languages.createDiagnosticCollection('linttest'),
+				vetDiagnosticCollection: vscode.languages.createDiagnosticCollection('vettest')
+			},
+			vscode.Uri.file(path.join(fixturePath, 'errorsTest', 'errors.go')),
+			config
+		);
 		const sortedDiagnostics = ([] as ICheckResult[]).concat
 			.apply(
 				[],
