1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-05 08:46:02 +02:00

Cleaned up the Completion UI and made the new Completion processor the defacto processor.

This commit is contained in:
Doug Schaefer 2005-06-10 02:26:35 +00:00
parent b8ac16b660
commit 676745b0e6
6 changed files with 18 additions and 38 deletions

View file

@ -42,10 +42,6 @@ public class CodeAssistPreferencePage extends AbstractPreferencePage {
protected OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys() {
ArrayList overlayKeys = new ArrayList();
// temporary
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.DONT_USE_DOM));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.TIME_DOM));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, ContentAssistPreference.AUTOACTIVATION_DELAY));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.AUTOINSERT));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.CODEASSIST_PREFIX_COMPLETION));
@ -81,10 +77,6 @@ public class CodeAssistPreferencePage extends AbstractPreferencePage {
layout.numColumns = 2;
contentAssistComposite.setLayout(layout);
// temporary use DOM
addCheckBox(contentAssistComposite, "Use Old Content Assist (Work in progress)", ContentAssistPreference.DONT_USE_DOM, 0);
addCheckBox(contentAssistComposite, "Print Completion Times (Work in progress)", ContentAssistPreference.TIME_DOM, 0);
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
// The following three radio buttons are grouped together
String label = PreferencesMessages.getString("CEditorPreferencePage.ContentAssistPage.searchGroupTitle"); //$NON-NLS-1$

View file

@ -11,7 +11,6 @@ import org.eclipse.cdt.internal.ui.editor.CElementHyperlinkDetector;
import org.eclipse.cdt.internal.ui.editor.CSourceViewer;
import org.eclipse.cdt.internal.ui.text.c.hover.CEditorTextHoverDescriptor;
import org.eclipse.cdt.internal.ui.text.c.hover.CEditorTextHoverProxy;
import org.eclipse.cdt.internal.ui.text.contentassist.CCompletionProcessor;
import org.eclipse.cdt.internal.ui.text.contentassist.CCompletionProcessor2;
import org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistPreference;
import org.eclipse.cdt.ui.CElementContentProvider;
@ -43,6 +42,7 @@ import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.source.IAnnotationHover;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Shell;
@ -198,10 +198,7 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
ContentAssistant assistant = new ContentAssistant();
IContentAssistProcessor processor
= getPreferenceStore().getBoolean(ContentAssistPreference.DONT_USE_DOM)
? (IContentAssistProcessor)new CCompletionProcessor(getEditor())
: (IContentAssistProcessor)new CCompletionProcessor2(getEditor());
IContentAssistProcessor processor = new CCompletionProcessor2(getEditor());
assistant.setContentAssistProcessor(processor, IDocument.DEFAULT_CONTENT_TYPE);
//Will this work as a replacement for the configuration lines below?

View file

@ -52,6 +52,7 @@ import org.eclipse.ui.IEditorPart;
/**
* C completion processor.
* @deprecated
*/
public class CCompletionProcessor implements IContentAssistProcessor {

View file

@ -58,13 +58,11 @@ public class CCompletionProcessor2 implements IContentAssistProcessor {
public ICompletionProposal[] computeCompletionProposals(final ITextViewer viewer,
int offset) {
try {
long startTime = System.currentTimeMillis();
IWorkingCopy workingCopy = CUIPlugin.getDefault().getWorkingCopyManager().getWorkingCopy(editor.getEditorInput());
ASTCompletionNode completionNode = CDOM.getInstance().getCompletionNode(
(IFile)workingCopy.getResource(),
offset,
CDOM.getInstance().getCodeReaderFactory(CDOM.PARSE_WORKING_COPY_WHENEVER_POSSIBLE));
long stopTime = System.currentTimeMillis();
errorMessage = CUIMessages.getString(noCompletions);
@ -120,18 +118,6 @@ public class CCompletionProcessor2 implements IContentAssistProcessor {
}
}
if (CUIPlugin.getDefault().getPreferenceStore().getBoolean(ContentAssistPreference.TIME_DOM)) {
long propTime = System.currentTimeMillis();
System.out.print("Completion Parse: " + (stopTime - startTime) + " + Proposals: " //$NON-NLS-1$ //$NON-NLS-2$
+ (propTime - stopTime));
if (completionNode != null)
System.out.print(" - tokens: " + completionNode.count);
else
System.out.print(" - no completion node");
System.out.println();
System.out.flush();
}
return propsArray;
} catch (UnsupportedDialectException e) {
@ -182,4 +168,13 @@ public class CCompletionProcessor2 implements IContentAssistProcessor {
return new CParameterListValidator();
}
}
public void setCompletionProposalAutoActivationCharacters(char[] activationSet) {
}
public void orderProposalsAlphabetically(boolean order) {
}
public void allowAddingIncludes(boolean allowAddingIncludes) {
}
}

View file

@ -22,10 +22,6 @@ import org.eclipse.jface.util.PropertyChangeEvent;
public class ContentAssistPreference {
// Temporary to use DOM for assist
public final static String DONT_USE_DOM = "content_assist_dont_use_dom"; //$NON-NLS-1$
public final static String TIME_DOM = "content_assist_time_dom"; //$NON-NLS-1$
/** Preference key for content assist auto activation */
//public final static String AUTOACTIVATION= "content_assist_autoactivation";
/** Preference key for content assist auto activation delay */
@ -73,15 +69,15 @@ public class ContentAssistPreference {
return getColor(store, key, textTools.getColorManager());
}
private static CCompletionProcessor getCProcessor(ContentAssistant assistant) {
private static CCompletionProcessor2 getCProcessor(ContentAssistant assistant) {
IContentAssistProcessor p= assistant.getContentAssistProcessor(IDocument.DEFAULT_CONTENT_TYPE);
if (p instanceof CCompletionProcessor)
return (CCompletionProcessor) p;
if (p instanceof CCompletionProcessor2)
return (CCompletionProcessor2) p;
return null;
}
private static void configureCProcessor(ContentAssistant assistant, IPreferenceStore store) {
CCompletionProcessor jcp= getCProcessor(assistant);
CCompletionProcessor2 jcp= getCProcessor(assistant);
if (jcp == null)
return;
@ -154,7 +150,7 @@ public class ContentAssistPreference {
private static void changeCProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
CCompletionProcessor jcp= getCProcessor(assistant);
CCompletionProcessor2 jcp= getCProcessor(assistant);
if (jcp == null)
return;

View file

@ -11,7 +11,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
import org.eclipse.cdt.core.dom.ast.IASTName;