Search in sources :

Example 6 with Tag

use of org.eclipse.n4js.jsdoc.dom.Tag in project n4js by eclipse.

the class LineTagFlagDefinition method parse.

/**
 */
@Override
public Tag parse(TagTitle title, JSDocCharScanner scanner, DescriptionParser descriptionParser) {
    Tag tag = createLineTag(title);
    descriptionParser.parse(scanner, TagDictionary.emptyDict());
    return tag;
}
Also used : Tag(org.eclipse.n4js.jsdoc.dom.Tag)

Example 7 with Tag

use of org.eclipse.n4js.jsdoc.dom.Tag in project n4js by eclipse.

the class LineTagWithFullElementReference method parse.

@Override
public Tag parse(TagTitle title, JSDocCharScanner scanner, DescriptionParser descriptionParser) {
    FullMemberReference ref = parseReference(scanner, scanner.length());
    Tag tag = createLineTag(title);
    addValue(tag, REF, ref);
    return tag;
}
Also used : Tag(org.eclipse.n4js.jsdoc.dom.Tag) FullMemberReference(org.eclipse.n4js.jsdoc.dom.FullMemberReference)

Example 8 with Tag

use of org.eclipse.n4js.jsdoc.dom.Tag in project n4js by eclipse.

the class LineTagWithSimpleTextDefinition method parse.

/**
 * Parses section content and set it as {@link #VALUE}.
 */
@Override
public Tag parse(TagTitle title, JSDocCharScanner scanner, DescriptionParser descriptionParser) {
    ContentNode node = descriptionParser.parse(scanner, TagDictionary.emptyDict());
    if (!(node instanceof Text)) {
        // warning: node may now be null! (e.g. in case of a tag without content)
        String asText = node != null ? JSDocSerializer.toJSDocString(node) : "";
        if (asText.isEmpty()) {
            node = null;
        } else {
            Text text = DomFactory.eINSTANCE.createText();
            text.setText(asText);
            if (node == null) {
                text.setRange(scanner.nextOffset(), scanner.nextOffset());
            } else {
                text.setRange(node.getBegin(), node.getEnd());
            }
            node = text;
        }
    } else {
        Text text = (Text) node;
        if (text.getText().isEmpty()) {
            node = null;
        }
    }
    Tag tag = createLineTag(title);
    if (node != null) {
        addValue(tag, VALUE, node);
    }
    return tag;
}
Also used : Text(org.eclipse.n4js.jsdoc.dom.Text) LineTag(org.eclipse.n4js.jsdoc.dom.LineTag) Tag(org.eclipse.n4js.jsdoc.dom.Tag) ContentNode(org.eclipse.n4js.jsdoc.dom.ContentNode)

Aggregations

Tag (org.eclipse.n4js.jsdoc.dom.Tag)8 JSDocToken (org.eclipse.n4js.jsdoc.JSDocToken)3 ContentNode (org.eclipse.n4js.jsdoc.dom.ContentNode)3 Text (org.eclipse.n4js.jsdoc.dom.Text)3 FullMemberReference (org.eclipse.n4js.jsdoc.dom.FullMemberReference)2 ArrayList (java.util.ArrayList)1 Optional (java.util.Optional)1 EcoreUtil (org.eclipse.emf.ecore.util.EcoreUtil)1 ITextViewer (org.eclipse.jface.text.ITextViewer)1 CompletionProposal (org.eclipse.jface.text.contentassist.CompletionProposal)1 ICompletionProposal (org.eclipse.jface.text.contentassist.ICompletionProposal)1 ITagDefinition (org.eclipse.n4js.jsdoc.ITagDefinition)1 JSDocCharScanner (org.eclipse.n4js.jsdoc.JSDocCharScanner)1 ScannerState (org.eclipse.n4js.jsdoc.JSDocCharScanner.ScannerState)1 JSDocCompletionHint (org.eclipse.n4js.jsdoc.JSDocCompletionHint)1 MODULESPEC (org.eclipse.n4js.jsdoc.JSDocCompletionHint.CompletionKind.MODULESPEC)1 NOCOMPLETION (org.eclipse.n4js.jsdoc.JSDocCompletionHint.CompletionKind.NOCOMPLETION)1 JSDocletUtils (org.eclipse.n4js.jsdoc.JSDocletUtils)1 N4JSDocletParser (org.eclipse.n4js.jsdoc.N4JSDocletParser)1 TagDictionary (org.eclipse.n4js.jsdoc.TagDictionary)1