Home | History | Annotate | Download | only in lexicalpreservation

Lines Matching defs:nodeText

20  * I should later be able to apply such difference to a nodeText.
436 private int considerCleaningTheLine(NodeText nodeText, int nodeTextIndex) {
437 while (nodeTextIndex >=1 && nodeText.getElements().get(nodeTextIndex - 1).isWhiteSpace() && !nodeText.getElements().get(nodeTextIndex - 1).isNewline()) {
438 nodeText.removeElement(nodeTextIndex - 1);
444 private boolean isAfterLBrace(NodeText nodeText, int nodeTextIndex) {
445 if (nodeTextIndex > 0 && nodeText.getElements().get(nodeTextIndex - 1).isToken(LBRACE)) {
448 if (nodeTextIndex > 0 && nodeText.getElements().get(nodeTextIndex - 1).isWhiteSpace() && !nodeText.getElements().get(nodeTextIndex - 1).isNewline()) {
449 return isAfterLBrace(nodeText, nodeTextIndex - 1);
458 private int considerEnforcingIndentation(NodeText nodeText, int nodeTextIndex) {
460 for (int i=nodeTextIndex; i >= 0 && hasOnlyWsBefore && i < nodeText.getElements().size(); i--) {
461 if (nodeText.getElements().get(i).isNewline()) {
464 if (!nodeText.getElements().get(i).isSpaceOrTab()) {
469 for (int i=nodeTextIndex; i >= 0 && i < nodeText.getElements().size(); i--) {
470 if (nodeText.getElements().get(i).isNewline()) {
473 nodeText.removeElement(i);
480 * Node that we have calculate the Difference we can apply to a concrete NodeText, modifying it according
483 void apply(NodeText nodeText, Node node) {
484 if (nodeText == null) {
492 if (diffIndex < this.elements.size() && nodeTextIndex >= nodeText.getElements().size()) {
501 throw new IllegalStateException("Cannot keep element because we reached the end of nodetext: "
502 + nodeText + ". Difference: " + this);
505 throw new IllegalStateException("Cannot keep element because we reached the end of nodetext: "
506 + nodeText + ". Difference: " + this);
509 nodeText.addElement(nodeTextIndex, toTextElement(((Added) diffEl).element));
515 } else if (diffIndex >= this.elements.size() && nodeTextIndex < nodeText.getElements().size()) {
516 TextElement nodeTextEl = nodeText.getElements().get(nodeTextIndex);
520 throw new UnsupportedOperationException("NodeText: " + nodeText + ". Difference: "
525 TextElement nodeTextEl = nodeText.getElements().get(nodeTextIndex);
546 if (nodeTextIndex > 0 && nodeText.getElements().get(nodeTextIndex - 1).isNewline()) {
547 for (TextElement e : processIndentation(indentation, nodeText.getElements().subList(0, nodeTextIndex - 1))) {
548 nodeText.addElement(nodeTextIndex++, e);
550 } else if (isAfterLBrace(nodeText, nodeTextIndex) && !isAReplacement(diffIndex)) {
554 nodeText.addElement(nodeTextIndex++, new TokenTextElement(TokenTypes.eolTokenKind()));
556 while (nodeText.getElements().get(nodeTextIndex).isSpaceOrTab()) {
557 nodeText.getElements().remove(nodeTextIndex);
559 for (TextElement e : processIndentation(indentation, nodeText.getElements().subList(0, nodeTextIndex - 1))) {
560 nodeText.addElement(nodeTextIndex++, e);
569 nodeText.addElement(nodeTextIndex++, e);
574 nodeText.addElement(nodeTextIndex, textElement);
581 nodeTextIndex = adjustIndentation(indentation, nodeText, nodeTextIndex, followedByUnindent/* && !addedIndentation*/);
618 throw new UnsupportedOperationException("Csm token " + csmToken + " NodeText TOKEN " + nodeTextToken);
628 for (int i = 0; i < STANDARD_INDENTATION_SIZE && nodeTextIndex >= 1 && nodeText.getTextElement(nodeTextIndex - 1).isSpaceOrTab(); i++) {
629 nodeText.removeElement(--nodeTextIndex);
644 nodeText.removeElement(nodeTextIndex);
649 nodeText.removeElement(nodeTextIndex);
650 if (nodeTextIndex < nodeText.getElements().size() && nodeText.getElements().get(nodeTextIndex).isNewline()) {
651 nodeTextIndex = considerCleaningTheLine(nodeText, nodeTextIndex);
654 nodeTextIndex = considerEnforcingIndentation(nodeText, nodeTextIndex);
657 if (nodeText.getElements().size() > nodeTextIndex && nodeTextIndex > 0) {
658 if (nodeText.getElements().get(nodeTextIndex).isWhiteSpace()
659 && nodeText.getElements().get(nodeTextIndex - 1).isWhiteSpace()) {
662 nodeText.getElements().remove(nodeTextIndex--);
671 nodeText.removeElement(nodeTextIndex);
679 nodeText.removeElement(nodeTextIndex);
717 .map(it -> findIndexOfCorrespondingNodeTextElement(it, nodeText, startNodeTextIndex, usedIndexes, node))
753 // We go over the original node text elements, in the order they appear in the NodeText.
795 } while (diffIndex < this.elements.size() || nodeTextIndex < nodeText.getElements().size());
798 private int findIndexOfCorrespondingNodeTextElement(CsmElement csmElement, NodeText nodeText, int startIndex, Set<Integer> usedIndexes, Node node) {
799 for (int i=startIndex;i<nodeText.getElements().size();i++){
801 TextElement textElement = nodeText.getTextElement(i);
828 private int adjustIndentation(List<TokenTextElement> indentation, NodeText nodeText, int nodeTextIndex, boolean followedByUnindent) {
829 List<TextElement> indentationAdj = processIndentation(indentation, nodeText.getElements().subList(0, nodeTextIndex - 1));
830 if (nodeTextIndex < nodeText.getElements().size() && nodeText.getElements().get(nodeTextIndex).isToken(RBRACE)) {
836 if ((nodeTextIndex<nodeText.getElements().size()) && nodeText.getElements().get(nodeTextIndex).isSpaceOrTab()) {
839 nodeText.getElements().add(nodeTextIndex++, e);