mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Follow up on 174597
This commit is contained in:
parent
571e7a6a7c
commit
80613b3223
3 changed files with 20 additions and 16 deletions
|
@ -97,7 +97,8 @@ int MyI = 0,j = 0;
|
||||||
puts("tryagain");
|
puts("tryagain");
|
||||||
|
|
||||||
} while (0);
|
} while (0);
|
||||||
if (MyI==0) {
|
if (MyI==0)
|
||||||
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -216,7 +216,7 @@ public class FoldingTest extends TestCase {
|
||||||
createPosition(57, 59),
|
createPosition(57, 59),
|
||||||
createPosition(61, 63),
|
createPosition(61, 63),
|
||||||
createPosition(65, 67),
|
createPosition(65, 67),
|
||||||
createPosition(70, 103, 71),
|
createPosition(70, 104, 71),
|
||||||
createPosition(75, 76),
|
createPosition(75, 76),
|
||||||
createPosition(77, 79),
|
createPosition(77, 79),
|
||||||
createPosition(80, 82),
|
createPosition(80, 82),
|
||||||
|
@ -226,10 +226,10 @@ public class FoldingTest extends TestCase {
|
||||||
createPosition(90, 91),
|
createPosition(90, 91),
|
||||||
createPosition(92, 93),
|
createPosition(92, 93),
|
||||||
createPosition(95, 97),
|
createPosition(95, 97),
|
||||||
createPosition(99, 101),
|
createPosition(99, 102),
|
||||||
createPosition(105, 109),
|
createPosition(106, 110),
|
||||||
};
|
};
|
||||||
// assertEquals(toString(expected), toString(actual));
|
assertEquals(toString(expected), toString(actual));
|
||||||
assertEqualPositions(expected, actual);
|
assertEqualPositions(expected, actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,7 +251,7 @@ public class FoldingTest extends TestCase {
|
||||||
createPosition(57, 59),
|
createPosition(57, 59),
|
||||||
createPosition(61, 63),
|
createPosition(61, 63),
|
||||||
createPosition(65, 67),
|
createPosition(65, 67),
|
||||||
createPosition(70, 103, 71),
|
createPosition(70, 104, 71),
|
||||||
createPosition(75, 76),
|
createPosition(75, 76),
|
||||||
createPosition(77, 79),
|
createPosition(77, 79),
|
||||||
createPosition(80, 82),
|
createPosition(80, 82),
|
||||||
|
@ -261,10 +261,10 @@ public class FoldingTest extends TestCase {
|
||||||
createPosition(90, 91),
|
createPosition(90, 91),
|
||||||
createPosition(92, 93),
|
createPosition(92, 93),
|
||||||
createPosition(95, 97),
|
createPosition(95, 97),
|
||||||
createPosition(99, 101),
|
createPosition(99, 102),
|
||||||
createPosition(105, 109),
|
createPosition(106, 110),
|
||||||
};
|
};
|
||||||
// assertEquals(toString(expected), toString(actual));
|
assertEquals(toString(expected), toString(actual));
|
||||||
assertEqualPositions(expected, actual);
|
assertEqualPositions(expected, actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,6 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||||
import org.eclipse.ui.texteditor.IDocumentProvider;
|
import org.eclipse.ui.texteditor.IDocumentProvider;
|
||||||
import org.eclipse.ui.texteditor.ITextEditor;
|
import org.eclipse.ui.texteditor.ITextEditor;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
|
||||||
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
|
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTBreakStatement;
|
import org.eclipse.cdt.core.dom.ast.IASTBreakStatement;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTCaseStatement;
|
import org.eclipse.cdt.core.dom.ast.IASTCaseStatement;
|
||||||
|
@ -1127,13 +1126,16 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
||||||
IASTFileLocation fl;
|
IASTFileLocation fl;
|
||||||
if (statement instanceof IASTIfStatement) {
|
if (statement instanceof IASTIfStatement) {
|
||||||
IASTIfStatement ifstmt = (IASTIfStatement) statement;
|
IASTIfStatement ifstmt = (IASTIfStatement) statement;
|
||||||
|
fl = ifstmt.getFileLocation();
|
||||||
|
if (fl==null) return PROCESS_CONTINUE;
|
||||||
|
int ifOffset= fl.getNodeOffset();
|
||||||
IASTStatement tmp;
|
IASTStatement tmp;
|
||||||
mr = new ModifiableRegionExtra();
|
mr = new ModifiableRegionExtra();
|
||||||
tmp = ifstmt.getThenClause();
|
tmp = ifstmt.getThenClause();
|
||||||
if (tmp==null) return PROCESS_CONTINUE;
|
if (tmp==null) return PROCESS_CONTINUE;
|
||||||
fl = tmp.getFileLocation();
|
fl = tmp.getFileLocation();
|
||||||
mr.setLength(fl.getNodeLength());
|
mr.setLength(fl.getNodeOffset() + fl.getNodeLength() - ifOffset);
|
||||||
mr.setOffset(fl.getNodeOffset());
|
mr.setOffset(ifOffset);
|
||||||
mr.inclusive = false;
|
mr.inclusive = false;
|
||||||
tmp = ifstmt.getElseClause();
|
tmp = ifstmt.getElseClause();
|
||||||
if (tmp==null) {
|
if (tmp==null) {
|
||||||
|
@ -1148,6 +1150,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
||||||
mr.setOffset(fl.getNodeOffset());
|
mr.setOffset(fl.getNodeOffset());
|
||||||
mr.inclusive = true;
|
mr.inclusive = true;
|
||||||
iral.push(mr);
|
iral.push(mr);
|
||||||
|
return PROCESS_CONTINUE;
|
||||||
}
|
}
|
||||||
mr = new ModifiableRegionExtra();
|
mr = new ModifiableRegionExtra();
|
||||||
mr.inclusive = true;
|
mr.inclusive = true;
|
||||||
|
@ -1198,9 +1201,9 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
||||||
iral.push(mr);
|
iral.push(mr);
|
||||||
}
|
}
|
||||||
return PROCESS_CONTINUE;
|
return PROCESS_CONTINUE;
|
||||||
} catch (Throwable e) {
|
} catch (Exception e) {
|
||||||
CCorePlugin.log(e);
|
CUIPlugin.getDefault().log(e);
|
||||||
return PROCESS_CONTINUE;
|
return PROCESS_ABORT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue