diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CIndenter.java | 24 | ||||
-rw-r--r-- | core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CReconcilingStrategy.java | 64 |
2 files changed, 26 insertions, 62 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CIndenter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CIndenter.java index ac02d59b402..ab5e31ac092 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CIndenter.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CIndenter.java @@ -1009,23 +1009,23 @@ public final class CIndenter { /** * Test whether an identifier encountered during scanning is part of * a type declaration, by scanning backward and ignoring any identifiers, commas, - * and colons until we hit <code>class</code>, <code>struct</code>, <code>union</code>, + * and colons until we hit <code>class</code>, <code>struct</code>, <code>union</code>, * or <code>enum</code>. If any braces, semicolons, or parentheses are encountered, - * this is not a type declaration. + * this is not a type declaration. * @return the reference offset of the start of the statement */ private int matchTypeDeclaration() { while (true) { nextToken(); - if (fToken == Symbols.TokenIDENT + if (fToken == Symbols.TokenIDENT || fToken == Symbols.TokenCOMMA || fToken == Symbols.TokenCOLON - || fToken == Symbols.TokenPUBLIC + || fToken == Symbols.TokenPUBLIC || fToken == Symbols.TokenPROTECTED || fToken == Symbols.TokenPRIVATE) { continue; } - else if (fToken == Symbols.TokenCLASS + else if (fToken == Symbols.TokenCLASS || fToken == Symbols.TokenSTRUCT || fToken == Symbols.TokenUNION || fToken == Symbols.TokenENUM) { @@ -1045,7 +1045,7 @@ public final class CIndenter { } /** - * Test whether the colon at the current position marks a case statement + * Test whether the colon at the current position marks a case statement * * @return <code>true</code> if this looks like a case statement */ @@ -1071,6 +1071,7 @@ public final class CIndenter { case Symbols.TokenCASE: return true; } + break; case Symbols.TokenDEFAULT: return true; } @@ -1078,7 +1079,7 @@ public final class CIndenter { } /** - * Test whether the colon at the current position marks a type inheritance decl. + * Test whether the colon at the current position marks a type inheritance decl. * * @return <code>true</code> if this looks like a a type inheritance decl */ @@ -1205,6 +1206,7 @@ public final class CIndenter { case Symbols.TokenRPAREN: if (isInBlock) mayBeMethodBody= READ_PARENS; + // fall thru case Symbols.TokenRBRACKET: case Symbols.TokenGREATERTHAN: pos= fPreviousPos; @@ -1281,6 +1283,7 @@ public final class CIndenter { if (previous == Symbols.TokenIDENT) { return false; } + // fall thru case Symbols.TokenDOUBLECOLON: case Symbols.TokenOTHER: continue; @@ -1353,8 +1356,8 @@ public final class CIndenter { } /** - * Returns as a reference any previous access specifiers (<code>public</code>, - * <code>protected</code> or <code>default</code>) or the offset of the brace that + * Returns as a reference any previous access specifiers (<code>public</code>, + * <code>protected</code> or <code>default</code>) or the offset of the brace that * scopes the class body. * Sets <code>fIndent</code> to <code>prefAccessSpecifierIndent</code> upon * a match. @@ -1491,6 +1494,7 @@ public final class CIndenter { case Symbols.TokenIDENT: if (!isGenericStarter(getTokenContent())) break; + // fall thru case Symbols.TokenQUESTIONMARK: case Symbols.TokenGREATERTHAN: if (skipScope(Symbols.TokenLESSTHAN, Symbols.TokenGREATERTHAN)) @@ -1660,7 +1664,7 @@ public final class CIndenter { /** * Returns <code>true</code> if the next token received after calling - * <code>nextToken</code> is either an equal sign, an opening brace, + * <code>nextToken</code> is either an equal sign, an opening brace, * a comma or an array designator ('[]'). * * @return <code>true</code> if the next elements look like the start of an array definition diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CReconcilingStrategy.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CReconcilingStrategy.java index cf1454e1d16..cdf3edb1b8b 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CReconcilingStrategy.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CReconcilingStrategy.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2007 IBM Corporation and others. + * Copyright (c) 2005, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -26,20 +26,16 @@ import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.CModelException; -import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.model.IWorkingCopy; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.IWorkingCopyManager; -import org.eclipse.cdt.internal.core.model.CModelManager; - public class CReconcilingStrategy implements IReconcilingStrategy, IReconcilingStrategyExtension { - private ITextEditor fEditor; + private ITextEditor fEditor; private IWorkingCopyManager fManager; private IProgressMonitor fProgressMonitor; - private String txt = null; // used by tests protected boolean fInitialProcessDone; @@ -52,7 +48,14 @@ public class CReconcilingStrategy implements IReconcilingStrategy, IReconcilingS * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#setDocument(org.eclipse.jface.text.IDocument) */ public void setDocument(IDocument document) { - } + } + + /* + * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#reconcile(org.eclipse.jface.text.reconciler.DirtyRegion, org.eclipse.jface.text.IRegion) + */ + public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion) { + // only called for incremental reconciler + } /* * @see IReconcilingStrategyExtension#setProgressMonitor(IProgressMonitor) @@ -68,50 +71,6 @@ public class CReconcilingStrategy implements IReconcilingStrategy, IReconcilingS reconcile(false); } - - /* - * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#reconcile(org.eclipse.jface.text.reconciler.DirtyRegion, org.eclipse.jface.text.IRegion) - * Called for incremental reconciler only - currently not used (no shift deltas) - */ - public void reconcile(DirtyRegion dirtyRegion, IRegion region) { - // consistent data needs not further checks ! - ITranslationUnit tu = fManager.getWorkingCopy(fEditor.getEditorInput()); - if (tu != null && tu.isWorkingCopy()) { - try { - if (tu.isConsistent()) return; - } catch (CModelException e) {} - } - - // bug 113518 - // local data needs not to be re-parsed - boolean needReconcile = true; - int dOff = dirtyRegion.getOffset(); - int dLen = dirtyRegion.getLength(); - IDocument doc = fEditor.getDocumentProvider().getDocument(fEditor.getEditorInput()); - - if ((doc != null) && (!CWordFinder.isGlobal(doc, dOff))) { - String s = ""; //$NON-NLS-1$ - if (dirtyRegion.getType().charAt(2) == 'i') { // insert operation - s = dirtyRegion.getText(); - if (!CWordFinder.hasCBraces(s)) { - CModelManager.getDefault().fireShift(tu, dOff, dLen, CWordFinder.countLFs(s)); - needReconcile = false; - } - } else { // remove operation - // check whether old document copy is relevant - if (txt != null && (txt.length() == doc.getLength() + dLen)) { - s = txt.substring(dOff, dOff + dLen); - if (!CWordFinder.hasCBraces(s)) { - CModelManager.getDefault().fireShift(tu, dOff, -dLen, -CWordFinder.countLFs(s)); - needReconcile = false; - } - } - } - } - if (needReconcile) reconcile(false); - txt = doc.get(); // save doc copy for further use - } - private void reconcile(final boolean initialReconcile) { boolean computeAST= fEditor instanceof ICReconcilingListener; IASTTranslationUnit ast= null; @@ -172,5 +131,6 @@ public class CReconcilingStrategy implements IReconcilingStrategy, IReconcilingS if (fEditor instanceof ICReconcilingListener) { ((ICReconcilingListener)fEditor).aboutToBeReconciled(); } - } + } + } |