/******************************************************************************* * Copyright (c) 2000, 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 * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package _org.eclipse.jdt.internal.corext.template.java; import melnorme.lang.ide.core.ISourceFile; //import org.eclipse.jface.preference.IPreferenceStore; //import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; //import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.Position; //import org.eclipse.jface.text.TextUtilities; //import org.eclipse.jface.text.templates.Template; //import org.eclipse.jface.text.templates.TemplateBuffer; import org.eclipse.jface.text.templates.TemplateContextType; //import org.eclipse.jface.text.templates.TemplateException; //import org.eclipse.jface.text.templates.TemplateTranslator; //import org.eclipse.jdt.core.ICompilationUnit; //import org.eclipse.jdt.core.IJavaProject; //import org.eclipse.jdt.internal.corext.util.Strings; //import org.eclipse.jdt.ui.PreferenceConstants; //import org.eclipse.jdt.internal.ui.JavaPlugin; //LANG: BM: not used at the moment /** * A context for javadoc. */ public class JavaDocContext extends CompilationUnitContext { // // tags // private static final char HTML_TAG_BEGIN= '<'; // private static final char HTML_TAG_END= '>'; // private static final char JAVADOC_TAG_BEGIN= '@'; /** * Creates a javadoc template context. * * @param type the context type. * @param document the document. * @param completionOffset the completion offset within the document. * @param completionLength the completion length within the document. * @param compilationUnit the compilation unit (may be <code>null</code>). */ public JavaDocContext(TemplateContextType type, IDocument document, int completionOffset, int completionLength, ISourceFile compilationUnit) { super(type, document, completionOffset, completionLength, compilationUnit); } /** * Creates a javadoc template context. * * @param type the context type. * @param document the document. * @param completionPosition the position defining the completion offset and length * @param compilationUnit the compilation unit (may be <code>null</code>). * @since 3.2 */ public JavaDocContext(TemplateContextType type, IDocument document, Position completionPosition, ISourceFile compilationUnit) { super(type, document, completionPosition, compilationUnit); } // /* // * @see TemplateContext#canEvaluate(Template templates) // */ // @Override // public boolean canEvaluate(Template template) { // String key= getKey(); // // if (fForceEvaluation) // return true; // // return // template.matches(key, getContextType().getId()) && // (key.length() != 0) && template.getName().toLowerCase().startsWith(key.toLowerCase()); // } // // /* // * @see DocumentTemplateContext#getStart() // */ // @Override // public int getStart() { // if (fIsManaged && getCompletionLength() > 0) // return super.getStart(); // // try { // IDocument document= getDocument(); // // if (getCompletionLength() == 0) { // int start= getCompletionOffset(); // // if ((start != 0) && (document.getChar(start - 1) == HTML_TAG_END)) // start--; // // while ((start != 0) && Character.isUnicodeIdentifierPart(document.getChar(start - 1))) // start--; // // if ((start != 0) && Character.isUnicodeIdentifierStart(document.getChar(start - 1))) // start--; // // // include html and javadoc tags // if ((start != 0) && ( // (document.getChar(start - 1) == HTML_TAG_BEGIN) || // (document.getChar(start - 1) == JAVADOC_TAG_BEGIN))) // { // start--; // } // // return start; // // } // // int start= getCompletionOffset(); // int end= getCompletionOffset() + getCompletionLength(); // // while (start != 0 && Character.isUnicodeIdentifierPart(document.getChar(start - 1))) // start--; // // while (start != end && Character.isWhitespace(document.getChar(start))) // start++; // // if (start == end) // start= getCompletionOffset(); // // return start; // // // } catch (BadLocationException e) { // return getCompletionOffset(); // } // } // // /* // * @see org.eclipse.jdt.internal.corext.template.DocumentTemplateContext#getEnd() // */ // @Override // public int getEnd() { // // if (fIsManaged || getCompletionLength() == 0) // return super.getEnd(); // // try { // IDocument document= getDocument(); // // int start= getCompletionOffset(); // int end= getCompletionOffset() + getCompletionLength(); // // while (start != end && Character.isWhitespace(document.getChar(end - 1))) // end--; // // return end; // // } catch (BadLocationException e) { // return super.getEnd(); // } // } // // /* // * @see org.eclipse.jdt.internal.corext.template.DocumentTemplateContext#getKey() // */ // @Override // public String getKey() { // // if (getCompletionLength() == 0) // return super.getKey(); // // try { // IDocument document= getDocument(); // // int start= getStart(); // int end= getCompletionOffset(); // return start <= end // ? document.get(start, end - start) // : ""; //$NON-NLS-1$ // // } catch (BadLocationException e) { // return super.getKey(); // } // } // // /* // * @see TemplateContext#evaluate(Template) // */ // @Override // public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException { // TemplateTranslator translator= new TemplateTranslator(); // TemplateBuffer buffer= translator.translate(template); // // getContextType().resolve(buffer, this); // // IPreferenceStore prefs= JavaPlugin.getDefault().getPreferenceStore(); // boolean useCodeFormatter= prefs.getBoolean(PreferenceConstants.TEMPLATES_USE_CODEFORMATTER); // // IJavaProject project= getJavaProject(); // JavaFormatter formatter= new JavaFormatter(TextUtilities.getDefaultLineDelimiter(getDocument()), getIndentation(), useCodeFormatter, project); // formatter.format(buffer, this); // // return buffer; // } // // /** // * Returns the indentation level at the position of code completion. // * // * @return the indentation level at the position of the code completion // */ // private int getIndentation() { // int start= getStart(); // IDocument document= getDocument(); // try { // IRegion region= document.getLineInformationOfOffset(start); // String lineContent= document.get(region.getOffset(), region.getLength()); // IJavaProject project= getJavaProject(); // return Strings.computeIndentUnits(lineContent, project); // } catch (BadLocationException e) { // return 0; // } // } }