1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 10:16:03 +02:00

Fix NPE when opening an editor in segmented mode

This commit is contained in:
Anton Leherbauer 2007-07-09 14:14:58 +00:00
parent bf4290500d
commit e82ae65f18
2 changed files with 8 additions and 30 deletions

View file

@ -41,6 +41,8 @@ import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
/**
@ -157,6 +159,8 @@ public class CSourceViewer extends ProjectionViewer implements IPropertyChangeLi
if (fPreferenceStore != null) {
fPreferenceStore.addPropertyChangeListener(this);
initializeViewerColors();
// init flag here in case we start in segmented mode
fWasProjectionMode= fPreferenceStore.getBoolean(PreferenceConstants.EDITOR_FOLDING_ENABLED);
}
fIsConfigured= true;

View file

@ -125,8 +125,10 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
try {
FoldingStructureComputationContext ctx= createContext(fInitialReconcilePending);
fInitialReconcilePending= false;
if (ctx != null) {
ctx.fAST= ast;
update(ctx);
}
} finally {
fReconciling= false;
}
@ -380,7 +382,6 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
IRegion preRegion;
if (firstLine < captionLine) {
// preRegion= new Region(offset + prefixEnd, contentStart - prefixEnd);
int preOffset= document.getLineOffset(firstLine);
IRegion preEndLineInfo= document.getLineInformation(captionLine);
int preEnd= preEndLineInfo.getOffset();
@ -422,33 +423,6 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
return 0;
}
// /**
// * Finds the offset of the first identifier part within <code>content</code>.
// * Returns 0 if none is found.
// *
// * @param content the content to search
// * @return the first index of a unicode identifier part, or zero if none can
// * be found
// */
// private int findPrefixEnd(final CharSequence content) {
// // return the index after the leading '/*' or '/**'
// int len= content.length();
// int i= 0;
// while (i < len && isWhiteSpace(content.charAt(i)))
// i++;
// if (len >= i + 2 && content.charAt(i) == '/' && content.charAt(i + 1) == '*')
// if (len >= i + 3 && content.charAt(i + 2) == '*')
// return i + 3;
// else
// return i + 2;
// else
// return i;
// }
//
// private boolean isWhiteSpace(char c) {
// return c == ' ' || c == '\t';
// }
/*
* @see org.eclipse.jface.text.source.projection.IProjectionPosition#computeCaptionOffset(org.eclipse.jface.text.IDocument)
*/