1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-10 01:35:39 +02:00

Comments in ChangeGenerator, by Emanuel Graf, bug 226251.

This commit is contained in:
Markus Schorn 2008-04-09 11:51:43 +00:00
parent e4ae8a89a7
commit d5ad391d97
2 changed files with 14 additions and 10 deletions

View file

@ -35,8 +35,8 @@ public class ExceptionTest extends ChangeGeneratorTest {
@Override
protected void setUp() throws Exception {
source = "void foo(int parameter) throw (float){\n}\n\n"; //$NON-NLS-1$
expectedSource = "void foo(int parameter) throw (int, float){\n}\n\n"; //$NON-NLS-1$
source = "void foo(int parameter) throw (/*Test*/float) /*Test2*/{\n}\n\n"; //$NON-NLS-1$
expectedSource = "void foo(int parameter) throw (int, /*Test*/float) /*Test2*/{\n}\n\n"; //$NON-NLS-1$
super.setUp();
}

View file

@ -33,6 +33,8 @@ import org.eclipse.cdt.internal.core.dom.rewrite.ASTModificationStore;
import org.eclipse.cdt.internal.core.dom.rewrite.ASTRewriteAnalyzer;
import org.eclipse.cdt.internal.core.dom.rewrite.astwriter.ASTWriter;
import org.eclipse.cdt.internal.core.dom.rewrite.astwriter.ProblemRuntimeException;
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.ASTCommenter;
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
import org.eclipse.cdt.internal.core.dom.rewrite.util.FileContentHelper;
import org.eclipse.cdt.internal.core.dom.rewrite.util.FileHelper;
import org.eclipse.core.resources.IFile;
@ -56,6 +58,7 @@ public class ChangeGenerator extends CPPASTVisitor {
private CompositeChange change;
private final ASTModificationStore modificationStore;
private NodeCommentMap commentMap;
{
shouldVisitExpressions = true;
@ -97,6 +100,7 @@ public class ChangeGenerator extends CPPASTVisitor {
throws ProblemRuntimeException {
change = new CompositeChange(Messages.ChangeGenerator_compositeChange);
initParentModList();
commentMap = ASTCommenter.getCommentedNodeMap(rootNode.getTranslationUnit());
rootNode.accept(pathProvider);
for (IFile currentFile : changes.keySet()) {
@ -161,9 +165,10 @@ public class ChangeGenerator extends CPPASTVisitor {
String indent = getIndent(synthNode);
ASTWriter synthWriter = new ASTWriter(indent);
synthWriter.setModificationStore(modificationStore);
String synthSource = synthWriter.write(synthNode);
reformatSynthCode(synthNode, synthSource); /*XXX resultat wird nicht verwendet?*/
String synthSource = synthWriter.write(synthNode, fileScope, commentMap);
reformatSynthCode(synthNode, synthSource); /*XXX resultat wird nicht verwendet?*/
int newOffset = synthNode.getFileLocation().getNodeOffset()
+ synthNode.getFileLocation().getNodeLength();
@ -189,8 +194,8 @@ public class ChangeGenerator extends CPPASTVisitor {
edit = new MultiTextEdit();
changes.put(relevantFile, edit);
}
String newNodeCode = synthWriter.write(modification.getNewNode(), null, commentMap);
String newNodeCode = synthWriter.write(modification.getNewNode());
switch (modification.getKind()) {
case REPLACE:
edit.addChild(new ReplaceEdit(targetLocation.getNodeOffset(),
@ -555,9 +560,8 @@ public class ChangeGenerator extends CPPASTVisitor {
: synthCode.length());
if (replacementStart < replacementEnd) {
return synthCode.substring(replacementStart, replacementEnd);
} else {
return ""; //$NON-NLS-1$
}
return ""; //$NON-NLS-1$
}
}