Skip to content

Commit 701804b

Browse files
committed
Guard find-references with experimental setting
1 parent 66665bf commit 701804b

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

extensions/ql-vscode/src/config.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,17 @@ class Setting {
3939

4040
const ROOT_SETTING = new Setting('codeQL');
4141

42+
// Enable experimental features
43+
44+
/**
45+
* This setting is deliberately not in package.json so that it does
46+
* not appear in the settings ui in vscode itself. If users want to
47+
* enable experimental features, they can add
48+
* "codeQl.experimentalFeatures" directly in their vscode settings
49+
* json file.
50+
*/
51+
export const EXPERIMENTAL_FEATURES_SETTING = new Setting('experimentalFeatures', ROOT_SETTING);
52+
4253
// Distribution configuration
4354

4455
const DISTRIBUTION_SETTING = new Setting('cli', ROOT_SETTING);

extensions/ql-vscode/src/extension.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { LanguageClient } from 'vscode-languageclient';
33
import { testExplorerExtensionId, TestHub } from 'vscode-test-adapter-api';
44
import * as archiveFilesystemProvider from './archive-filesystem-provider';
55
import { CodeQLCliServer } from './cli';
6-
import { DistributionConfigListener, QueryHistoryConfigListener, QueryServerConfigListener } from './config';
6+
import { DistributionConfigListener, QueryHistoryConfigListener, QueryServerConfigListener, EXPERIMENTAL_FEATURES_SETTING } from './config';
77
import { DatabaseManager } from './databases';
88
import { DatabaseUI } from './databases-ui';
99
import { TemplateQueryDefinitionProvider, TemplateQueryReferenceProvider } from './definitions';
@@ -336,14 +336,16 @@ async function activateWithInstalledDistribution(ctx: ExtensionContext, distribu
336336

337337
ctx.subscriptions.push(client.start());
338338

339-
languages.registerDefinitionProvider(
340-
{ scheme: archiveFilesystemProvider.zipArchiveScheme },
341-
new TemplateQueryDefinitionProvider(cliServer, qs, dbm)
342-
);
343-
languages.registerReferenceProvider(
344-
{ scheme: archiveFilesystemProvider.zipArchiveScheme },
345-
new TemplateQueryReferenceProvider(cliServer, qs, dbm)
346-
);
339+
if (EXPERIMENTAL_FEATURES_SETTING.getValue()) {
340+
languages.registerDefinitionProvider(
341+
{ scheme: archiveFilesystemProvider.zipArchiveScheme },
342+
new TemplateQueryDefinitionProvider(cliServer, qs, dbm)
343+
);
344+
languages.registerReferenceProvider(
345+
{ scheme: archiveFilesystemProvider.zipArchiveScheme },
346+
new TemplateQueryReferenceProvider(cliServer, qs, dbm)
347+
);
348+
}
347349
}
348350

349351
function initializeLogging(ctx: ExtensionContext): void {

0 commit comments

Comments
 (0)