X-Git-Url: http://git.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCompletionProcessor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCompletionProcessor.java
index 5f0d2be..fe1f77d 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCompletionProcessor.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCompletionProcessor.java
@@ -8,11 +8,12 @@ package net.sourceforge.phpdt.internal.ui.text.phpdoc;
import java.util.Arrays;
import java.util.Comparator;
-import net.sourceforge.phpdt.internal.corext.template.ContextType;
-import net.sourceforge.phpdt.internal.corext.template.ContextTypeRegistry;
+import net.sourceforge.phpdt.core.ICompilationUnit;
import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal;
import net.sourceforge.phpdt.internal.ui.text.java.PHPCompletionProposalComparator;
-import net.sourceforge.phpdt.internal.ui.text.template.TemplateEngine;
+import net.sourceforge.phpdt.internal.ui.text.template.contentassist.TemplateEngine;
+import net.sourceforge.phpdt.ui.IWorkingCopyManager;
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextViewer;
@@ -20,165 +21,175 @@ import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
import org.eclipse.jface.text.contentassist.IContextInformation;
import org.eclipse.jface.text.contentassist.IContextInformationValidator;
+import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.ui.IEditorPart;
/**
* Simple PHPDoc completion processor.
*/
public class PHPDocCompletionProcessor implements IContentAssistProcessor {
-
- private static class PHPDocCompletionProposalComparator implements Comparator {
- public int compare(Object o1, Object o2) {
- ICompletionProposal c1= (ICompletionProposal) o1;
- ICompletionProposal c2= (ICompletionProposal) o2;
- return c1.getDisplayString().compareTo(c2.getDisplayString());
- }
- };
-
-// private IEditorPart fEditor;
-// private IWorkingCopyManager fManager;
- private char[] fProposalAutoActivationSet;
- private PHPCompletionProposalComparator fComparator;
- private TemplateEngine fTemplateEngine;
-
- private boolean fRestrictToMatchingCase;
-
-
- public PHPDocCompletionProcessor() {// (IEditorPart editor) {
-
-// fEditor= editor;
-// fManager= JavaPlugin.getDefault().getWorkingCopyManager();
- ContextType contextType= ContextTypeRegistry.getInstance().getContextType("phpdoc"); //$NON-NLS-1$
- if (contextType != null)
- fTemplateEngine= new TemplateEngine(contextType);
- fRestrictToMatchingCase= false;
-
- fComparator= new PHPCompletionProposalComparator();
- }
-
- /**
- * Tells this processor to order the proposals alphabetically.
- *
- * @param order true
if proposals should be ordered.
- */
- public void orderProposalsAlphabetically(boolean order) {
- fComparator.setOrderAlphabetically(order);
- }
-
- /**
- * Tells this processor to restrict is proposals to those
- * starting with matching cases.
- *
- * @param restrict true
if proposals should be restricted
- */
- public void restrictProposalsToMatchingCases(boolean restrict) {
- fRestrictToMatchingCase= restrict;
- }
-
- /**
- * @see IContentAssistProcessor#getErrorMessage()
- */
- public String getErrorMessage() {
- return null;
- }
-
- /**
- * @see IContentAssistProcessor#getContextInformationValidator()
- */
- public IContextInformationValidator getContextInformationValidator() {
- return null;
- }
-
- /**
- * @see IContentAssistProcessor#getContextInformationAutoActivationCharacters()
- */
- public char[] getContextInformationAutoActivationCharacters() {
- return null;
- }
-
- /**
- * @see IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
- */
- public char[] getCompletionProposalAutoActivationCharacters() {
- return fProposalAutoActivationSet;
- }
-
- /**
- * Sets this processor's set of characters triggering the activation of the
- * completion proposal computation.
- *
- * @param activationSet the activation set
- */
- public void setCompletionProposalAutoActivationCharacters(char[] activationSet) {
- fProposalAutoActivationSet= activationSet;
- }
-
- /**
- * @see IContentAssistProcessor#computeContextInformation(ITextViewer, int)
- */
- public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) {
- return null;
- }
-
- /**
- * @see IContentAssistProcessor#computeCompletionProposals(ITextViewer, int)
- */
- public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
- // ICompilationUnit unit= fManager.getWorkingCopy(fEditor.getEditorInput());
- IDocument document= viewer.getDocument();
-
- IPHPCompletionProposal[] results= new IPHPCompletionProposal[0];
-
-// try {
-// if (unit != null) {
-//
-// int offset= documentOffset;
-// int length= 0;
-//
-// Point selection= viewer.getSelectedRange();
-// if (selection.y > 0) {
-// offset= selection.x;
-// length= selection.y;
-// }
-//
-// JavaDocCompletionEvaluator evaluator= new JavaDocCompletionEvaluator(unit, document, offset, length);
-// evaluator.restrictProposalsToMatchingCases(fRestrictToMatchingCase);
-// results= evaluator.computeProposals();
-// }
-// } catch (JavaModelException e) {
-// JavaPlugin.log(e);
-// }
-
- if (fTemplateEngine != null) {
- // try {
- fTemplateEngine.reset();
- fTemplateEngine.complete(viewer, documentOffset); //, unit);
-// } catch (JavaModelException x) {
-// }
-
- IPHPCompletionProposal[] templateResults= fTemplateEngine.getResults();
- if (results.length == 0) {
- results= templateResults;
- } else {
- // concatenate arrays
- IPHPCompletionProposal[] total= new IPHPCompletionProposal[results.length + templateResults.length];
- System.arraycopy(templateResults, 0, total, 0, templateResults.length);
- System.arraycopy(results, 0, total, templateResults.length, results.length);
- results= total;
- }
- }
-
- /*
- * Order here and not in result collector to make sure that the order
- * applies to all proposals and not just those of the compilation unit.
- */
- return order(results);
- }
-
- /**
- * Order the given proposals.
- */
- private IPHPCompletionProposal[] order(IPHPCompletionProposal[] proposals) {
- Arrays.sort(proposals, fComparator);
- return proposals;
- }
+
+ private static class PHPDocCompletionProposalComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+ ICompletionProposal c1 = (ICompletionProposal) o1;
+ ICompletionProposal c2 = (ICompletionProposal) o2;
+ return c1.getDisplayString().compareTo(c2.getDisplayString());
+ }
+ };
+
+ // private IEditorPart fEditor;
+ // private IWorkingCopyManager fManager;
+ private char[] fProposalAutoActivationSet;
+
+ private PHPCompletionProposalComparator fComparator;
+
+ private TemplateEngine fTemplateEngine;
+
+ private boolean fRestrictToMatchingCase;
+
+ private IEditorPart fEditor;
+
+ protected IWorkingCopyManager fManager;
+
+ public PHPDocCompletionProcessor(IEditorPart editor) {
+ fEditor = editor;
+ fManager = PHPeclipsePlugin.getDefault().getWorkingCopyManager();
+
+ // fEditor= editor;
+ // fManager= JavaPlugin.getDefault().getWorkingCopyManager();
+ TemplateContextType contextType = PHPeclipsePlugin.getDefault().getTemplateContextRegistry().getContextType("phpdoc"); //$NON-NLS-1$
+ if (contextType != null)
+ fTemplateEngine = new TemplateEngine(contextType);
+ fRestrictToMatchingCase = false;
+
+ fComparator = new PHPCompletionProposalComparator();
+ }
+
+ /**
+ * Tells this processor to order the proposals alphabetically.
+ *
+ * @param order
+ * true
if proposals should be ordered.
+ */
+ public void orderProposalsAlphabetically(boolean order) {
+ fComparator.setOrderAlphabetically(order);
+ }
+
+ /**
+ * Tells this processor to restrict is proposals to those starting with matching cases.
+ *
+ * @param restrict
+ * true
if proposals should be restricted
+ */
+ public void restrictProposalsToMatchingCases(boolean restrict) {
+ fRestrictToMatchingCase = restrict;
+ }
+
+ /**
+ * @see IContentAssistProcessor#getErrorMessage()
+ */
+ public String getErrorMessage() {
+ return null;
+ }
+
+ /**
+ * @see IContentAssistProcessor#getContextInformationValidator()
+ */
+ public IContextInformationValidator getContextInformationValidator() {
+ return null;
+ }
+
+ /**
+ * @see IContentAssistProcessor#getContextInformationAutoActivationCharacters()
+ */
+ public char[] getContextInformationAutoActivationCharacters() {
+ return null;
+ }
+
+ /**
+ * @see IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
+ */
+ public char[] getCompletionProposalAutoActivationCharacters() {
+ return fProposalAutoActivationSet;
+ }
+
+ /**
+ * Sets this processor's set of characters triggering the activation of the completion proposal computation.
+ *
+ * @param activationSet
+ * the activation set
+ */
+ public void setCompletionProposalAutoActivationCharacters(char[] activationSet) {
+ fProposalAutoActivationSet = activationSet;
+ }
+
+ /**
+ * @see IContentAssistProcessor#computeContextInformation(ITextViewer, int)
+ */
+ public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) {
+ return null;
+ }
+
+ /**
+ * @see IContentAssistProcessor#computeCompletionProposals(ITextViewer, int)
+ */
+ public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
+ ICompilationUnit unit = fManager.getWorkingCopy(fEditor.getEditorInput());
+ IDocument document = viewer.getDocument();
+
+ IPHPCompletionProposal[] results = new IPHPCompletionProposal[0];
+
+ // try {
+ // if (unit != null) {
+ //
+ // int offset= documentOffset;
+ // int length= 0;
+ //
+ // Point selection= viewer.getSelectedRange();
+ // if (selection.y > 0) {
+ // offset= selection.x;
+ // length= selection.y;
+ // }
+ //
+ // JavaDocCompletionEvaluator evaluator= new JavaDocCompletionEvaluator(unit, document, offset, length);
+ // evaluator.restrictProposalsToMatchingCases(fRestrictToMatchingCase);
+ // results= evaluator.computeProposals();
+ // }
+ // } catch (JavaModelException e) {
+ // JavaPlugin.log(e);
+ // }
+
+ if (fTemplateEngine != null) {
+ // try {
+ fTemplateEngine.reset();
+ fTemplateEngine.complete(viewer, documentOffset, unit);
+ // } catch (JavaModelException x) {
+ // }
+
+ IPHPCompletionProposal[] templateResults = fTemplateEngine.getResults();
+ if (results.length == 0) {
+ results = templateResults;
+ } else {
+ // concatenate arrays
+ IPHPCompletionProposal[] total = new IPHPCompletionProposal[results.length + templateResults.length];
+ System.arraycopy(templateResults, 0, total, 0, templateResults.length);
+ System.arraycopy(results, 0, total, templateResults.length, results.length);
+ results = total;
+ }
+ }
+
+ /*
+ * Order here and not in result collector to make sure that the order applies to all proposals and not just those of the
+ * compilation unit.
+ */
+ return order(results);
+ }
+
+ /**
+ * Order the given proposals.
+ */
+ private IPHPCompletionProposal[] order(IPHPCompletionProposal[] proposals) {
+ Arrays.sort(proposals, fComparator);
+ return proposals;
+ }
}
\ No newline at end of file