Examples of ICompositeNode


Examples of org.eclipse.xtext.nodemodel.ICompositeNode

    ICompositeNode node = NodeModelUtils.getNode(content);
    return node.getOffset() + content.getIntend().length();
  }
 
  public static Region region(Content content) {
    ICompositeNode node = NodeModelUtils.getNode(content);
    String text = node.getText();
    int begin = 0;
    for (; begin < text.length(); begin++) {
      if (text.charAt(begin) != ' '
          && text.charAt(begin) != '\t') {
        break;
      }
    }
    int end = text.length()-1;
    for(; end >= 0; end--){
      if(text.charAt(end) != ' '
          && text.charAt(end) != '\t'){
        break;
      }
    }
    return Region.create(node.getOffset() + begin, end - begin);
  }
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

  protected ITextRegion getTextRegion(EObject obj, boolean isSignificant) {
    if (!(obj instanceof Container)) {
      return super.getTextRegion((Container) obj, isSignificant);
    }
   
    ICompositeNode node = NodeModelUtils.findActualNodeFor(obj);
    if (node == null) {
      if (obj.eContainer() == null)
        return ITextRegion.EMPTY_REGION;
      return getTextRegion(obj.eContainer(), isSignificant);
    }
    List<INode> nodes = newArrayList();
    addAll(nodes, node.getLeafNodes());
    if(!isSignificant){
      addAllChildrensNodes(obj, nodes);
    }
    return createRegion(nodes);
  }
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

      addAllChildrensNodes(child, nodes);
    }
  }

  protected ITextRegion getTextRegion(Container content, boolean isSignificant) {
    ICompositeNode sourceNode = getNode(content);
    if (sourceNode == null) {
      return EMPTY_REGION;
    }
    List<INode> nodes = findNextProjectOnSameOrHigherLevel(content);
    return createRegion(nodes);
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

  }

  protected void highlight(Code obj, IHighlightedPositionAcceptor acceptor) {
    // highlightFeature(obj, acceptor, CODE_BLOCK__CONTENTS,
    // CODE_BLOCK.getName());
    ICompositeNode node = NodeModelUtils.findActualNodeFor(obj);
    if (node == null)
      return;
    int offset = node.getOffset();
    LangDef lang = ((CodeBlock) obj.eContainer()).getLanguage();
    String code = obj.getContents();
    Set<String> keywords = newHashSet();
    if (lang != null && !lang.eIsProxy()) {
      keywords.addAll(lang.getKeywords());
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

    String _join = IterableExtensions.join(eObjects, separator, _function);
    return _join;
  }
 
  public String asSourceText(final EObject eObject) {
    ICompositeNode _node = NodeModelUtils.getNode(eObject);
    String _tokenText = NodeModelUtils.getTokenText(_node);
    return _tokenText;
  }
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

   *
   * @see org.eclipse.xtext.serializer.ISerializer#serializeReplacement(org.eclipse.emf.ecore.EObject, org.eclipse.xtext.resource.SaveOptions)
   */
  @Override
  public ReplaceRegion serializeReplacement(EObject obj, SaveOptions options) {
    ICompositeNode node = NodeModelUtils.findActualNodeFor(obj);
    String text = serialize(obj);
    return new ReplaceRegion(node.getTotalOffset(), node.getTotalLength(), text);
  }
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

    // a sequence of SL comment or a single ML comment that is immediately (no NL) before
    // a definition, class, or node is taken to be a documentation comment, as is associated with
    // the following semantic object using an adapter.
    //
    ICompositeNode node = NodeModelUtils.getNode(model);
    ICompositeNode root = node.getRootNode();
    List<INode> commentSequence = Lists.newArrayList();
    BidiTreeIterator<INode> itor = root.getAsTreeIterable().iterator();
    COLLECT_LOOP: while(itor.hasNext()) {
      // for(INode x : root.getAsTreeIterable()) {
      INode x = itor.next();
      EObject grammarElement = x.getGrammarElement();
      // process comments
      if(grammarElement == slRule || grammarElement == mlRule) {
        processCommentNode(x, tasks);
        // skip all whitespace unless it contains a break which also breaks collection
        INode sibling = x.getNextSibling();
        while(sibling != null && sibling.getGrammarElement() == wsRule) {
          if(sibling.getText().contains("\n")) {
            commentSequence.clear();
            continue COLLECT_LOOP;
          }
          sibling = sibling.getNextSibling();
        }
        if(sibling == null) {
          commentSequence.clear();
          continue;
        }

        // if adding a ML comment, use only the last, if adding a SL drop a preceding ML rule
        if(commentSequence.size() > 0) {
          if(grammarElement == mlRule)
            commentSequence.clear();
          else if(grammarElement == slRule &&
              commentSequence.get(commentSequence.size() - 1).getGrammarElement() == mlRule)
            commentSequence.clear();
        }
        commentSequence.add(x);

        // if comment has anything but whitespace before its start (on same line), it is not a documentation comment
        if(hasNonWSBeforeStart(root.getText(), x)) {
          commentSequence.clear();
          continue;
        }
        // if next is not a comment, it may be an element that the documentation should be associated with,
        // but keep collecting if next is a comment
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

        highlightObject(resourceExpr, PPHighlightConfiguration.RESOURCE_REF_ID, acceptor);
    }
    for(ResourceBody body : expr.getResourceData()) {
      if(body.getNameExpr() != null) {
        Expression nameExpr = body.getNameExpr();
        ICompositeNode node = NodeModelUtils.getNode(nameExpr);
        int offset = node.getOffset();
        int length = node.getLength();
        // if the name is a list of names, skip the opening and closing brackets
        if(nameExpr instanceof LiteralList) {
          offset++;
          length -= Math.min(2, length);
        }
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

    PuppetManifest model = (PuppetManifest) contents.get(0);
    doHighlight(model, acceptor);
  }

  public void provideTextualHighlighting(XtextResource resource, IHighlightedPositionAcceptor acceptor) {
    ICompositeNode root = resource.getParseResult().getRootNode();
    String text = root.getText();
    int limit = text.length();
    for(int i = 0; i < limit; i++)
      if(isSpecialSpace(text.charAt(i)))
        acceptor.addPosition(i, 1, PPHighlightConfiguration.SPECIAL_SPACE_ID);
  }
View Full Code Here

Examples of org.eclipse.xtext.nodemodel.ICompositeNode

  @Check
  public void checkParenthesisedExpression(ParenthesisedExpression o) {
    if(o.getExpr() == null) {
      final String msg = "Empty expression";
      final String issue = IPPDiagnostics.ISSUE__REQUIRED_EXPRESSION;
      final ICompositeNode node = NodeModelUtils.getNode(o);
      if(node == null)
        acceptor.acceptError(
          msg, o, PPPackage.Literals.PARENTHESISED_EXPRESSION__EXPR, INSIGNIFICANT_INDEX, issue);
      else {
        // if node's text is empty, mark the nodes before/after, if present.
        int textSize = node.getLength();
        INode endNode = textSize == 0 && node.hasNextSibling()
            ? node.getNextSibling()
            : node;
        INode startNode = textSize == 0 && node.hasPreviousSibling()
            ? node.getPreviousSibling()
            : node;

        ((ValidationBasedMessageAcceptor) acceptor).acceptError(
          msg, o, startNode.getOffset(), startNode.getLength() + ((startNode != endNode)
              ? endNode.getLength()
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.