Package com.puppetlabs.xtext.dommodel

Examples of com.puppetlabs.xtext.dommodel.IDomNode


  private IStatus formattedDomDump(XtextResource resource) {
    if(serializer instanceof DomBasedSerializer == false)
      return new Status(
        IStatus.ERROR, "com.puppetlabs.geppetto.pp.dsl.ui", "Not configured to use DomBasedSerializer");
    DomBasedSerializer domSerializer = ((DomBasedSerializer) serializer);
    IDomNode dom = domSerializer.serializeToDom(resource.getContents().get(0), false);
    ISerializationDiagnostic.Acceptor errors = ISerializationDiagnostic.EXCEPTION_THROWING_ACCEPTOR;

    // ReplaceRegion r = domFormatter.format(dom, null /* all text */, formattingContextProvider.get(false), errors);
    getDomFormatter().format(
      dom, null /* all text */, formattingContextFactory.create(resource, FormattingOption.Format), errors);
View Full Code Here


            content = document.get();
            ISerializationDiagnostic.Acceptor errors = ISerializationDiagnostic.EXCEPTION_THROWING_ACCEPTOR;
            try {
              resourceScope.enter(state);
              // EObject context = getContext(state.getContents().get(0));
              IDomNode root = getSerializer().serializeToDom(state.getContents().get(0), false);
              org.eclipse.xtext.util.ReplaceRegion r = getFormatter().format(
                root, new TextRegion(0, document.getLength()), //
                getFormattingContextFactory().create(state, FormattingOption.Format), errors);
              if(!content.equals(r.getText())) {
                document.replace(0, document.getLength(), r.getText());
View Full Code Here

      // TODO: get the dom root
      ISerializationDiagnostic.Acceptor errors = ISerializationDiagnostic.EXCEPTION_THROWING_ACCEPTOR;
      try {
        resourceScope.enter(state);
        // EObject context = getContext(state.getContents().get(0));
        IDomNode root = getSerializer().serializeToDom(state.getContents().get(0), false);
        org.eclipse.xtext.util.ReplaceRegion r = getFormatter().format(
          root, new TextRegion(region.getOffset(), region.getLength()), //
          getFormattingContextFactory().create(state, FormattingOption.Format), errors);
        ReplaceRegion replaceRegion = new ReplaceRegion(r.getOffset(), r.getLength(), r.getText());
        try {
View Full Code Here

    // DefinitionArgument returns pp::DefinitionArgument
    // : argName = UNION_VARIABLE_OR_NAME ((op = '=' | op = '=>') value = AssignmentExpression)?
    // ;
    final DefinitionArgumentListElements access = grammarAccess.getDefinitionArgumentListAccess();
    while(itor.hasNext()) {
      IDomNode n = itor.next();
      EObject ge = n.getGrammarElement();
      if(ge == access.getLeftParenthesisKeyword_1()) {
        IDomNode nextLeaf = DomModelUtils.nextLeaf(n);
        if(DomModelUtils.isWhitespace(nextLeaf))
          if(breakAndAlign)
            nextLeaf.getStyles().add(StyleSet.withStyles(styles.oneLineBreak(), styles.indent()));
          else
            nextLeaf.getStyles().add(StyleSet.withStyles(styles.indent()));
      }
      else if(ge == access.getRightParenthesisKeyword_4()) {
        IDomNode prevLeaf = DomModelUtils.previousLeaf(n);
        if(DomModelUtils.isWhitespace(prevLeaf))
          prevLeaf.getStyles().add(StyleSet.withStyles(styles.dedent()));
      }
      else if(breakAndAlign) {
        if(ge == access.getCommaKeyword_2_1_0()) {
          IDomNode nextLeaf = DomModelUtils.nextLeaf(n);
          if(DomModelUtils.isWhitespace(nextLeaf))
            nextLeaf.getStyles().add(StyleSet.withStyles(styles.oneLineBreak()));
        }
        // Break on endcomma does not look good - here is how it would be done though...
        // else if(ge == grammarAccess.getDefinitionArgumentListAccess().getEndCommaParserRuleCall_3()) {
        // IDomNode spaceAfterEndComma = DomModelUtils.nextLeaf(DomModelUtils.firstTokenWithText(n));
        // if(DomModelUtils.isWhitespace(spaceAfterEndComma))
View Full Code Here

    Iterator<IDomNode> itor = node.treeIterator();

    LiteralListElements access = grammarAccess.getLiteralListAccess();
    while(itor.hasNext()) {
      IDomNode n = itor.next();
      EObject ge = n.getGrammarElement();
      if(ge == access.getLeftSquareBracketKeyword_1()) {
        IDomNode nextLeaf = DomModelUtils.nextWhitespace(n);
        if(DomModelUtils.isWhitespace(nextLeaf) && breakAndAlign)
          nextLeaf.getStyles().add(StyleSet.withStyles(styles.oneLineBreak()));
      }
      else if(breakAndAlign && ge == access.getCommaKeyword_2_1_0()) {
        IDomNode nextLeaf = DomModelUtils.nextWhitespace(n);
        if(DomModelUtils.isWhitespace(nextLeaf))
          nextLeaf.getStyles().add(StyleSet.withStyles(styles.oneLineBreak()));
      }
      else if(breakAndAlign && ge == access.getCommaKeyword_2_2()) {
        IDomNode nextLeaf = DomModelUtils.nextWhitespace(n);
        if(DomModelUtils.isWhitespace(nextLeaf))
          nextLeaf.getStyles().add(StyleSet.withStyles(styles.oneLineBreak()));
      }
    }

  }
View Full Code Here

  public void finish() {
    if(stack.size() == 0) {
      // TODO: Discuss this issue
      // ensure there is a whitespace node at the very end (to enable defining a
      // formatting rule for trailing WS)
      IDomNode lastLeaf = DomModelUtils.lastLeaf(current);
      if(lastLeaf != null) {
        if(!DomModelUtils.isWhitespace(lastLeaf))
          acceptWhitespace(hiddenTokenHelper.getWhitespaceRuleFor(null, ""), //
            IDomNode.IMPLIED_EMPTY_WHITESPACE, null);
      }
View Full Code Here

      if(resourceScope.get().getResourceURI() == null) {
        alreadyEnteredResourceScope = true;
        resourceScope.enter(obj.eResource());
      }
      // Serialize everything to DOM
      IDomNode root = serializeToDom(obj.eResource().getContents().get(0), true, commentReconciliator);

      // Find the node for the modified object, we need to format the region it occupies.
      IDomNode replacementNode = DomModelUtils.findNodeForSemanticObject(root, obj);
      TextRegion regionToFormat = new TextRegion(replacementNode.getOffset(), replacementNode.getLength());

      // Override temporarily to have formatting turned on
      // GAH - this is just ridiculous internal DSL junk to set a single boolean
      options = SaveOptions.newBuilder().format().getOptions();
      ReplaceRegion r = domFormatter.format(
View Full Code Here

TOP

Related Classes of com.puppetlabs.xtext.dommodel.IDomNode

Copyright © 2018 www.massapicom. 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.