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

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

Introduction

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

Prototype

int TokenNameenum

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

Click Source Link

Document

"enum" keyword (added in J2SE 1.5).

Usage

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 a  v  a 2 s  . c o  m
     */
    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 ava  2s . c om*/
        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;
}