diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/IndentAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/IndentAction.java index ffd3886f90c..7ec192e9040 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/IndentAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/IndentAction.java @@ -66,8 +66,8 @@ public class IndentAction extends TextEditorAction { /** The caret offset after an indent operation. */ private int fCaretOffset; - /** - * Whether this is the action invoked by TAB. When true, indentation behaves + /** + * Whether this is the action invoked by TAB. When true, indentation behaves * differently to accommodate normal TAB operation. */ private final boolean fIsTabAction; @@ -174,8 +174,8 @@ public class IndentAction extends TextEditorAction { * @param newLength the selection range */ private void selectAndReveal(int newOffset, int newLength) { - Assert.isTrue(newOffset >= 0); - Assert.isTrue(newLength >= 0); + Assert.isTrue(newOffset >= 0); + Assert.isTrue(newLength >= 0); ITextEditor editor= getTextEditor(); if (editor instanceof CEditor) { ISourceViewer viewer= ((CEditor)editor).getViewer(); @@ -188,7 +188,7 @@ public class IndentAction extends TextEditorAction { } /** - * Indents a single line using the heuristic scanner. Multiline comments are + * Indents a single line using the heuristic scanner. Multiline comments are * indented as specified by the CCommentAutoIndentStrategy. * * @param document the document @@ -196,9 +196,9 @@ public class IndentAction extends TextEditorAction { * @param caret the caret position * @param indenter the indenter * @param scanner the heuristic scanner - * @param multiLine true if more than one line is being indented + * @param multiLine true if more than one line is being indented * @return true if document was modified, false otherwise - * @throws BadLocationException if the document got changed concurrently + * @throws BadLocationException if the document got changed concurrently */ private boolean indentLine(IDocument document, int line, int caret, CIndenter indenter, CHeuristicScanner scanner, boolean multiLine) throws BadLocationException { IRegion currentLine= document.getLineInformation(line); @@ -224,9 +224,9 @@ public class IndentAction extends TextEditorAction { wsStart= offset + slashes; - StringBuffer computed= indenter.computeIndentation(offset); + StringBuilder computed= indenter.computeIndentation(offset); if (computed == null) - computed= new StringBuffer(0); + computed= new StringBuilder(0); int tabSize= getTabSize(); while (slashes > 0 && computed.length() > 0) { char c= computed.charAt(0); @@ -251,7 +251,7 @@ public class IndentAction extends TextEditorAction { // standard C code indentation if (indent == null) { - StringBuffer computed= indenter.computeIndentation(offset); + StringBuilder computed= indenter.computeIndentation(offset); if (computed != null) indent= computed.toString(); else @@ -324,7 +324,7 @@ public class IndentAction extends TextEditorAction { /** * Returns the size in characters of a string. All characters count one, tabs count the editor's - * preference for the tab display + * preference for the tab display * * @param indent the string to be measured. * @return the size in characters of a string @@ -459,7 +459,7 @@ public class IndentAction extends TextEditorAction { } /** - * Returns if the current selection is valid, i.e. whether it is empty and the caret in the + * Returns if the current selection is valid, i.e. whether it is empty and the caret in the * whitespace at the start of a line, or covers multiple lines. * * @return true if the selection is valid for an indent operation @@ -484,7 +484,7 @@ public class IndentAction extends TextEditorAction { // or the selection has to extend over multiple lines if (length == 0) { return document.get(lineOffset, offset - lineOffset).trim().length() == 0; - } + } // return lineOffset + firstLine.getLength() < offset + length; return false; // only enable for empty selections for now } catch (BadLocationException e) { @@ -508,7 +508,7 @@ public class IndentAction extends TextEditorAction { } /** - * Returns the document currently displayed in the editor, or null if none can be + * Returns the document currently displayed in the editor, or null if none can be * obtained. * * @return the current document or null diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/IndentUtil.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/IndentUtil.java index c64d11b2d29..4179ab588f2 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/IndentUtil.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/IndentUtil.java @@ -181,10 +181,10 @@ public final class IndentUtil { boolean indentInsideLineComments= indentInsideLineComments(project); String current= getCurrentIndent(document, lines.getStartLine(), indentInsideLineComments); - StringBuffer correct= new StringBuffer(computeIndent(document, lines.getStartLine(), indenter, scanner)); + StringBuilder correct= new StringBuilder(computeIndent(document, lines.getStartLine(), indenter, scanner)); int tabSize= CodeFormatterUtil.getTabWidth(project); - StringBuffer addition= new StringBuffer(); + StringBuilder addition= new StringBuilder(); int difference= subtractIndent(correct, current, addition, tabSize); if (difference == 0) @@ -248,7 +248,7 @@ public final class IndentUtil { * @param shiftWidth * @param tabWidth * @return number of characters deleted - * @throws BadLocationException + * @throws BadLocationException */ public static int cutIndent(IDocument document, int line, int shiftWidth, int tabWidth) throws BadLocationException { return cutIndent(document, line, shiftWidth, tabWidth, new boolean[1], 0, false); @@ -308,7 +308,7 @@ public final class IndentUtil { * @param difference a string buffer - if the return value is positive, it will be cleared and set to the substring of current of that length * @return the difference in lenght of correct and current */ - private static int subtractIndent(CharSequence correct, CharSequence current, StringBuffer difference, int tabSize) { + private static int subtractIndent(CharSequence correct, CharSequence current, StringBuilder difference, int tabSize) { int c1= computeVisualLength(correct, tabSize); int c2= computeVisualLength(current, tabSize); int diff= c1 - c2; @@ -418,7 +418,7 @@ public final class IndentUtil { } /** - * Indents a single line using the heuristic scanner. Multiline comments are + * Indents a single line using the heuristic scanner. Multiline comments are * indented as specified by the CCommentAutoIndentStrategy. * * @param document the document @@ -448,13 +448,13 @@ public final class IndentUtil { } else if (startingPartition.getType().equals(ICPartitions.C_PREPROCESSOR)) { indent= computePreprocessorIndent(document, line, startingPartition); } else if (!commentLines[lineIndex] && startingPartition.getOffset() == offset && startingPartition.getType().equals(ICPartitions.C_SINGLE_LINE_COMMENT)) { - return false; + return false; } - } + } // standard C code indentation if (indent == null) { - StringBuffer computed= indenter.computeIndentation(offset); + StringBuilder computed= indenter.computeIndentation(offset); if (computed != null) indent= computed.toString(); else @@ -517,7 +517,7 @@ public final class IndentUtil { // standard C code indentation if (indent == null) { - StringBuffer computed= indenter.computeIndentation(offset); + StringBuilder computed= indenter.computeIndentation(offset); if (computed != null) indent= computed.toString(); else @@ -559,7 +559,7 @@ public final class IndentUtil { int previousLineLength= previousLine.getLength(); int previousLineEnd= previousLineStart + previousLineLength; - StringBuffer buf= new StringBuffer(); + StringBuilder buf= new StringBuilder(); int previousLineNonWS= scanner.findNonWhitespaceForwardInAnyPartition(previousLineStart, previousLineEnd); if (previousLineNonWS == CHeuristicScanner.NOT_FOUND || document.getChar(previousLineNonWS) != '*') { // align with the comment start if the previous line is not an asterix line @@ -571,7 +571,7 @@ public final class IndentUtil { if (previousLineNonWS == CHeuristicScanner.NOT_FOUND) previousLineNonWS= previousLineEnd; - // add the initial space + // add the initial space // TODO this may be controlled by a formatter preference in the future buf.append(' '); } @@ -598,9 +598,9 @@ public final class IndentUtil { CHeuristicScanner ppScanner= new CHeuristicScanner(document, ICPartitions.C_PARTITIONING, partition.getType()); CIndenter ppIndenter= new CIndenter(document, ppScanner); if (line == ppFirstLine + 1) { - return ppIndenter.createReusingIndent(new StringBuffer(), 1).toString(); + return ppIndenter.createReusingIndent(new StringBuilder(), 1).toString(); } - StringBuffer computed= ppIndenter.computeIndentation(document.getLineOffset(line), false); + StringBuilder computed= ppIndenter.computeIndentation(document.getLineOffset(line), false); if (computed != null) { return computed.toString(); } @@ -612,7 +612,7 @@ public final class IndentUtil { int previousLineNonWS= ppScanner.findNonWhitespaceForwardInAnyPartition(previousLineStart, previousLineEnd); String previousIndent= document.get(previousLineStart, previousLineNonWS - previousLineStart); - computed= new StringBuffer(previousIndent); + computed= new StringBuilder(previousIndent); return computed.toString(); } @@ -628,7 +628,7 @@ public final class IndentUtil { if (column > displayedWidth) { return prefix; } - final StringBuffer buffer = new StringBuffer(prefix); + final StringBuilder buffer = new StringBuilder(prefix); appendIndent(buffer, displayedWidth, tabWidth, useSpaces, column); return buffer.toString(); } @@ -640,9 +640,9 @@ public final class IndentUtil { * @param tabWidth the configured tab width * @param useSpaces whether tabs should be substituted by spaces * @param startColumn the column where to start measurement - * @return StringBuffer + * @return StringBuilder */ - private static StringBuffer appendIndent(StringBuffer buffer, int width, int tabWidth, boolean useSpaces, int startColumn) { + private static StringBuilder appendIndent(StringBuilder buffer, int width, int tabWidth, boolean useSpaces, int startColumn) { assert tabWidth > 0; int tabStop = startColumn - startColumn % tabWidth; int tabs = useSpaces ? 0 : (width-tabStop) / tabWidth; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CAutoIndentStrategy.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CAutoIndentStrategy.java index ec6fe666f22..57172cff4af 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CAutoIndentStrategy.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CAutoIndentStrategy.java @@ -49,15 +49,15 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { private static final String LINE_COMMENT= "//"; //$NON-NLS-1$ // private static final GCCScannerExtensionConfiguration C_GNU_SCANNER_EXTENSION = new GCCScannerExtensionConfiguration(); - private static class CompilationUnitInfo { - char[] buffer; - int delta; - - CompilationUnitInfo(char[] buffer, int delta) { - this.buffer = buffer; - this.delta = delta; - } - } +// private static class CompilationUnitInfo { +// char[] buffer; +// int delta; +// +// CompilationUnitInfo(char[] buffer, int delta) { +// this.buffer = buffer; +// this.delta = delta; +// } +// } private boolean fCloseBrace; private boolean fIsSmartMode; @@ -89,7 +89,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { // a comment starts, advance to the comment end start = getCommentEnd(d, start + 1, end); } else if (next == '/') { - // '//'-comment: nothing to do anymore on this line + // '//'-comment: nothing to do anymore on this line start = end; } } @@ -186,7 +186,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { int indLine = d.getLineOfOffset(reference); if (indLine != -1 && indLine != line) { // take the indent of the found line - StringBuffer replaceText = new StringBuffer(getIndentOfLine(d, indLine)); + StringBuilder replaceText = new StringBuilder(getIndentOfLine(d, indLine)); // add the rest of the current line including the just added close bracket replaceText.append(d.get(whiteend, c.offset - whiteend)); replaceText.append(c.text); @@ -230,7 +230,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { // Only shift if the last C line is further up and is a braceless block candidate if (lastLine < line) { CIndenter indenter = new CIndenter(d, scanner, fProject); - StringBuffer indent = indenter.computeIndentation(p, true); + StringBuilder indent = indenter.computeIndentation(p, true); String toDelete = d.get(lineOffset, c.offset - lineOffset); if (indent != null && !indent.toString().equals(toDelete)) { c.text = indent.append(c.text).toString(); @@ -253,7 +253,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { CHeuristicScanner scanner= new CHeuristicScanner(d); try { ITypedRegion partition= TextUtilities.getPartition(d, fPartitioning, c.offset, false); - if (ICPartitions.C_PREPROCESSOR.equals(partition.getType()) && d.get(c.offset-1, 1).charAt(0) == '\\') { + if (ICPartitions.C_PREPROCESSOR.equals(partition.getType()) && c.offset > 0 && d.getChar(c.offset-1) == '\\') { scanner = new CHeuristicScanner(d, fPartitioning, ICPartitions.C_PREPROCESSOR); addIndent= 1; } @@ -263,7 +263,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { int start = reg.getOffset(); int lineEnd = start + reg.getLength(); - StringBuffer indent= null; + StringBuilder indent= null; CIndenter indenter= new CIndenter(d, scanner, fProject); if (getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_AUTO_INDENT)) { indent= indenter.computeIndentation(c.offset); @@ -271,18 +271,18 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { // reuse existing indent int wsEnd= findEndOfWhiteSpace(d, start, c.offset); if (wsEnd > start) { - indent= new StringBuffer(d.get(start, wsEnd - start)); + indent= new StringBuilder(d.get(start, wsEnd - start)); addIndent= 0; } } if (indent == null) { - indent= new StringBuffer(); + indent= new StringBuilder(); } if (addIndent > 0 && indent.length() == 0) { indent= indenter.createReusingIndent(indent, addIndent); } - StringBuffer buf = new StringBuffer(c.text + indent); + StringBuilder buf = new StringBuilder(c.text + indent); int contentStart = findEndOfWhiteSpace(d, c.offset, lineEnd); c.length = Math.max(contentStart - c.offset, 0); @@ -301,10 +301,10 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { } buf.append(TextUtilities.getDefaultLineDelimiter(d)); - StringBuffer reference = null; + StringBuilder reference = null; int nonWS = findEndOfWhiteSpace(d, start, lineEnd); if (nonWS < c.offset && d.getChar(nonWS) == '{') - reference = new StringBuffer(d.get(start, nonWS - start)); + reference = new StringBuilder(d.get(start, nonWS - start)); else reference = indenter.getReferenceIndentation(c.offset); if (reference != null) @@ -326,10 +326,10 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { c.caretOffset = c.offset + buf.length(); c.shiftsCaret = false; - StringBuffer reference = null; + StringBuilder reference = null; int nonWS = findEndOfWhiteSpace(d, start, lineEnd); if (nonWS < c.offset && d.getChar(nonWS) == '{') - reference = new StringBuffer(d.get(start, nonWS - start)); + reference = new StringBuilder(d.get(start, nonWS - start)); else reference = indenter.getReferenceIndentation(c.offset); @@ -408,35 +408,35 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { } private boolean isClosedBrace(IDocument document, int offset, int length) { - CompilationUnitInfo info = getCompilationUnitForMethod(document, offset, fPartitioning); - if (info == null) - return false; - return getBlockBalance(document, offset, fPartitioning) <= 0; - //TODO: Use smarter algorithm based on + //TODO: Use smarter algorithm based on +// CompilationUnitInfo info = getCompilationUnitForMethod(document, offset, fPartitioning); +// if (info == null) +// return false; +// // CodeReader reader = new CodeReader(info.buffer); // ICodeReaderFactory fileCreator = CDOM.getInstance().getCodeReaderFactory(CDOM.PARSE_WORKING_COPY_WHENEVER_POSSIBLE); -// +// // IScanner domScanner = new DOMScanner(reader, new ScannerInfo(), ParserMode.COMPLETE_PARSE, // ParserLanguage.C, ParserFactory.createDefaultLogService(), // C_GNU_SCANNER_EXTENSION, fileCreator); -// +// // ISourceCodeParser parser = new GNUCPPSourceParser( // domScanner, // ParserMode.COMPLETE_PARSE, // ParserUtil.getParserLogService(), // new GPPParserExtensionConfiguration()); -// +// // IASTTranslationUnit translationUnit = parser.parse(); // final int relativeOffset = offset - info.delta; // IASTNode node = translationUnit.selectNodeForLocation(reader.getPath(), relativeOffset, length); -// +// // if (node == null) // return false; // // if (node instanceof IASTCompoundStatement) { // return getBlockBalance(document, offset, fPartitioning) <= 0; -// } else if (node instanceof IASTIfStatement) { +// } else if (node instanceof IASTIfStatement) { // IASTIfStatement ifStatement = (IASTIfStatement) node; // IASTExpression expression = ifStatement.getConditionExpression(); // IRegion expressionRegion = createRegion(expression, info.delta); @@ -463,7 +463,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { // return pos <= offset && offset + length < elseRegion.getOffset(); // } // } -// +// // return true; // } // } else if (node instanceof IASTForStatement) { @@ -582,7 +582,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { // (as the first might be partially selected) and use the value to // indent all other lines. boolean isIndentDetected= false; - StringBuffer addition= new StringBuffer(); + StringBuilder addition= new StringBuilder(); int insertLength= 0; int first= document.computeNumberOfLines(prefix) + firstLine; // don't format first line int lines= temp.getNumberOfLines(); @@ -600,7 +600,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { if (!isIndentDetected) { // indent the first pasted line String current= IndentUtil.getCurrentIndent(temp, l, indentInsideLineComments); - StringBuffer correct= new StringBuffer(IndentUtil.computeIndent(temp, l, indenter, scanner)); + StringBuilder correct= new StringBuilder(IndentUtil.computeIndent(temp, l, indenter, scanner)); insertLength= subtractIndent(correct, current, addition); // workaround for bug 181139 @@ -651,7 +651,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { * @param difference a string buffer - if the return value is positive, it will be cleared and set to the substring of current of that length * @return the difference in lenght of correct and current */ - private int subtractIndent(CharSequence correct, CharSequence current, StringBuffer difference) { + private int subtractIndent(CharSequence correct, CharSequence current, StringBuilder difference) { int c1= computeVisualLength(correct); int c2= computeVisualLength(current); int diff= c1 - c2; @@ -1164,29 +1164,29 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { return false; } - private static CompilationUnitInfo getCompilationUnitForMethod(IDocument document, int offset, String partitioning) { - try { - CHeuristicScanner scanner = new CHeuristicScanner(document); - - IRegion sourceRange = scanner.findSurroundingBlock(offset); - if (sourceRange == null) - return null; - String source = document.get(sourceRange.getOffset(), sourceRange.getLength()); - - StringBuffer contents = new StringBuffer(); - contents.append("class ____C{void ____m()"); //$NON-NLS-1$ - final int methodOffset = contents.length(); - contents.append(source); - contents.append("};"); //$NON-NLS-1$ - - char[] buffer = contents.toString().toCharArray(); - return new CompilationUnitInfo(buffer, sourceRange.getOffset() - methodOffset); - } catch (BadLocationException e) { - CUIPlugin.log(e); - } - - return null; - } +// private static CompilationUnitInfo getCompilationUnitForMethod(IDocument document, int offset, String partitioning) { +// try { +// CHeuristicScanner scanner = new CHeuristicScanner(document); +// +// IRegion sourceRange = scanner.findSurroundingBlock(offset); +// if (sourceRange == null) +// return null; +// String source = document.get(sourceRange.getOffset(), sourceRange.getLength()); +// +// StringBuilder contents = new StringBuilder(); +// contents.append("class ____C{void ____m()"); //$NON-NLS-1$ +// final int methodOffset = contents.length(); +// contents.append(source); +// contents.append("};"); //$NON-NLS-1$ +// +// char[] buffer = contents.toString().toCharArray(); +// return new CompilationUnitInfo(buffer, sourceRange.getOffset() - methodOffset); +// } catch (BadLocationException e) { +// CUIPlugin.log(e); +// } +// +// return null; +// } /** * Returns the block balance, i.e. zero if the blocks are balanced at 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 2840a592545..2c96ab1ddc2 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 @@ -409,7 +409,7 @@ public final class CIndenter { * reference position to offset resides, or null * if it cannot be determined */ - public StringBuffer getReferenceIndentation(int offset) { + public StringBuilder getReferenceIndentation(int offset) { return getReferenceIndentation(offset, false); } @@ -422,7 +422,7 @@ public final class CIndenter { * reference position to offset resides, or null * if it cannot be determined */ - private StringBuffer getReferenceIndentation(int offset, boolean assumeOpeningBrace) { + private StringBuilder getReferenceIndentation(int offset, boolean assumeOpeningBrace) { int unit; if (assumeOpeningBrace) unit= findReferencePosition(offset, Symbols.TokenLBRACE); @@ -444,7 +444,7 @@ public final class CIndenter { * which offset resides, or null if it cannot be * determined */ - public StringBuffer computeIndentation(int offset) { + public StringBuilder computeIndentation(int offset) { return computeIndentation(offset, false); } @@ -457,8 +457,8 @@ public final class CIndenter { * which offset resides, or null if it cannot be * determined */ - public StringBuffer computeIndentation(int offset, boolean assumeOpeningBrace) { - StringBuffer reference= getReferenceIndentation(offset, assumeOpeningBrace); + public StringBuilder computeIndentation(int offset, boolean assumeOpeningBrace) { + StringBuilder reference= getReferenceIndentation(offset, assumeOpeningBrace); // handle special alignment if (fAlign != CHeuristicScanner.NOT_FOUND) { @@ -483,13 +483,13 @@ public final class CIndenter { * Computes the indentation for a continuation line at offset. * * @param offset the offset in the document - * @return a StringBuffer which reflects the correct indentation for + * @return a StringBuilder which reflects the correct indentation for * the line in which offset resides, or null if it cannot be * determined. * @throws BadLocationException */ - public StringBuffer computeContinuationLineIndentation(int offset) throws BadLocationException { - StringBuffer reference= getLeadingWhitespace(offset); + public StringBuilder computeContinuationLineIndentation(int offset) throws BadLocationException { + StringBuilder reference= getLeadingWhitespace(offset); IRegion line= fDocument.getLineInformationOfOffset(offset); String string= fDocument.get(line.getOffset(), offset - line.getOffset()); if (string.trim().length() == 0) @@ -534,7 +534,7 @@ public final class CIndenter { * @param indentLength the maximum visual indentation length * @return the stripped reference */ - private StringBuffer stripExceedingChars(StringBuffer reference, int indentLength) { + private StringBuilder stripExceedingChars(StringBuilder reference, int indentLength) { final int tabSize= fPrefs.prefTabSize; int measured= 0; int chars= reference.length(); @@ -560,15 +560,15 @@ public final class CIndenter { /** * Returns the indentation of the line at offset as a - * StringBuffer. If the offset is not valid, the empty string + * StringBuilder. If the offset is not valid, the empty string * is returned. * * @param offset the offset in the document * @return the indentation (leading whitespace) of the line in which * offset is located */ - private StringBuffer getLeadingWhitespace(int offset) { - StringBuffer indent= new StringBuffer(); + private StringBuilder getLeadingWhitespace(int offset) { + StringBuilder indent= new StringBuilder(); try { IRegion line= fDocument.getLineInformationOfOffset(offset); int lineOffset= line.getOffset(); @@ -600,10 +600,10 @@ public final class CIndenter { * @return the indentation corresponding to the document content specified * by start and indent */ - private StringBuffer createIndent(int start, final int indent, final boolean convertSpaceRunsToTabs) { + private StringBuilder createIndent(int start, final int indent, final boolean convertSpaceRunsToTabs) { final boolean convertTabs= fPrefs.prefUseTabs && convertSpaceRunsToTabs; final int tabLen= fPrefs.prefTabSize; - final StringBuffer ret= new StringBuffer(); + final StringBuilder ret= new StringBuilder(); try { int spaces= 0; while (start < indent) { @@ -643,7 +643,7 @@ public final class CIndenter { * @return the modified buffer reflecting the indentation * adapted to additional */ - public StringBuffer createReusingIndent(StringBuffer buffer, int additional) { + public StringBuilder createReusingIndent(StringBuilder buffer, int additional) { int refLength= computeVisualLength(buffer); int addLength= fPrefs.prefIndentationSize * additional; // may be < 0 int totalLength= Math.max(0, refLength + addLength); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CStringAutoIndentStrategy.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CStringAutoIndentStrategy.java index c0fa0532ea3..25e938fa64f 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CStringAutoIndentStrategy.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CStringAutoIndentStrategy.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2007 IBM Corporation and others. + * Copyright (c) 2000, 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 @@ -44,7 +44,7 @@ public class CStringAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy */ private String displayString(String inputString, CharSequence indentation, String delimiter) { int length = inputString.length(); - StringBuffer buffer = new StringBuffer(length); + StringBuilder buffer = new StringBuilder(length); java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(inputString, "\n\r", true); //$NON-NLS-1$ while (tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken(); @@ -73,7 +73,7 @@ public class CStringAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy continue; } - StringBuffer tokenBuffer = new StringBuffer(); + StringBuilder tokenBuffer = new StringBuilder(); for (int i = 0; i < token.length(); i++){ char c = token.charAt(i); switch (c) { @@ -143,9 +143,9 @@ public class CStringAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy CHeuristicScanner scanner = new CHeuristicScanner(document); CIndenter indenter = new CIndenter(document, scanner, fProject); - StringBuffer indentation = indenter.computeContinuationLineIndentation(offset); + StringBuilder indentation = indenter.computeContinuationLineIndentation(offset); if (indentation == null) - indentation = new StringBuffer(); + indentation = new StringBuilder(); String delimiter= TextUtilities.getDefaultLineDelimiter(document); IPreferenceStore preferenceStore= CUIPlugin.getDefault().getPreferenceStore();