1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 11:25:35 +02:00

Hooked up the template engine to the new content assist processor.

This commit is contained in:
Doug Schaefer 2005-03-29 18:43:28 +00:00
parent f8da9f5f4e
commit 2e76470f0f
5 changed files with 36 additions and 2 deletions

View file

@ -1354,6 +1354,10 @@
class="org.eclipse.cdt.internal.ui.text.contentassist.DOMCompletionContributor"
id="DOM"
priority="1"/>
<contributor
class="org.eclipse.cdt.internal.ui.text.template.TemplateEngine"
id="CodeTemplates"
priority="2"/>
</extension>
</plugin>

View file

@ -78,7 +78,7 @@ public class CCompletionProcessor2 implements IContentAssistProcessor {
if (!(contribObject instanceof ICompletionContributor))
continue;
ICompletionContributor contributor = (ICompletionContributor)contribObject;
contributor.contributeCompletionProposals(viewer, offset, completionNode, proposals);
contributor.contributeCompletionProposals(viewer, offset, workingCopy, completionNode, proposals);
}
}

View file

@ -24,6 +24,7 @@ import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.IVariable;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.model.IWorkingCopy;
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
import org.eclipse.cdt.ui.CUIPlugin;
@ -36,6 +37,7 @@ public class DOMCompletionContributor implements ICompletionContributor {
public void contributeCompletionProposals(ITextViewer viewer,
int offset,
IWorkingCopy workingCopy,
ASTCompletionNode completionNode,
List proposals) {
if (completionNode != null) {

View file

@ -9,13 +9,17 @@ package org.eclipse.cdt.internal.ui.text.template;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.model.IWorkingCopy;
import org.eclipse.cdt.internal.corext.template.c.CContextType;
import org.eclipse.cdt.internal.corext.template.c.TranslationUnitContext;
import org.eclipse.cdt.internal.corext.template.c.TranslationUnitContextType;
import org.eclipse.cdt.internal.ui.CPluginImages;
import org.eclipse.cdt.internal.ui.text.c.hover.SourceViewerInformationControl;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.text.ICCompletionProposal;
import org.eclipse.cdt.ui.text.contentassist.ICompletionContributor;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IInformationControl;
@ -33,7 +37,7 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Shell;
public class TemplateEngine {
public class TemplateEngine implements ICompletionContributor {
private TemplateContextType fContextType;
private ArrayList fProposals= new ArrayList();
@ -78,6 +82,17 @@ public class TemplateEngine {
fContextType= contextType;
}
/**
* This is the default constructor used by the new content assist extension point
*/
public TemplateEngine() {
fContextType = CUIPlugin.getDefault().getTemplateContextRegistry().getContextType(CContextType.CCONTEXT_TYPE);
if (fContextType == null) {
fContextType= new CContextType();
CUIPlugin.getDefault().getTemplateContextRegistry().addContextType(fContextType);
}
}
/**
* Empties the collector.
*
@ -132,5 +147,16 @@ public class TemplateEngine {
fProposals.add(new CTemplateProposal(templates[i], context, region, CPluginImages.get(CPluginImages.IMG_OBJS_TEMPLATE)));
}
public void contributeCompletionProposals(ITextViewer viewer,
int offset,
IWorkingCopy workingCopy,
ASTCompletionNode completionNode,
List proposals)
{
// TODO We should use the completion node to determine the proper context for the templates
// For now we just keep the current behavior
complete(viewer, offset, workingCopy);
proposals.addAll(fProposals);
}
}

View file

@ -10,6 +10,7 @@ package org.eclipse.cdt.ui.text.contentassist;
import java.util.List;
import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
import org.eclipse.cdt.core.model.IWorkingCopy;
import org.eclipse.jface.text.ITextViewer;
public interface ICompletionContributor {
@ -25,6 +26,7 @@ public interface ICompletionContributor {
*/
void contributeCompletionProposals(ITextViewer viewer,
int offset,
IWorkingCopy workingCopy,
ASTCompletionNode completionNode,
List proposals);