From 0dc841b995b7910eefb2f3e84e771aef7349bd00 Mon Sep 17 00:00:00 2001 From: Marko Tomljenovic Date: Fri, 22 Jul 2011 11:13:19 +0200 Subject: [PATCH] Bug 351076 - Make MAX_DELAY of editor content assist computation configurable --- core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF | 2 +- core/org.eclipse.cdt.ui/plugin.xml | 3 ++ core/org.eclipse.cdt.ui/pom.xml | 2 +- .../CodeAssistAdvancedConfigurationBlock.java | 47 ++++++++++++++++-- .../ui/preferences/PreferencesMessages.java | 3 ++ .../PreferencesMessages.properties | 3 ++ .../CompletionProposalComputerDescriptor.java | 33 ++++++++---- .../ContentAssistPreference.java | 2 + .../eclipse/cdt/ui/PreferenceConstants.java | 12 +++++ .../images/contentAssist_adv_preferences.png | Bin 26347 -> 26017 bytes .../cdt_u_c_editor_con_assist_adv.htm | 7 +++ 11 files changed, 99 insertions(+), 15 deletions(-) diff --git a/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF b/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF index 643438de4c3..44985f67445 100644 --- a/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF +++ b/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.ui; singleton:=true -Bundle-Version: 5.3.0.qualifier +Bundle-Version: 5.4.0.qualifier Bundle-Activator: org.eclipse.cdt.ui.CUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index 047744ab5e4..8bdb81c1c9c 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -3957,6 +3957,9 @@ + + diff --git a/core/org.eclipse.cdt.ui/pom.xml b/core/org.eclipse.cdt.ui/pom.xml index 0f84ce7b152..fb32604c943 100644 --- a/core/org.eclipse.cdt.ui/pom.xml +++ b/core/org.eclipse.cdt.ui/pom.xml @@ -11,7 +11,7 @@ ../../pom.xml - 5.3.0-SNAPSHOT + 5.4.0-SNAPSHOT org.eclipse.cdt.ui eclipse-plugin diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistAdvancedConfigurationBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistAdvancedConfigurationBlock.java index b05addacf73..f7485d9bc59 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistAdvancedConfigurationBlock.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistAdvancedConfigurationBlock.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2010 IBM Corporation and others. + * Copyright (c) 2005, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -55,6 +55,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Link; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.Text; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.commands.ICommandService; import org.eclipse.ui.dialogs.PreferencesUtil; @@ -66,6 +67,7 @@ import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.PreferenceConstants; import org.eclipse.cdt.internal.ui.dialogs.IStatusChangeListener; +import org.eclipse.cdt.internal.ui.dialogs.StatusInfo; import org.eclipse.cdt.internal.ui.text.contentassist.CompletionProposalCategory; import org.eclipse.cdt.internal.ui.text.contentassist.CompletionProposalComputerRegistry; import org.eclipse.cdt.internal.ui.util.Messages; @@ -80,11 +82,13 @@ final class CodeAssistAdvancedConfigurationBlock extends OptionsConfigurationBlo private static final Key PREF_EXCLUDED_CATEGORIES= getCDTUIKey(PreferenceConstants.CODEASSIST_EXCLUDED_CATEGORIES); private static final Key PREF_CATEGORY_ORDER= getCDTUIKey(PreferenceConstants.CODEASSIST_CATEGORY_ORDER); + private static final Key PREF_PROPOSAL_TIMEOUT= getCDTUIKey(PreferenceConstants.CODEASSIST_PROPOSALS_TIMEOUT); private static Key[] getAllKeys() { return new Key[] { PREF_EXCLUDED_CATEGORIES, PREF_CATEGORY_ORDER, + PREF_PROPOSAL_TIMEOUT }; } @@ -355,7 +359,6 @@ final class CodeAssistAdvancedConfigurationBlock extends OptionsConfigurationBlo layout.marginHeight= 0; composite.setLayout(layout); - createDefaultLabel(composite, columns); createDefaultViewer(composite, columns); createKeysLink(composite, columns); @@ -366,7 +369,9 @@ final class CodeAssistAdvancedConfigurationBlock extends OptionsConfigurationBlo createSeparateSection(composite); createFiller(composite, columns); - + + createTimeoutField(composite, columns); + updateControls(); if (fModel.elements.size() > 0) { fDefaultViewer.getTable().select(0); @@ -379,6 +384,22 @@ final class CodeAssistAdvancedConfigurationBlock extends OptionsConfigurationBlo return scrolled; } + private void createTimeoutField(Composite composite, int columns) { + Composite timeoutComposite= new Composite(composite, SWT.NONE); + GridLayout layout= new GridLayout(3, false); + layout.marginWidth= 0; + layout.marginHeight= 0; + timeoutComposite.setLayout(layout); + GridData gd= new GridData(GridData.FILL, GridData.FILL, true, false, columns, 1); + timeoutComposite.setLayoutData(gd); + + PixelConverter pixelConverter= new PixelConverter(composite); + String label = PreferencesMessages.CEditorPreferencePage_ContentAssistPage_completionProposalTimeout; + Text textField = addTextField(timeoutComposite, label, PREF_PROPOSAL_TIMEOUT, 0, pixelConverter.convertWidthInCharsToPixels(7)); + String toolTip = PreferencesMessages.CEditorPreferencePage_ContentAssistPage_completionProposalTimeoutToolTip; + textField.setToolTipText(toolTip); + } + private void createDefaultLabel(Composite composite, int h_span) { final ICommandService commandSvc= (ICommandService) PlatformUI.getWorkbench().getAdapter(ICommandService.class); final Command command= commandSvc.getCommand(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); @@ -642,6 +663,26 @@ final class CodeAssistAdvancedConfigurationBlock extends OptionsConfigurationBlo */ @Override protected void validateSettings(Key changedKey, String oldValue, String newValue) { + if (changedKey == null) { + String newVal = getStoredValue(PREF_PROPOSAL_TIMEOUT); + validateSettings(PREF_PROPOSAL_TIMEOUT, null, newVal); + } + else if (changedKey.equals(PREF_PROPOSAL_TIMEOUT)) { + StatusInfo statusInfo = new StatusInfo(); + String errMsg = PreferencesMessages.CEditorPreferencePage_ContentAssistPage_completionProposalTimeoutErrMsg; + statusInfo.setError(errMsg); + if (newValue != null) { + try { + long parseLong = Long.parseLong(newValue); + if (parseLong >= 0l) { + statusInfo.setOK(); + } + } catch (final NumberFormatException e) { + // do nothing + } + } + fContext.statusChanged(statusInfo); + } } /* diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java index 01357ded73d..1e251f79c75 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java @@ -52,6 +52,9 @@ public final class PreferencesMessages extends NLS { public static String CEditorPreferencePage_ContentAssistPage_proposalFilterSelect; public static String CEditorPreferencePage_ContentAssistPage_completionProposalBackgroundColor; public static String CEditorPreferencePage_ContentAssistPage_completionProposalForegroundColor; + public static String CEditorPreferencePage_ContentAssistPage_completionProposalTimeout; + public static String CEditorPreferencePage_ContentAssistPage_completionProposalTimeoutErrMsg; + public static String CEditorPreferencePage_ContentAssistPage_completionProposalTimeoutToolTip; public static String CEditorPreferencePage_ContentAssistPage_parameterBackgroundColor; public static String CEditorPreferencePage_ContentAssistPage_parameterForegroundColor; public static String CEditorPreferencePage_ContentAssistPage_sortingSection_title; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties index 8731803abc0..2d58dc54ac6 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties @@ -38,6 +38,9 @@ CEditorPreferencePage_ContentAssistPage_autoActivationDelay=Dela&y (ms) CEditorPreferencePage_ContentAssistPage_proposalFilterSelect=Completion Proposal Filter: CEditorPreferencePage_ContentAssistPage_completionProposalBackgroundColor=Completion proposal background CEditorPreferencePage_ContentAssistPage_completionProposalForegroundColor=Completion proposal foreground +CEditorPreferencePage_ContentAssistPage_completionProposalTimeoutErrMsg=Time must be >= 0 milli seconds +CEditorPreferencePage_ContentAssistPage_completionProposalTimeout=Timeout for each proposal kind (ms): +CEditorPreferencePage_ContentAssistPage_completionProposalTimeoutToolTip=If a proposal kind has consumed more time for computation than defined here\nit is assumed that the computer is faulty.\nIn this case a dialog is showing up telling an appropriate message to the user. CEditorPreferencePage_ContentAssistPage_parameterBackgroundColor=Parameter hint background CEditorPreferencePage_ContentAssistPage_parameterForegroundColor=Parameter hint foreground CEditorPreferencePage_ContentAssistPage_sortingSection_title=Sorting and Filtering diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionProposalComputerDescriptor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionProposalComputerDescriptor.java index 7bfe8c7ed5c..1b6b811405b 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionProposalComputerDescriptor.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionProposalComputerDescriptor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2008 IBM Corporation and others. + * Copyright (c) 2005, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -34,6 +34,7 @@ import org.eclipse.jface.text.contentassist.IContextInformation; import org.osgi.framework.Bundle; import org.eclipse.cdt.ui.CUIPlugin; +import org.eclipse.cdt.ui.PreferenceConstants; import org.eclipse.cdt.ui.text.ICPartitions; import org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext; import org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer; @@ -70,13 +71,6 @@ final class CompletionProposalComputerDescriptor { * core's {@link PerformanceStats} service. */ private static final boolean MEASURE_PERFORMANCE= PerformanceStats.isEnabled(PERFORMANCE_EVENT); - /** - * Independently of the {@link PerformanceStats} service, any operation that takes longer than - * {@value} milliseconds will be flagged as an violation. This timeout does not apply to the - * first invocation, as it may take longer due to plug-in initialization etc. See also - * {@link #fIsReportingDelay}. - */ - private static final long MAX_DELAY= 5000; /* log constants */ private static final String COMPUTE_COMPLETION_PROPOSALS= "computeCompletionProposals()"; //$NON-NLS-1$ @@ -113,7 +107,7 @@ final class CompletionProposalComputerDescriptor { /** The first error message in the most recent operation, or null. */ private String fLastError; /** - * Tells whether to inform the user when MAX_DELAY has been exceeded. + * Tells whether to inform the user when the value of getMaxDelay() has been exceeded. * We start timing execution after the first session because the first may take * longer due to plug-in activation and initialization. */ @@ -463,13 +457,32 @@ final class CompletionProposalComputerDescriptor { if (fIsReportingDelay) { long current= System.currentTimeMillis(); - if (current - fStart > MAX_DELAY) { + if (current - fStart > getMaxDelay()) { IStatus status= createPerformanceStatus(operation); fRegistry.informUser(this, status); } } } + /** + * Independently of the {@link PerformanceStats} service, any operation that takes longer than + * the milliseconds returned by this method will be flagged as an violation. This timeout does + * not apply to the first invocation, as it may take longer due to plug-in initialization etc. + * See also {@link #fIsReportingDelay}. + *

+ * The max duration is stored in the preference {@link ContentAssistPreference#PROPOSALS_TIMEOUT} + * + * @return the max duration (ms) a proposal computer is allowed to compute until it is + * assumed to be buggy and will be disabled.
+ * Is always > 0 + */ + private long getMaxDelay() { + long timeout = CUIPlugin.getDefault().getPreferenceStore().getLong(PreferenceConstants.CODEASSIST_PROPOSALS_TIMEOUT); + if (timeout <= 0L) + return Long.MAX_VALUE; + return timeout; + } + private IStatus createExceptionStatus(InvalidRegistryObjectException x) { // extension has become invalid - log & disable String blame= createBlameMessage(); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java index 2a0f050da53..5b99e31cad7 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java @@ -40,6 +40,8 @@ public class ContentAssistPreference { public final static String AUTOACTIVATION_DELAY= "content_assist_autoactivation_delay"; //$NON-NLS-1$ /** Preference key for content assist timeout delay (unused) */ public final static String TIMEOUT_DELAY= "content_assist_timeout_delay"; //$NON-NLS-1$ + /** Preference key for completion proposal timeout */ + public final static String PROPOSALS_TIMEOUT= PreferenceConstants.CODEASSIST_PROPOSALS_TIMEOUT; /** Preference key for content assist proposal color */ public final static String PROPOSALS_FOREGROUND= PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND; /** Preference key for content assist proposal color */ diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java index be6aaa17c3c..724fb2f7d36 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java @@ -1123,6 +1123,16 @@ public class PreferenceConstants { public final static String CODEASSIST_PROPOSALS_FOREGROUND= "content_assist_proposals_foreground"; //$NON-NLS-1$ /** + * A named preference that holds the duration (in milli seconds) a content proposal may compute + * until it is assumed that the proposal computer has a problem and should be disabled. + *

+ * Value is of type long. + * + * @since 5.4 + */ + public final static String CODEASSIST_PROPOSALS_TIMEOUT= "content_assist_proposals_timeout"; //$NON-NLS-1$ + + /** * A named preference that holds the background color used for parameter hints. *

* Value is of type String. A RGB color value encoded as a string @@ -1960,6 +1970,8 @@ public class PreferenceConstants { store.setDefault(PreferenceConstants.CODEASSIST_EXCLUDED_CATEGORIES, "org.eclipse.cdt.ui.textProposalCategory\0"); //$NON-NLS-1$ store.setDefault(PreferenceConstants.CODEASSIST_CATEGORY_ORDER, "org.eclipse.cdt.ui.parserProposalCategory:65539\0org.eclipse.cdt.ui.textProposalCategory:65541\0org.eclipse.cdt.ui.templateProposalCategory:2\0org.eclipse.cdt.ui.helpProposalCategory:5\0"); //$NON-NLS-1$ + store.setDefault(PreferenceConstants.CODEASSIST_PROPOSALS_TIMEOUT, 5000); + setDefaultAndFireEvent( store, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND, diff --git a/doc/org.eclipse.cdt.doc.user/images/contentAssist_adv_preferences.png b/doc/org.eclipse.cdt.doc.user/images/contentAssist_adv_preferences.png index fcbd4da8a54cca1c022969d5c5cdbee4afa59762..a16a70165ee865ee4abe0a8ae67538bf16e90ee7 100644 GIT binary patch literal 26017 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 o;W~^g5_lpd$c*KzCm#fwe%O+uFbz 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 Moves the selected proposal item down in the cycling list. + + Timeout for each proposal kind (ms) + Specifies the number of milliseconds a code completion proposal kind is allowed to compute + proposals. If it takes more time then it is assumed that this proposal kind is faulty. + In this case a dialog is opened and an appropriate message is shown to the user
If the value is 0 each completion + proposal can compute as long as it needs to before being assumed to be faulty. +