[json] performance warning message can't be ignored. Fixes #105988

This commit is contained in:
Martin Aeschlimann
2020-11-27 17:23:57 +01:00
parent e6d6661247
commit 1a6d7f3118
3 changed files with 20 additions and 2 deletions

View File

@@ -71,6 +71,7 @@ namespace SettingIds {
export const enableFormatter = 'json.format.enable';
export const enableSchemaDownload = 'json.schemaDownload.enable';
export const maxItemsComputed = 'json.maxItemsComputed';
export const maxItemsExceededInformation = 'json.maxItemsExceededInformation';
}
export interface TelemetryReporter {
@@ -298,8 +299,19 @@ export function startClient(context: ExtensionContext, newLanguageClient: Langua
}
}));
client.onNotification(ResultLimitReachedNotification.type, message => {
window.showInformationMessage(`${message}\n${localize('configureLimit', 'Use setting \'{0}\' to configure the limit.', SettingIds.maxItemsComputed)}`);
client.onNotification(ResultLimitReachedNotification.type, async message => {
const shouldPrompt = workspace.getConfiguration().get<boolean>(SettingIds.maxItemsExceededInformation) !== false;
if (shouldPrompt) {
const ok = localize('ok', "Ok");
const openSettings = localize('goToSetting', 'Open Settings');
const neverAgain = localize('yes never again', "Don't Show Again");
const pick = await window.showInformationMessage(`${message}\n${localize('configureLimit', 'Use setting \'{0}\' to configure the limit.', SettingIds.maxItemsComputed)}`, ok, openSettings, neverAgain);
if (pick === neverAgain) {
await workspace.getConfiguration().update(SettingIds.maxItemsExceededInformation, false, true);
} else if (pick === openSettings) {
await commands.executeCommand('workbench.action.openSettings', SettingIds.maxItemsComputed);
}
}
});
function updateFormatterRegistration() {