Example usage for org.eclipse.jdt.core.compiler ITerminalSymbols TokenNameimport

List of usage examples for org.eclipse.jdt.core.compiler ITerminalSymbols TokenNameimport

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.compiler ITerminalSymbols TokenNameimport.

Prototype

int TokenNameimport

To view the source code for org.eclipse.jdt.core.compiler ITerminalSymbols TokenNameimport.

Click Source Link

Usage

From source file:com.cb.eclipse.folding.java.calculation.RootStrategy.java

License:Open Source License

/**
 * Process all of the tokens searching for javadocs and comment blocks. Each
 * region discovered is held on to temporarily.
 * /*from w ww  . j av a  2  s .c  o  m*/
 * If a package statement or import statement is found we flush the
 * temporary regions into the permanant region collection, because
 * everything above those identifiers belongs only to the RootStrategy.
 * 
 * @see com.cb.eclipse.folding.java.calculation.RegionCalculationStrategy#handle(int,
 *      int, int, org.eclipse.jdt.core.IJavaElement)
 */
public void handle(int token, int start, int end, IJavaElement owner) throws JavaModelException {

    helper.handle(token, start, end, owner);

    switch (token) {

    // purge the temp regions - we hit a element break.
    case ITerminalSymbols.TokenNamepackage:
    case ITerminalSymbols.TokenNameimport: {
        addAllRegions(helper.result());
        return;
    }

    }

}

From source file:com.github.elucash.lambda4jdt.FoldingStructureProvider.java

License:Open Source License

private IRegion computeHeaderComment(FoldingStructureComputationContext ctx) throws JavaModelException {
    // search at most up to the first type
    ISourceRange range = ctx.getFirstType().getSourceRange();
    if (range == null)
        return null;
    int start = 0;
    int end = range.getOffset();

    /* code adapted from CommentFormattingStrategy:
     * scan the header content up to the first type. Once a comment is
     * found, accumulate any additional comments up to the stop condition.
     * The stop condition is reaching a package declaration, import container,
     * or the end of the input.//ww  w. j av a  2 s  .c om
     */
    IScanner scanner = ctx.getScanner();
    scanner.resetTo(start, end);

    int headerStart = -1;
    int headerEnd = -1;
    try {
        boolean foundComment = false;
        int terminal = scanner.getNextToken();
        while (terminal != ITerminalSymbols.TokenNameEOF && !(terminal == ITerminalSymbols.TokenNameclass
                || terminal == ITerminalSymbols.TokenNameinterface || terminal == ITerminalSymbols.TokenNameenum
                || (foundComment && (terminal == ITerminalSymbols.TokenNameimport
                        || terminal == ITerminalSymbols.TokenNamepackage)))) {

            if (terminal == ITerminalSymbols.TokenNameCOMMENT_JAVADOC
                    || terminal == ITerminalSymbols.TokenNameCOMMENT_BLOCK
                    || terminal == ITerminalSymbols.TokenNameCOMMENT_LINE) {
                if (!foundComment)
                    headerStart = scanner.getCurrentTokenStartPosition();
                headerEnd = scanner.getCurrentTokenEndPosition();
                foundComment = true;
            }
            terminal = scanner.getNextToken();
        }

    } catch (InvalidInputException ex) {
        return null;
    }

    if (headerEnd != -1) {
        return new Region(headerStart, headerEnd - headerStart);
    }
    return null;
}

From source file:org.eclipse.mylyn.java.ui.editor.AutoFoldingStructureProvider.java

License:Open Source License

private IRegion computeHeaderComment(IType type) throws JavaModelException {
    if (fCachedDocument == null)
        return null;

    // search at most up to the first type
    ISourceRange range = type.getSourceRange();
    if (range == null)
        return null;
    int start = 0;
    int end = range.getOffset();

    if (fInput instanceof ISourceReference) {
        String content;/* ww  w. j a  v  a  2 s  .c o  m*/
        try {
            content = fCachedDocument.get(start, end - start);
        } catch (BadLocationException e) {
            return null; // ignore header comment in that case
        }

        /* code adapted from CommentFormattingStrategy:
         * scan the header content up to the first type. Once a comment is
         * found, accumulate any additional comments up to the stop condition.
         * The stop condition is reaching a package declaration, import container,
         * or the end of the input.
         */
        IScanner scanner = ToolFactory.createScanner(true, false, false, false);
        scanner.setSource(content.toCharArray());

        int headerStart = -1;
        int headerEnd = -1;
        try {
            boolean foundComment = false;
            int terminal = scanner.getNextToken();
            while (terminal != ITerminalSymbols.TokenNameEOF && !(terminal == ITerminalSymbols.TokenNameclass
                    || terminal == ITerminalSymbols.TokenNameinterface
                    || terminal == ITerminalSymbols.TokenNameenum
                    || (foundComment && (terminal == ITerminalSymbols.TokenNameimport
                            || terminal == ITerminalSymbols.TokenNamepackage)))) {

                if (terminal == ITerminalSymbols.TokenNameCOMMENT_JAVADOC
                        || terminal == ITerminalSymbols.TokenNameCOMMENT_BLOCK
                        || terminal == ITerminalSymbols.TokenNameCOMMENT_LINE) {
                    if (!foundComment)
                        headerStart = scanner.getCurrentTokenStartPosition();
                    headerEnd = scanner.getCurrentTokenEndPosition();
                    foundComment = true;
                }
                terminal = scanner.getNextToken();
            }

        } catch (InvalidInputException ex) {
            return null;
        }

        if (headerEnd != -1) {
            return new Region(headerStart, headerEnd - headerStart);
        }
    }
    return null;
}