1616import java .util .ArrayList ;
1717import java .util .Iterator ;
1818import java .util .List ;
19+ import java .util .ListIterator ;
1920import java .util .Map ;
2021
2122import org .eclipse .core .runtime .CoreException ;
@@ -95,8 +96,6 @@ private static final void addSnippetsIfApplicable(LinkedCorrectionProposalCore p
9596 ProposalCore [] proposalList = group .getProposals ();
9697 PositionInformation [] positionList = group .getPositions ();
9798 StringBuilder snippet = new StringBuilder ();
98- snippet .append (SNIPPET_PREFIX );
99- snippet .append (snippetNumber );
10099 snippet .append (SNIPPET_CHOICE_INDICATOR );
101100 if (proposalList .length > 1 ) {
102101 for (int i = 0 ; i < positionList .length ; i ++) {
@@ -115,7 +114,7 @@ private static final void addSnippetsIfApplicable(LinkedCorrectionProposalCore p
115114 }
116115 }
117116 // If snippet is empty or only has one choice, ignore this group
118- if (snippet .toString ().equals (SNIPPET_PREFIX ) || snippet .indexOf (SNIPPET_CHOICE_DELIMITER ) == -1 ) {
117+ if (snippet .toString ().equals (String . valueOf ( SNIPPET_CHOICE_INDICATOR ) ) || snippet .indexOf (SNIPPET_CHOICE_DELIMITER ) == -1 ) {
119118 break ;
120119 }
121120 snippet .append (SNIPPET_CHOICE_POSTFIX );
@@ -128,6 +127,12 @@ private static final void addSnippetsIfApplicable(LinkedCorrectionProposalCore p
128127 if (!snippets .isEmpty ()) {
129128 // Sort snippets in descending order based on offset, so that the edits are applied in an order that does not alter the offset of later edits
130129 snippets .sort (null );
130+ ListIterator <Triple > li = snippets .listIterator (snippets .size ());
131+ while (li .hasPrevious ()) {
132+ Triple element = li .previous ();
133+ element .snippet = SNIPPET_PREFIX + snippetNumber + element .snippet ;
134+ snippetNumber ++;
135+ }
131136 for (int i = 0 ; i < edit .getDocumentChanges ().size (); i ++) {
132137 if (edit .getDocumentChanges ().get (i ).isLeft ()) {
133138 List <TextEdit > edits = edit .getDocumentChanges ().get (i ).getLeft ().getEdits ();
0 commit comments