fTemplateEngine.complete(viewer, position, null);
fTemplateEngine.complete(viewer, position, null, fEditor);
	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int position) {		try {			fCollector.reset(fEditor.findJavaProject(), null);			fEditor.codeComplete(fCollector);		} catch (JavaModelException x) {			Shell shell= viewer.getTextWidget().getShell();			ErrorDialog.openError(shell, SnippetMessages.getString("CompletionProcessor.errorTitle"), SnippetMessages.getString("CompletionProcessor.errorMessage"), x.getStatus()); //$NON-NLS-2$ //$NON-NLS-1$		}				ICompletionProposal[] results= fCollector.getResults();				try {			fTemplateEngine.reset();			fTemplateEngine.complete(viewer, position, null);		} catch (JavaModelException x) {			Shell shell= viewer.getTextWidget().getShell();			ErrorDialog.openError(shell, SnippetMessages.getString("CompletionProcessor.errorTitle"), SnippetMessages.getString("CompletionProcessor.errorMessage"), x.getStatus()); //$NON-NLS-2$ //$NON-NLS-1$		}								ICompletionProposal[] templateResults= fTemplateEngine.getResults();		// concatenate arrays		ICompletionProposal[] total= new ICompletionProposal[results.length + templateResults.length];		System.arraycopy(templateResults, 0, total, 0, templateResults.length);		System.arraycopy(results, 0, total, templateResults.length, results.length);				return total;	}